改变一个词的情绪

Change sentiment of a single word

几天来我一直在 Python 中使用 NLTK 进行情绪分析,这是一个很棒的工具。我唯一关心的是它对 'Quick' 这个词的看法。我正在处理的大部分数据都对某项服务有评论,并且大多数人将该服务称为 'Quick',这显然对它有积极的看法。但是,NLTK 将其称为中性。我想知道是否有可能重新训练 NLTK 现在将 Quick 形容词称为具有正注释?

用于情绪分析的模型通常是机器学习过程的结果。您可以通过 运行 在训练集上创建模型来生成自己的模型,其中的情绪会按照您喜欢的方式进行标记,但这是一项重大的任务,尤其是在您不熟悉基础的情况下。

对于快速而肮脏的修复,也许只是让您的代码覆盖单个单词的情绪,或者(更具挑战性)弄清楚如何在现有模型中更改它的值。尽管如果您可以掌握 NLTK 维护者训练他们的情绪分析并可以对其进行修改的语料库,那可能比弄清楚如何更改现有模型要简单得多。如果你有自己的语料库,对你关心的所有词都有情感,那就更好了。

在一般用法中,"quick" 从表面上看并不是一个两极分化的词——实际上,"quick and dirty" 通常含糊不清,"quick assessment" 彻底 更糟糕;当然,在您的特定环境中,快速交付的服务将主要是一件积极的事情。可能会有其他词在您的领域中具有特定的极性,即使它们不能被分配一个普遍的极性,反之亦然——一些在一般用法中具有极性的词在您的领域中将是中性的。因此,训练您自己的模型可能是值得的,尤其是当您正在探索非常具体的语域中的话语时。

我已经解决了这个问题。在 AppData\Roaming\nltk_data\sentiment 中找到了 vader Lexicon 文件。通过文件,我发现其中甚至没有“快速”一词。文件格式如下:

Token Mean-sentiment StandardDeviation [从 10 个人收集的情绪分数列表,范围从 -4 到 4]

我编辑了文件。压缩它。现在 NLTK 将 Quick 称为具有积极情绪。