3

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

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

谢谢!

4

2 回答 2

5

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

for line in self.lexicon_full_filepath.split('\n'):
    (word, measure) = line.strip().split('\t')[0:2] # Here!
    lex_dict[word] = float(measure)
于 2018-06-16T22:58:02.040 回答
3

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

  1. 第 1 列:令牌
  2. 第 2 列:这是人类情绪评级的平均值
  3. 第 3 列:假设它遵循正态分布,它是代币的标准偏差
  4. 第 4 列:这是在实验期间进行的 10 个人工评分的列表

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

于 2019-01-10T06:06:31.767 回答