有没有一种方法可以计算字符串的“相似度得分”?通过这种方式,我不是在比较两个字符串,而是为每个字符串获取一些数字/分数(哈希),以后可以告诉我两个字符串是否相似。相似的字符串应该有类似(接近)的分数/哈希值。
让我们以这些字符串和分数为例:
Hello world 1000
Hello world! 1010
Hello earth 1125
Foo bar 3250
FooBarbar 3750
Foo Bar! 3300
Foo world! 2350
您可以看出Hello world! 和 Hello world 是相似的,它们的分数很接近。
这样,找到与给定字符串最相似的字符串将通过将给定字符串的分数减去其他分数,然后对其绝对值进行排序来完成。
我的最终目的是:有流式日志消息(仅纯消息),我想找到这些消息的模式(某种正则表达式类型)。但只有当我可以将相似的字符串分成桶时,才会开始。我再次强调 我应该为每个字符串获取一些数字/分数(哈希),以便以后可以告诉我两个字符串是否相似。
让我们以这些字符串和分数为例:
Hello world 1000
Hello world! 1010
Hello earth 1125
Foo bar 3250
FooBarbar 3750
Foo Bar! 3300
Foo world! 2350
您可以看出Hello world! 和 Hello world 是相似的,它们的分数很接近。
这样,找到与给定字符串最相似的字符串将通过将给定字符串的分数减去其他分数,然后对其绝对值进行排序来完成。
我的最终目的是:有流式日志消息(仅纯消息),我想找到这些消息的模式(某种正则表达式类型)。但只有当我可以将相似的字符串分成桶时,才会开始。我再次强调 我应该为每个字符串获取一些数字/分数(哈希),以便以后可以告诉我两个字符串是否相似。