我有一个文件,就像下面,如何解析特定的数据文件并将其内容集群? Java的
150 event4
160 event4
160 event0
170 event4
175 event4
180 event4
190 event4
192 event3
195 event4
----------
----------
第一列是在milisecond相应的事件实际发生的时间。所以event4发生在150毫秒。
我有以下工作要做,
迭代通过行一个接一个。
如果连续事件之间的间隔小于80毫秒,它们是单个活动的序列。
例如
100 event4
120 event5
140 event6
200 event4
所有的人都得到了连续的差异不超过80毫秒。 如果差值超过80毫秒,则意味着当前序列结束并开始新序列。 我的目标是对序列进行聚类。并在不同的集群中报告特定事件的数量。因此,在以下示例中,第1组事件4发生了4次,事件5 1和事件6 1次。在第二次集群事件中4次3次和事件5次1次。
100 event4
120 event5
140 event6
200 event4
300 event4
320 event4
340 event4
400 event5
我现在正在做的是,
- 我做的字符串列表。我解析文件,并测量行间的差距 ,如果它小于80毫秒,我将它们添加到 列表。
- 当我发现一个超过80毫秒间隙的事件时,我停止添加并为下一个序列创建一个新列表。
- 在将不同列表中的所有序列都列出后,我通过列表遍历 来测量特定事件的数量。
我不知道这是一种有效的方法。我有一些问题。
- 我不知道在那里有多少个序列集群,所以我想存储特定集群的列表编号为 不是固定的。
- 事件名称不固定。它可以是event1到event100或事件 1到45.因此,用于存储事件编号的变量数量也不是固定的 。
那么,你们有没有更好的想法?
您的方法听起来总体上可以,但是如果您没有看到代码,就很难判断您是否正确实施了它。如果你想要“测量特定事件的数量”_,你可能不需要实际存储所有数据点到内存中,你可能能够处理每个组,然后丢弃它。 –
@JimGarrison其实我还没有实现代码,只是分享我的想法。 –