Невозможно обновить словарь VADER - PullRequest
0 голосов
/ 22 февраля 2019

print(news['title'][5]) Землетрясение магнитудой 7,5 поражает пограничный регион Перу-Эквадор - Индус

print(analyser.polarity_scores(news['title'][5])) {'neg': 0.0, 'neu': 1.0, 'pos': 0.0, 'составной':0.0}

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', 'землетрясение', 'хиты', 'Перу-Эквадор', 'граница', 'регион', '-',' The ',' Hindu '] Отрицательный: []

Оценки: {' neg ': 0.0,' neu ': 1.0,' pos ': 0.0,' соединение ': 0.0}

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, 'complex': 0.0}

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', 'землетрясение', 'хиты', 'Перу-Эквадор', 'граница', 'регион', '-', 'The', 'Hindu'] Отрицательно: []

Результаты: {'neg': 0,0, 'neu': 1,0, 'pos': 0,0, 'составной': 0,0}

1 Ответ

0 голосов
/ 22 марта 2019

Код, который вы используете, абсолютно в порядке.При обновлении словаря вы использовали analyser вместо analyzer (не знаю, почему вы не получили ошибку).

new_words = {
    'Peru-Ecuador': -2.0,
    'quake': -3.4,
}
​
analyzer.lexicon.update(new_words)
print(analyzer.polarity_scores(sentence))

Вывод:

{'neg': 0.355, 'neu': 0.645, 'pos': 0.0, 'compound': -0.6597}

Еще одно предупреждение (не уверен, совершаете ли вы эту ошибку.) Не следует снова импортировать библиотеку.Потому что ваши обновленные слова исчезнут.Шаги должны быть:

  1. Импорт библиотеки и словаря
  2. Обновление словаря (после этого шага не следует импортировать библиотеку снова)
  3. Рассчитать настроениебаллы
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...