我正在使用porter stemmer,以获得我的话语。
from nltk.stem.porter import PorterStemmer
stemmer = PorterStemmer()
def stem_tokens(tokens, stemmer):
stemmed = []
for item in tokens:
stemmed.append(stemmer.stem(item))
return stemmed
现在,我想知道词干中某些词的可能性使其可读。例如environ
到environment
或educ
到education
等。是否可以这样做?
答案 0 :(得分:3)
什么,所以你想要一个词干并将它映射到词典中可能出现的词汇列表?
这很难,因为阻塞过程是有损的,因为它不是1:1的转换。
也就是说,在某些情况下,例如environ -> {environment, environments, environmental}
和educ -> {educate, educational, education, educated, educating}
,您可以使用trie结构进行前缀查找。对于像happi
这样必须映射回happy
在一般情况下,您必须从字典开始,然后通过截取每个单词并将词干映射回索引中的源词来生成反向索引。使用倒排索引,您可以查找给定词干的匹配。
希望这会有所帮助..
答案 1 :(得分:0)
正如@MikeDinescu解释说,干预是有损的,而“不干预”并不那么简单。
但是考虑到你有一个固定的词汇表和一个词干列表,你可以将每个词干与你词汇表中的所有词条进行比较,并计算某种字符串距离。
的示例