10

我想在 中添加单词以vader_lexicon.txt指定单词的极性分数。这样做的正确方法是什么?

我在AppData\Roaming\nltk_data\sentiment\vader_lexicon. 该文件由单词、其极性、强度和由“10 个独立人类评分者”给出的 10 个强度分数组成。[1] 但是,当我编辑它时,以下代码的结果没有任何变化:

from nltk.sentiment.vader import SentimentIntensityAnalyzer
sia = SentimentIntensityAnalyzer()
s = sia.polarity_scores("my string here")

我认为当我调用 SentimentIntensityAnalyzer 的构造函数时,我的代码会访问这个文本文件。[2] 您对如何编辑预制词典有任何想法吗?

资料来源:

[1] https://github.com/cjhutto/vaderSentiment

[2] http://www.nltk.org/api/nltk.sentiment.html

4

2 回答 2

22

对于任何感兴趣的人,这也可以实现,而无需手动编辑 vader lexicon .txt 文件。一旦加载,词典就是一个普通的字典,单词作为键,分数作为值。正如这篇文章中repoleved所提供的:

from nltk.sentiment.vader import SentimentIntensityAnalyzer

new_words = {
    'foo': 2.0,
    'bar': -3.4,
}

SIA = SentimentIntensityAnalyzer()

SIA.lexicon.update(new_words)

如果您想删除单词,请使用“.pop”功能:

SIA = SentimentIntensityAnalyzer()

SIA.lexicon.pop('no')
于 2018-07-25T11:19:40.410 回答
7

我找到了解决办法。我压缩了vader_lexicon包含 txt 文件的文件夹,我应用的更改现在是正在访问的那个。

于 2016-11-08T09:20:39.743 回答