python - 如何检测交错日志文件中的序列
问题描述
我想匹配给定模式库中的模式,返回检测到的最长模式。
但是,我在日志文件中只有多个并行任务的交错结果,例如来自处理器的多个内核。
这是数据挖掘中的已知应用程序吗?
我想到了一种与Regex subsequence matching类似的正则表达式解决方案。然而,有一种距离度量来允许一些模糊性会很好,例如,如果序列中的一个活动会丢失。
解决方案
正如其他人所指出的那样,如果我们了解您要完成的工作的语义,这将有所帮助。我在这里猜测您的模式库中的模式都与
- 单一资源(或)
- 一组资源
如果是这种情况,我建议您首先将该信息添加到您的模式库中以使其明确。例如,您的模式库看起来像:
1: A
1: AB
1: ABC
2: AD
2: C
2: D
如果你想涵盖一组资源的模式,它可能看起来像这个人为的例子:
3: X
4: Y
3,4: Z
现在,您可以从交错的日志文件中分离出与每个资源相关的日志记录(假设日志文件确实具有资源标识符)。然后,您可以应用模式匹配来发现最长的模式。
本质上,将您的关注点分开并为每个子问题应用解决方案。
推荐阅读
- c - 如何在C中递归返回字符串值?
- javascript - 我对涉及 reCAPTCHA 的 php 感到困惑
- ios - ObjectiveC - UIButton 保持突出显示/选中,背景颜色和字体颜色在突出显示/选中时发生变化
- tensorflow - How to extract cell state from a LSTM at each timestep in Keras?
- fabricjs - 无法使用 FabricJS 2 为所选字母及其背景着色
- arrays - 如何在每列中设置具有不同重复模式的矩阵?
- if-statement - Makefile:存储“make”之后的参数(即第二个命令行参数)不起作用
- javascript - 使用 webpack 将 mongodb 导入前端 js 文件会引发错误
- python-2.7 - McAfee python 脚本,SSL 无法验证
- php - 用文本替换字符串