Python 用于情感分析的 VADER 词典结构

Python VADER lexicon Structure for sentiment analysis

我正在使用 Python 的 nltk 库中的 VADER 情感词典来分析文本情感。这个词典不太适合我的领域,所以我想给各种词加上我自己的情感分数。所以,我得到了词典文本文件 (vader_lexicon.txt) 来做到这一点。但是,我不太了解此文件的体系结构。例如,像 obliterate 这样的词将在文本文件中具有以下数据: 抹杀 -2.9 0.83066 [-3, -4, -3, -3, -3, -3, -2, -1, -4, -3]

很明显,-2.9 是列表中情绪得分的平均值。但是0.83066代表什么?

谢谢!

根据 VADER source code,仅使用每行的第一个数字。该行的其余部分将被忽略:

for line in self.lexicon_full_filepath.split('\n'):
    (word, measure) = line.strip().split('\t')[0:2] # Here!
    lex_dict[word] = float(measure)

如您所说,vader_lexicon.txt 文件有四个制表符分隔的列。

  1. 第 1 列:令牌
  2. 第 2 列:这是人类情感评分的平均值
  3. 第 3 列:这是代币的标准差,假设它服从正态分布
  4. 第 4 列:这是在实验过程中进行的 10 次人工评分的列表

实际代码或情感计算没有使用第3和第4列。因此,如果您想根据您的要求更新词典,您可以将最后两列留空或填写一个随机数和一个列表。