检查String听起来像Java中的另一个

Lli*_*gra 13 java string

我想知道Java中是否有任何类能够使用自己的标准检查String与另一个相等的多少.示例:

  • William Shakespeare / William Shakespeare : might be 100%
  • William Shakespe**a**re / William Shakespe**e**re : might have above 90%
  • William Shakespeare / Shakespeare, William : might have above 70% (just examples)

Mic*_*rdt 14

我看到两个主要候选人:

  • (+1)根据我的经验,Commons Codec中的`Metaphone`和`DoubleMetaphone`算法可以提供更好的SOUNDEX结果. (4认同)

Dan*_*ski 7

您必须使用"软"字符串指标:

还有许多其他内容,请参阅字符串度量标准以获取概述.

最好的算法高度依赖于问题领域.例如,SoundEx会降低东欧名称,如果你想比较"真实世界"单词的相似性,汉明距离对你没什么帮助.


sou*_*rge 6

通常,有levenshtein算法,它只输出您必须执行的多少次插入/更新/删除操作(按字符),以便将一个字符串转换为另一个字符串.Apache的StringUtils类有一个实现.

  • AFAIK levenshtein没有考虑到一个词的"声音". (3认同)