我有一个文件,如下所示,
150 event4
160 event4
160 event0
170 event4
175 event4
180 event4
190 event4
192 event3
195 event4
----------
----------
第一列是以毫秒为单位的相应事件实际发生的时间。所以 event4 在 150 毫秒内发生。
我有以下任务要做,
逐行迭代。
如果连续事件之间的间隔小于 80 毫秒,则它们是单个活动的序列。
例如
100 event4
120 event5
140 event6
200 event4
它们都具有不超过80毫秒的连续差异。如果差异超过 80 毫秒,则表示当前序列结束,新序列开始。我的目标是对序列进行聚类。并在不同的集群中报告特定事件的数量。因此,在集群 1 中的以下示例中,事件 4 发生了 4 次,事件 5 发生了 1 次,事件 6 发生了 1 次。在第二个集群事件 4 3 次和 event5 1 次。
100 event4
120 event5
140 event6
200 event4
300 event4
320 event4
340 event4
400 event5
我现在正在做的是,
- 我制作了一个字符串列表。我解析文件,如果小于 80 毫秒,则测量行之间的间隙,然后将它们添加到列表中。
- 当我发现一个间隔超过 80 毫秒的事件时,我停止添加并为下一个序列创建一个新列表。
- 在将所有序列放在不同的列表中之后,我然后遍历列表以测量特定事件的数量。
我不知道这是否是一种有效的方法。我有一些问题。
- 我不知道那里有多少个序列簇,所以我想存储特定簇的列表数量是不固定的。
- 事件名称不固定。它可以是 event1 到 event100 或 event 1 到 45。因此,用于存储事件编号的变量数量也不固定。
那么,你们还有什么好主意吗?