首页 > 解决方案 > Python 差异库?软件崩溃匹配

问题描述

我有一堆软件崩溃,我试图与 difflib 匹配。

例子:

'[Dsp Restart] ULMA[00256]bbiSrioDrv_main_hwcb.c98 EMCA dest_Id 0x4 无法接收来自此的消息'
'[Dsp Restart] ULMA[00256]bbiSrioDrv_main_hwcb.c98 EMCA dest_Id 0xf4 无法接收来自此 c4 的消息'
'[Dsp重新启动] ULMA[00256]<!UPULL1.384!> ull1pemaster_storage.c424 DBC (this_p->_cellInf o[cellIndex]).subF'

这只是一小部分,但我不能只去掉十六进制字符,因为我需要这些。所以我试图使用 difflib 来匹配。如果我匹配前两行,我会得到超过 90% 的匹配。

我遇到的问题是说找到前两个的所有变体,制作第一个看到的文本实例的 dic,并计算有多少总数超过了 ~90% 的匹配。我似乎无法集中精力让它查看所有崩溃的列表并将所有类似崩溃的内容组合在一起。

无论如何,我想出的基本上仍然不会将前两个分组为单一的崩溃。

使用 difflib 中的 SequenceMatcher 可以工作并且速度很快,但就像我说的仍然为每次崩溃创建一个实例而不是组合在一起。使用 difflib 中的 get_close_matches 可以工作并找到所有类似的并创建一个列表。但是我正在循环超过 100k 行,所以它需要永远!!!!

我喜欢一些想法。谢谢。

标签: pythondifflib

解决方案


推荐阅读