1

假设我有一个错误日志,并且我希望获得每种错误类型的计数。我已经通过按错误消息分组进行了简单的计数,但是许多消息包含特定于上下文的信息,这意味着尽管是由相同的错误引起的,但我不能简单地按消息文本进行分组。

一些示例,其中斜体部分因错误实例而异:

  • 未能在/primate/gorilla页面上检索用户188a9e12-6797-4d9b-8adf-4588b2435326 的结果
  • 未能在/primate/monkey页面上检索用户08c610d2-27d2-4f97-bf60-d5b3010e8dd6 的结果

我想使用一些模糊逻辑对所有此类消息进行分组。我知道 Levenshtein 距离算法对于这种类型的处理很有价值,但我猜原始距离没有价值,因为它没有根据字符串的长度加权(在 1000 个字符的字符串中,30 的距离不太重要,而 30 100)。

所以我的目标是遍历消息列表并获得某种模糊匹配的计数。为每个模糊匹配的消息生成某种一致的密钥可能会有一个附带问题?我该怎么办?

4

1 回答 1

0

我会尝试q-gram 距离 。然后,两个字符串之间的距离由它们共有的N-gram的数量决定。N 必须足够大,以使 N-gram 表示相关细节。N=4 可能是一个很好的开始。

进一步的字符串距离源自 N-gram 的概念:fx cosine 和 Jaccard 距离。

本文解释了 R 上下文中不同类型的字符串距离算法。

于 2013-11-23T10:09:21.490 回答