用 python 进行 sentiwordnet 评分

新手上路,请多包涵

我一直在从事与 Twitter 情绪分析相关的研究。我对如何在 Python 上编码有一点了解。由于我的研究与编码有关,因此我对如何使用 Python 分析情绪进行了一些研究,以下是我的研究进展:1. 推文的标记化 2. 标记的 POS 标记,剩下的是计算积极和对我现在面临的问题的负面情绪需要你的帮助。

下面是我的代码示例:

 import nltk
sentence = "Iphone6 camera is awesome for low light "
token = nltk.word_tokenize(sentence)
tagged = nltk.pos_tag(token)

因此,我想请问是否有人可以帮助我展示/指导使用 python 编写 sentiwordnet 代码的示例,以计算已经被 POS 标记的推文的正面和负面分数。预先感谢

原文由 pechdara 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 932
1 个回答

您的问题到底是什么还不清楚。您需要使用 Sentiwordnet 的指南吗?如果是这样,请查看此链接,

http://www.nltk.org/howto/sentiwordnet.html

由于您已经对单词进行了标记化和 POS 标记,因此您现在需要做的就是使用此语法,

 swn.senti_synset('breakdown.n.03')

打破论点,

  • ‘breakdown’ = 需要分数的词。
  • ‘n’ = 词性
  • ‘03’ = 用法(01 表示最常见的用法,较大的数字表示不太常见的用法)

因此,对于标记数组中的每个元组,如上所述创建一个字符串并将其传递给 senti_synset 函数以获得该词的正面、负面和客观分数。

警告:词性标注器给你的标签与 senti_synset 接受的标签不同。使用以下内容转换为 synset 表示法。

 n - NOUN
v - VERB
a - ADJECTIVE
s - ADJECTIVE SATELLITE
r - ADVERB

(以上符号 归功于使用 Sentiwordnet 3.0

也就是说,使用 Sentiwordnet 进行 Twitter 情绪分析通常不是一个好主意,这就是为什么,

推文中充满了 Sentiwordnet 经常无法识别的拼写错误和非词典词。为了解决这个问题,要么在对推文进行 pos 标记之前对推文进行词形还原/词干化,要么使用机器学习分类器,例如 NLTK 内置函数的朴素贝叶斯。至于分类器的训练数据集,可以手动注释数据集或使用预标记集,例如 Sentiment140 语料库。

如果您对实际执行情绪分析不感兴趣,但需要给定推文的情绪标签,您始终可以为此目的使用 Sentiment140 API。

原文由 Saravana Kumar 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题