Algorithm 计算句子间的相似度

Algorithm 计算句子间的相似度,algorithm,distance,edit,similarity,Algorithm,Distance,Edit,Similarity,我有一个带有数千行错误日志及其描述的datbase。此错误日志适用于一个全天候运行的应用程序。我想创建一个仪表板/UI来查看prodcution支持当前发生的常见错误 我遇到的问题是,即使有很多常见错误,错误描述也会因Transaction ID或用户ID或该单字节的唯一性而有所不同 e、 用户233的g错误传输XYz失败 e、 g 2。用户567的错误传输XYz失败 我认为这两个错误是相同的。所以我想要一个程序,它将检查新的错误日志,并将它们分类为组。我尝试使用“编辑距离”,但速度很慢。因为我

我有一个带有数千行错误日志及其描述的datbase。此错误日志适用于一个全天候运行的应用程序。我想创建一个仪表板/UI来查看prodcution支持当前发生的常见错误

我遇到的问题是,即使有很多常见错误,错误描述也会因Transaction ID或用户ID或该单字节的唯一性而有所不同

e、 用户233的g错误传输XYz失败 e、 g 2。用户567的错误传输XYz失败


我认为这两个错误是相同的。所以我想要一个程序,它将检查新的错误日志,并将它们分类为组。我尝试使用“编辑距离”,但速度很慢。因为我有旧的错误日志,所以我也尝试使用这些信息来思考解决方案。有什么想法吗?

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

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

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


是一个F/OSS库,提供了大量的函数及其相应的代价函数

基于soundex的东西可能会有帮助,也许……既有.NET版本又有Java版本目前我们正在使用正则表达式,但成本非常大,因此尝试寻找更快的方法我认为通过正则表达式解析将是最快的。是匹配需要很长时间,还是分解后的分析?