与最相似的字符串进行比较

string comparison with the most similar string

本文关键字:比较 字符串 相似      更新时间:2023-10-16

有没有人知道是否存在一种算法,给定一个字符串A和字符串数组B,将A字符串与B中的所有字符串进行比较,在输出中给出最相似的字符串

对于"最相似的一个",我的意思是,例如,

如果A字符串是:"hello world how are you"

然后

"asdf asdewr hello world how asfrqr you"

更相似

"h2ll4 w1111h1111111 "

通常的测量方法是Levenshtein距离。计算从原始点到每个候选点的Levenshtein距离,并取最小的距离作为最可能的候选点。

定义相似性。可以这样做的算法包括:

  1. Levenshtein/LCS/n-gram距离(将字符串与集合中的每个字符串进行比较,取距离最小的字符串)
  2. tf-idf索引
  3. Levenshtein自动机
  4. <
  5. Hopfield网络/gh>
  6. BK-trees

所有这些都可以在C或c++中实现。在谷歌上搜索"字符串相似度"、"重复查找"或"记录链接",查找可用的度量标准和算法。

这通常是通过检查字符串的一堆变化来完成的…看看拼写校正算法——例如这里