我怎样才能为类似的单词进行搜索匹配

Yeh*_*sef 11 algorithm search

我正在努力尝试自动分类短文,我正在试图弄清楚如何匹配相似的单词 - 例如,货架,绘画和重绘

我正在使用Porter词干分析算法,但它只对某些情况有帮助,并且只对单词的结尾有用(上面的两个例子都不能用它).

是否有一个算法或相关的单词列表可以帮助这样的事情(除了自己做?)

(我正在使用php,因此使用该语言的任何解决方案都会更有帮助.)

Pet*_*der 13

Levenshtein距离就是你在找什么.

对于任何两个字符串,它会计算将一个字符串更改为另一个字符串所需的最小插入次数,突变次数和删除次数.

如果距离较低则两个词相似.

您还可以使用Soundex算法来确定两个单词是否相似.

另请参见:
PHP levenshtein函数
PHP soundex函数

  • 在这种情况下,Levenshtein 的一个特殊问题是你必须找到一个好的阈值;它只返回两个词之间的变化次数。原帖中的两个例子有很大的不同:levenshtein("shelf", "shelves") = 3, levenshtein("painting", "repaint") = 5。 (2认同)