我正在努力尝试自动分类短文,我正在试图弄清楚如何匹配相似的单词 - 例如,货架,绘画和重绘
我正在使用Porter词干分析算法,但它只对某些情况有帮助,并且只对单词的结尾有用(上面的两个例子都不适用)。
是否有一个算法或相关的单词列表可以帮助这样的事情(除了自己做?)
(我正在使用php,因此使用该语言的任何解决方案都会更有帮助。)
我正在努力尝试自动分类短文,我正在试图弄清楚如何匹配相似的单词 - 例如,货架,绘画和重绘
我正在使用Porter词干分析算法,但它只对某些情况有帮助,并且只对单词的结尾有用(上面的两个例子都不适用)。
是否有一个算法或相关的单词列表可以帮助这样的事情(除了自己做?)
(我正在使用php,因此使用该语言的任何解决方案都会更有帮助。)
该 Levenshtein距离 是你在找什么。
对于任何两个字符串,它计算将一个字符串更改为另一个字符串所需的最小插入次数,突变次数和删除次数。
如果距离较低,那么这两个词是相似的。
你也可以使用 探测法 算法判断两个单词听起来是否相似。
也可以看看:
PHP levenshtein函数
PHP soundex函数
该 Levenshtein距离 是你在找什么。
对于任何两个字符串,它计算将一个字符串更改为另一个字符串所需的最小插入次数,突变次数和删除次数。
如果距离较低,那么这两个词是相似的。
你也可以使用 探测法 算法判断两个单词听起来是否相似。
也可以看看:
PHP levenshtein函数
PHP soundex函数
好吧,有所有“相关单词列表”的母亲,称为WordNet: http://wordnet.princeton.edu/
它是免费提供的,需要相当慷慨的许可证。 “相关项目”部分中有一个PHP接口。
这相对于使用单词相似度算法的优点在于它甚至知道诸如“绘画”和“颜色”之类的单词的不同同义词。缺点是你要么必须知道正确的同义词(毕竟,一个词可能意味着不同的东西),或者你可以获得一个非常疯狂的同义词列表。