1

我有一堆(数百万)小实验的日志。

每个日志都包含一个条目列表(数十到数百个)。每个条目都是一个时间戳和一个事件 ID(有数千个唯一的事件 ID,每个事件 ID 都可能在日志中出现多次)。这是一个实验的日志示例:

1403973044 阿尔法
1403973045 测试版
1403973070 伽玛
1403973070 阿尔法
1403973098 三角洲

我需要找到许多实验中常见的序列。

一个序列是多个(至少两个)事件 ID,它们彼此跟随:

α
测试版
伽玛

共同序列是可以在至少两个日志中找到的序列。日志

α
测试版
伽玛
三角洲
ε

微塔
测试版
伽玛
ε
卡帕

有一个共同的顺序:

测试版
伽玛
ε

(显然,我在这里寻找最长的公共序列。)

我对经常发生的大序列感兴趣。我事先不知道截止值。比如说,我需要在前 1000 个(或前 30%)中按长度计算前 10 个(或者,也许是前 100 个序列)。(此标准是随机给出的,几乎可以任意更改以简化数据处理。)

关于如何以可扩展的方式执行此操作的任何建议?

我希望尽量减少我拥有的代码量,但我不想使用专有程序来获得解决方案。

...我认为在生物信息学中解决了一个有点类似的问题。但是他们的字母比我短得多:-)错了!蛋白质组学处理更大的字母!(感谢@JayInNyc)

4

0 回答 0