2009-08-12 23 views
9

我的目标是分析一些语料库(现在的twitter)的情感内容。就在今天,我意识到搜索词干有一定意义,而不是有一个详尽的情感词干清单。所以我一直在探索nltk.stem,只是意识到有4个不同的词干。我想询问一下计算器语言学家LancasterStemmer,PorterStemmer,RegexpStemmer,RSLPStemmer或者WordNetStemmer是否最好有一些理由。我应该在nltk中使用哪一个词干?

回答

7

RSLP适用于葡萄牙语。我猜你想要英文。正则表达式会要求你开发自己的词干表达式,所以我认为这也可以忽略。 WordnetStemmer要求你知道单词的词性,所以你必须先做pos标记才能使用它。我已经使用了porter stemming算法,它的性能很好,但lancaster算法更新,所以它可能会更好。您可能想尝试使用stemmers的组合,您可以从每个stemmer选择最短的词干。无论如何,底线是PorterStemmer是一个很好的默认选择。

9

它可能有点不同于你问的,但是Nodebox Lingustics库包含一个is_emotive()函数,它似乎检查单词以查看它们是否是某些情感词汇的递归下标。来自commonsense.py

ekman = ["anger", "disgust", "fear", "joy", "sadness", "surprise"] 
    other = ["emotion", "feeling", "expression"] 

不是一个词干,但一个有趣的方法来检查。