首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法更新VADER词典

无法更新VADER词典
EN

Stack Overflow用户
提问于 2019-02-22 16:13:51
回答 1查看 1.4K关注 0票数 0

print(news['title'][5])级7.5级地震袭击秘鲁-厄瓜多尔边境地区-印度教

print(analyser.polarity_scores(news['title'][5])) {'neg':0.0,'neu':1.0,'pos':0.0,‘复合’:0.0}

代码语言:javascript
复制
from nltk.tokenize import word_tokenize, RegexpTokenizer

import pandas as pd

from vaderSentiment.vaderSentiment import SentimentIntensityAnalyzer


analyzer = SentimentIntensityAnalyzer()


sentence = news['title'][5]

tokenized_sentence = nltk.word_tokenize(sentence)
pos_word_list=[]
neu_word_list=[]
neg_word_list=[]

for word in tokenized_sentence:
    if (analyzer.polarity_scores(word)['compound']) >= 0.1:
        pos_word_list.append(word)
    elif (analyzer.polarity_scores(word)['compound']) <= -0.1:
        neg_word_list.append(word)
    else:
        neu_word_list.append(word)                

print('Positive:',pos_word_list)
print('Neutral:',neu_word_list)
print('Negative:',neg_word_list) 
score = analyzer.polarity_scores(sentence)
print('\nScores:', score)

正面:[]中性:‘震级’,'7.5',‘地震’,‘命中’,‘秘鲁-厄瓜多尔’,‘边境’,‘区域’,‘印度教’负面:[]

得分:{'neg':0.0,'neu':1.0,'pos':0.0,‘复合’:0.0}

代码语言:javascript
复制
new_words = {
    'Peru-Ecuador': -2.0,
    'quake': -3.4,
}

analyser.lexicon.update(new_words)
print(analyzer.polarity_scores(sentence))

{'neg':0.0,'neu':1.0,'pos':0.0,‘复合’:0.0}

代码语言:javascript
复制
from nltk.tokenize import word_tokenize, RegexpTokenizer

import pandas as pd

from vaderSentiment.vaderSentiment import SentimentIntensityAnalyzer


analyzer = SentimentIntensityAnalyzer()


sentence = news['title'][5]

tokenized_sentence = nltk.word_tokenize(sentence)
pos_word_list=[]
neu_word_list=[]
neg_word_list=[]

for word in tokenized_sentence:
    if (analyzer.polarity_scores(word)['compound']) >= 0.1:
        pos_word_list.append(word)
    elif (analyzer.polarity_scores(word)['compound']) <= -0.1:
        neg_word_list.append(word)
    else:
        neu_word_list.append(word)                

print('Positive:',pos_word_list)
print('Neutral:',neu_word_list)
print('Negative:',neg_word_list) 
score = analyzer.polarity_scores(sentence)
print('\nScores:', score)

正面:[]中性:‘震级’,'7.5',‘地震’,‘命中’,‘秘鲁-厄瓜多尔’,‘边境’,‘区域’,‘印度教’负面:[]

得分:{'neg':0.0,'neu':1.0,'pos':0.0,‘复合’:0.0}

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-22 10:03:43

您正在使用的代码是绝对好的。在更新字典时,使用的是analyser而不是analyzer (不确定为什么没有得到错误)。

代码语言:javascript
复制
new_words = {
    'Peru-Ecuador': -2.0,
    'quake': -3.4,
}
​
analyzer.lexicon.update(new_words)
print(analyzer.polarity_scores(sentence))

输出:

代码语言:javascript
复制
{'neg': 0.355, 'neu': 0.645, 'pos': 0.0, 'compound': -0.6597}

再一次提醒(不确定您是否犯了这个错误)。您不应该再次导入库。因为你更新过的文字都会消失。应采取以下步骤:

  1. 导入库和字典
  2. 更新字典(此步骤后不应再次导入库)
  3. 计算情绪得分
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54831079

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档