我有一个超过 10K 行的日志文件,我用它来调试问题。我正在寻找相对于文件中其他行不常出现的“异常”日志行,以希望提取可能正在发生的有趣事件。这些日志行是高度可变和多样化的。
我最初的方法是对文件中的每一行与其余行进行模糊比较,获取这些比率的平均值并将其分配给每一行,对这些比率进行排序并返回该集合中最小的 N 个项目。
但是,这在我的机器上使用 Python 时会花费非常非常长的时间(我使用的是 fuzzywuzzy)。
还有其他建议吗?
最佳答案
不是那种比较,而是对文件进行一次传递以根据行的独特特征对行进行分类。将对每一行的引用存储在字典中,按类别键控。
然后遍历字典,删除任何引用过多的键(即无聊的类别)。其余类别是有趣的类别。
这是一个 O(N) 过程,而不是您开始时的 O(N^2) 过程。
关于python - 查找最不常出现的模糊字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57047521/