У меня есть текстовый блок, в котором я классифицирую текст как положительный, если полярность > 0, нейтральный, если = 0, и отрицательный, если ‹ 0. Как я могу получить слова, на основе которых он классифицируется как положительный, отрицательный или нейтральный?
Получите положительные и отрицательные слова из Textblob на основе его полярности в Python (сентиментальный анализ)
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
Использованная литература:
- https://pypi.org/project/vaderSentiment/
- https://www.geeksforgeeks.org/python-sentiment-analysis-using-vader/
person
Steffi Keran Rani J
schedule
24.01.2021