计算句子之间的相似之处

时间:2010-12-27 17:48:45

标签: algorithm distance edit similarity

我的数据库包含数千行错误日志及其说明。此错误日志适用于全天候运行的应用程序。我想创建一个仪表板/ UI来查看当前发生支持的常见错误。

我遇到的问题是,即使存在很多常见错误,错误描述也会因交易ID或用户ID或该sigle prcoess独有的事物而不同。

例如用户233的错误交易XYz失败 例如,用户567的错误交易XYz失败

我认为这两个错误是相同的。所以我想要一个程序,它将通过新的错误日志并将它们分组。我试图使用“编辑距离”,但它非常慢。因为我的alraedy有旧的错误日志,我试图想到使用该信息的解决方案。有什么想法吗?

2 个答案:

答案 0 :(得分:1)

我假设错误消息是由程序生成的,因此它们可能属于非常特定的模式。

这意味着你不必做任何特别复杂的事情。只需解析错误消息:使用正则表达式(或者更强大的东西)将消息拆分为元组。然后对各个字段进行分组或计数或执行某些操作。例如,您可以为用户([0-9] *)执行“错误事务([A-Z] *)失败”等正则表达式。然后,您可以制作错误代码(第一个捕获组)或用户(第二个捕获组)的直方图。

答案 1 :(得分:1)

还有其他指标(Levenshtein除外)可能更合适。你考虑过余弦相似吗?

SimMetrics是一个F / OSS库,提供了大量similarity algorithms及其相应的成本函数。