是否可以编辑 NLTK 的 vader 情绪词典?

Posted

技术标签:

【中文标题】是否可以编辑 NLTK 的 vader 情绪词典?【英文标题】:Is it possible to edit NLTK's vader sentiment lexicon? 【发布时间】:2017-03-21 18:01:23 【问题描述】:

我想向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

【问题讨论】:

【参考方案1】:

对于任何感兴趣的人,这也可以在无需手动编辑 vader lexicon .txt 文件的情况下实现。一旦加载,词典就是一个普通的字典,单词作为键,分数作为值。由repoleved 在this 帖子中提供:

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')

【讨论】:

【参考方案2】:

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

【讨论】:

以上是关于是否可以编辑 NLTK 的 vader 情绪词典?的主要内容,如果未能解决你的问题,请参考以下文章

情绪分析词典

NLTK:情绪分析:结果一值

python+NLTK 自然语言学习处理五:词典资源

Python NLTK 不情绪计算正确

《面向微博的社会情绪词典构建及情绪分析方法研究》学习笔记

Python NLTK:SyntaxError:文件中的非 ASCII 字符“\xc3”(情绪分析-NLP)