簡體   English   中英

在 Python 中根據文本的極性從 Textblob 中獲取正負詞(情感分析)

[英]Get the positive and negative words from a Textblob based on its polarity in Python (Sentimental analysis)

我有一個文本 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)

給維德一個機會。 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/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM