我有一个超过10K的行日志文件,用于调试问题。我正在寻找相对于文件中其他行不经常出现的“异常”日志行,以希望提取可能正在发生的有趣事件。这些日志行是高度可变且多样化的。
我最初的方法是将每行与文件中的其余行进行模糊比较,获取这些比率的平均值,并将其分配给每行,对这些比率进行排序,并返回该集中最小的N个项目。 / p>
但是,使用Python时,这在我的机器上花费了非常非常长的时间(我正在使用Fuzzywuzzy)。
还有其他建议吗?
答案 0 :(得分:0)
而不是进行比较,请对文件进行一次遍历,以按其独特功能对行进行分类。将对每一行的引用存储在字典中,并以类别为键。
然后通过dict,消除引用过多(即无聊的类别)的所有键。其余类别是有趣的类别。
这是一个 O(N)过程,而不是开始时使用的 O(N ^ 2)过程。