有没有人知道如果存在给定一个字符串A和一个字符串B数组的算法,将A字符串与B中的所有字符串进行比较,使输出中的字符串最相似。
对于“最相似的”,我的意思是,例如,
如果A字符串是:“hello world你好吗”
然后
“asdf asdewr你好世界如何asfrqr你”
比以下更相似:
“h2ll4 w1111 h11 111 111”
答案 0 :(得分:21)
通常的衡量标准是Levenshtein distance。计算从原始距离到每个候选者的Levenshtein距离,并将最小距离作为最可能的候选者。
答案 1 :(得分:14)
定义相似性。可以做到这一点的算法包括:
所有这些都可以通过C或C ++实现。 Google可用指标和算法的“字符串相似性”,“重复查找”或“记录链接”。
答案 2 :(得分:2)
这通常是通过检查您拥有的字符串的一堆变体来完成的...看一下拼写校正算法 - 例如here