首页 > 解决方案 > 如何检测交错日志文件中的序列

问题描述

我想匹配给定模式库中的模式,返回检测到的最长模式。

但是,我在日志文件中只有多个并行任务的交错结果,例如来自处理器的多个内核。

这是数据挖掘中的已知应用程序吗?

我想到了一种与Regex subsequence matching类似的正则表达式解决方案。然而,有一种距离度量来允许一些模糊性会很好,例如,如果序列中的一个活动会丢失。

序列示例

标签: pythonalgorithmpattern-matchingdata-miningsequencematcher

解决方案


正如其他人所指出的那样,如果我们了解您要完成的工作的语义,这将有所帮助。我在这里猜测您的模式库中的模式都与

  • 单一资源(或)
  • 一组资源

如果是这种情况,我建议您首先将该信息添加到您的模式库中以使其明确。例如,您的模式库看起来像:

1: A
1: AB
1: ABC
2: AD
2: C
2: D

如果你想涵盖一组资源的模式,它可能看起来像这个人为的例子:

3: X
4: Y
3,4: Z

现在,您可以从交错的日志文件中分离出与每个资源相关的日志记录(假设日志文件确实具有资源标识符)。然后,您可以应用模式匹配来发现最长的模式。

本质上,将您的关注点分开并为每个子问题应用解决方案。


推荐阅读