从词干中获取词汇(词干)

时间:2017-12-09 08:39:08

标签: nlp nltk text-mining stemming

我正在使用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

现在,我想知道词干中某些词的可能性使其可读。例如environenvironmenteduceducation等。是否可以这样做?

2 个答案:

答案 0 :(得分:3)

什么,所以你想要一个词干并将它映射到词典中可能出现的词汇列表?

这很难,因为阻塞过程是有损的,因为它不是1:1的转换。

也就是说,在某些情况下,例如environ -> {environment, environments, environmental}educ -> {educate, educational, education, educated, educating},您可以使用trie结构进行前缀查找。对于像happi这样必须映射回happy

的词干,事情会变得更有趣

在一般情况下,您必须从字典开始,然后通过截取每个单词并将词干映射回索引中的源词来生成反向索引。使用倒排索引,您可以查找给定词干的匹配。

希望这会有所帮助..

答案 1 :(得分:0)

正如@MikeDinescu解释说,干预是有损的,而“不干预”并不那么简单。

但是考虑到你有一个固定的词汇表和一个词干列表,你可以将每个词干与你词汇表中的所有词条进行比较,并计算某种字符串距离。

以下是https://gist.github.com/alvations/a4a6e0cc24d2fd9aff86

的示例