可以做些什么来使“老师”和“老师”被同等对待?

数据挖掘 nlp nltk
2022-02-09 20:02:50
Who teaches English?

现在,在标记化、词干化之后......它给了我

Who, teach, English

在我的单词列表中,我有一个单词叫做

teacher

词干化,词干化教师老师,词干化,词干化

甚至,计算 edit_distance 也不能解决这个问题。因为 edit_distance 是 2。

现在,我该怎么做才能让 老师教学被视为相似?同样,可能还有其他情况在末尾带有额外的“s”。有没有解决这个问题的词干分析器?有什么解决办法吗?

其他类似的例子可以是:instructor and instructs

2个回答

使用积极的词干分析器。Lancaster Stemmer 是最具侵略性和最受欢迎的词干提取器之一。

这是Python代码:

from nltk.stem.lancaster import LancasterStemmer

lancaster_stemmer = LancasterStemmer()
assert 'teach' == lancaster_stemmer.stem('teacher') == lancaster_stemmer.stem('teaches')

查看FasttextFasttext 的工作方式与 word2vec 类似,因为您可以创建词嵌入,但是,它实际上分析字符 n-gram,以强制句法与您的想法相似。