根据Python中Textblob的极性从Textblob中获取积极和消极的单词(情感分析)

根据Python中Textblob的极性从Textblob中获取积极和消极的单词(情感分析),python,python-3.x,machine-learning,sentiment-analysis,textblob,Python,Python 3.x,Machine Learning,Sentiment Analysis,Textblob,我有一个文本blob,其中我将文本分类为正极(如果极性>0)、中性(如果=0)和负极(如果

我有一个文本blob,其中我将文本分类为正极(如果极性>0)、中性(如果=0)和负极(如果<0)。
我怎样才能得到它分类为肯定、否定或中性的词呢?

我希望下面的代码能帮助您:

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)

一定要给维德打一针。维德是一个基于规则的情绪分析工具,适用于社交媒体文本和常规文本

# 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