我有一堆字符串,它们的措辞完全随机,我需要找到与关键字的最佳匹配。我尝试过使用三元组和 Levenshtein 的算法,但我仍然得到不规则的结果。我尝试按字符串的第一个字符对字符串进行排序,然后运行 Levenshtein 的算法,以便能够获得更准确的结果,但这并没有帮助。
我的关键字每个可能是 1-3 个单词,但我尝试匹配的目标字符串有时是 >10-20 个单词。我可以使用任何其他算法来有效地将关键字匹配到正确的字符串吗?
我尝试使用的三胞胎方法:
ratio = (3*|A ∩ B|)/(|A| + |B|)
其中 A 和 B 是三元组数组(一个单词的 3 个字符,由 1 索引生成),例如
stackoverflow -> sta, tac, ack, cko, kov, ove, ver, erf, rfl, flo, low
而 A ∩ B 是 A 和 B 中相似的三元组。这种方法看起来很有效,但最终给了我很多不规则的结果。
那么有什么办法可以改进这种模糊匹配呢?