gpt4 book ai didi

python - nltk Sentiwordnet 与 python 的结合使用

转载 作者:太空狗 更新时间:2023-10-30 02:58:26 24 4
gpt4 key购买 nike

我正在使用 python NLTK 对 Twitter 数据进行情绪分析。我需要一本字典,其中包含单词的 +ve 和 -ve 极性。我已经阅读了很多关于 sentiwordnet 的东西,但是当我将它用于我的项目时,它并没有给出高效和快速的结果。我想我没有正确使用它。谁能告诉我正确的使用方法?以下是我到目前为止所做的步骤:

  1. 推文标记化
  2. 代币的 POS 标记
  3. 将每个标签传递给 sentinet

我正在使用 nltk 包进行标记化和标记。请参阅下面我的部分代码:

import nltk
from nltk.stem import *
from nltk.corpus import sentiwordnet as swn

tokens=nltk.word_tokenize(row) #for tokenization, row is line of a file in which tweets are saved.
tagged=nltk.pos_tag(tokens) #for POSTagging

for i in range(0,len(tagged)):
if 'NN' in tagged[i][1] and len(swn.senti_synsets(tagged[i][0],'n'))>0:
pscore+=(list(swn.senti_synsets(tagged[i][0],'n'))[0]).pos_score() #positive score of a word
nscore+=(list(swn.senti_synsets(tagged[i][0],'n'))[0]).neg_score() #negative score of a word
elif 'VB' in tagged[i][1] and len(swn.senti_synsets(tagged[i][0],'v'))>0:
pscore+=(list(swn.senti_synsets(tagged[i][0],'v'))[0]).pos_score()
nscore+=(list(swn.senti_synsets(tagged[i][0],'v'))[0]).neg_score()
elif 'JJ' in tagged[i][1] and len(swn.senti_synsets(tagged[i][0],'a'))>0:
pscore+=(list(swn.senti_synsets(tagged[i][0],'a'))[0]).pos_score()
nscore+=(list(swn.senti_synsets(tagged[i][0],'a'))[0]).neg_score()
elif 'RB' in tagged[i][1] and len(swn.senti_synsets(tagged[i][0],'r'))>0:
pscore+=(list(swn.senti_synsets(tagged[i][0],'r'))[0]).pos_score()
nscore+=(list(swn.senti_synsets(tagged[i][0],'r'))[0]).neg_score()

最后,我将计算有多少推文是正面的,有多少推文是负面的。我哪里错了?我应该如何使用它?有没有其他类似的易于使用的词典?

最佳答案

是的,您还可以使用其他词典。您可以在这里找到一小部分词典:http://sentiment.christopherpotts.net/lexicons.html#resources看来刘冰的意见词典还是蛮好用的。

除了链接到那些词典之外,该网站还是一个非常好的情感分析教程。

关于python - nltk Sentiwordnet 与 python 的结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33959459/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com