Получите положительные и отрицательные слова из Textblob на основе его полярности в Python (сентиментальный анализ)

У меня есть текстовый блок, в котором я классифицирую текст как положительный, если полярность > 0, нейтральный, если = 0, и отрицательный, если ‹ 0. Как я могу получить слова, на основе которых он классифицируется как положительный, отрицательный или нейтральный?


person Learner    schedule 09.04.2018    source источник
comment
слишком расплывчато. Есть много ресурсов, библиотек в Интернете. Пожалуйста, хорошо изучите, прежде чем задавать вопросы здесь.   -  person Ashutosh Chapagain    schedule 14.07.2018


Ответы (2)


Я надеюсь, что следующий код поможет вам:

from textblob import TextBlob
from textblob.sentiments import NaiveBayesAnalyzer
import nltk
nltk.download('movie_reviews')
nltk.download('punkt')

text          = "I feel the product is so good" 

sent          = TextBlob(text)
# The polarity score is a float within the range [-1.0, 1.0]
# where negative value indicates negative text and positive
# value indicates that the given text is positive.
polarity      = sent.sentiment.polarity
# The subjectivity is a float within the range [0.0, 1.0] where
# 0.0 is very objective and 1.0 is very subjective.
subjectivity  = sent.sentiment.subjectivity

sent          = TextBlob(text, analyzer = NaiveBayesAnalyzer())
classification= sent.sentiment.classification
positive      = sent.sentiment.p_pos
negative      = sent.sentiment.p_neg

print(polarity,subjectivity,classification,positive,negative)
person Sahli Simo    schedule 14.07.2018

Дайте шанс Вейдеру. Vader — это основанный на правилах инструмент анализа настроений, который хорошо работает как с текстами в социальных сетях, так и с обычными текстами.

# import SentimentIntensityAnalyzer class 
import nltk
from nltk.tokenize import word_tokenize, RegexpTokenizer
from nltk.sentiment.vader import SentimentIntensityAnalyzer
from vaderSentiment.vaderSentiment import SentimentIntensityAnalyzer 
  
# function to print sentiments 
# of the sentence. 
def sentiment_scores(sentence): 
  
    # Create a SentimentIntensityAnalyzer object. 
    sid_obj = SentimentIntensityAnalyzer() 
  
    # polarity_scores method of SentimentIntensityAnalyzer 
    # oject gives a sentiment dictionary. 
    # which contains pos, neg, neu, and compound scores. 
    sentiment_dict = sid_obj.polarity_scores(sentence) 
      
    print("Overall sentiment dictionary is : ", sentiment_dict) 
    print("sentence was rated as ", sentiment_dict['neg']*100, "% Negative") 
    print("sentence was rated as ", sentiment_dict['neu']*100, "% Neutral") 
    print("sentence was rated as ", sentiment_dict['pos']*100, "% Positive") 
  
    print("Sentence Overall Rated As", end = " ") 
  
    # decide sentiment as positive, negative and neutral 
    if sentiment_dict['compound'] >= 0.05 : 
        print("Positive") 
  
    elif sentiment_dict['compound'] <= - 0.05 : 
        print("Negative") 
  
    else : 
        print("Neutral") 
  
  
    
# Driver code 
if __name__ == "__main__" : 
  
    print("\n1st statement :") 
    sentence = "This is the best movie I have watched ever!" 
  
    # function calling 
    sentiment_scores(sentence) 
  
    print("\n2nd Statement :") 
    sentence = "I went to the market"
    sentiment_scores(sentence) 
  
    print("\n3rd Statement :") 
    sentence = "I would not recommend this product to you"
    sentiment_scores(sentence)

ВЫВОД

1st statement :
Overall sentiment dictionary is :  {'neg': 0.0, 'neu': 0.64, 'pos': 0.36, 'compound': 0.6696}
sentence was rated as  0.0 % Negative
sentence was rated as  64.0 % Neutral
sentence was rated as  36.0 % Positive
Sentence Overall Rated As Positive

2nd Statement :
Overall sentiment dictionary is :  {'neg': 0.0, 'neu': 1.0, 'pos': 0.0, 'compound': 0.0}
sentence was rated as  0.0 % Negative
sentence was rated as  100.0 % Neutral
sentence was rated as  0.0 % Positive
Sentence Overall Rated As Neutral

3rd Statement :
Overall sentiment dictionary is :  {'neg': 0.232, 'neu': 0.768, 'pos': 0.0, 'compound': -0.2755}
sentence was rated as  23.200000000000003 % Negative
sentence was rated as  76.8 % Neutral
sentence was rated as  0.0 % Positive
Sentence Overall Rated As Negative

Использованная литература:

  1. https://pypi.org/project/vaderSentiment/
  2. https://www.geeksforgeeks.org/python-sentiment-analysis-using-vader/
person Steffi Keran Rani J    schedule 24.01.2021