Как настроить / переобучить NLTK SentimentIntensityAnalyzer - PullRequest
1 голос
/ 12 марта 2020

Я использую SentimentIntensityAnalyzer от NLTK, чтобы получить информацию о сервисах авиакомпаний. Есть много твитов о качестве еды и пунктуальности и т. Д. c. С кодом ниже я могу получить полярность слова.

from nltk.sentiment.vader import SentimentIntensityAnalyzer
nltk.download('vader_lexicon')
sid = SentimentIntensityAnalyzer() 

sid.polarity_scores('delicious')
>>> {'neg': 0.0, 'neu': 0.0, 'pos': 1.0, 'compound': 0.5719}

sid.polarity_scores('delayed')
>>> {'neg': 1.0, 'neu': 0.0, 'pos': 0.0, 'compound': -0.2263}

Однако, есть много слов, которые возвращают только «нейтральные». Эти слова часто используются для выражения качества обслуживания авиакомпаний, поэтому я хочу как-то получить правильную полярность. Любые идеи будут оценены!

sid.polarity_scores('tasty')
>>> {'neg': 0.0, 'neu': 1.0, 'pos': 0.0, 'compound': 0.0}

sid.polarity_scores('tasteless')
>>> {'neg': 0.0, 'neu': 1.0, 'pos': 0.0, 'compound': 0.0}

sid.polarity_scores('quick')
>>> {'neg': 0.0, 'neu': 1.0, 'pos': 0.0, 'compound': 0.0}

sid.polarity_scores('fast')
>>> {'neg': 0.0, 'neu': 1.0, 'pos': 0.0, 'compound': 0.0}

sid.polarity_scores('slow')
>>> {'neg': 0.0, 'neu': 1.0, 'pos': 0.0, 'compound': 0.0}

1 Ответ

0 голосов
/ 12 марта 2020

Может быть, NLTK не библиотека для использования. Я предпочитаю использовать TextBlob, вот пример кода для вас.

from textblob import TextBlob

words = ["good", "bad", "fast", "quick", "slow"]
for word in words:
    processedWord = TextBlob(word)
    print(processedWord.sentiment.polarity)

output:

0.7
-0.69
0.2
0.33
-0.30

У меня только одна проблема при тестировании ваших слов: tasty настроение было нейтрально.

...