Sanálisis de sentimiento es el proceso de clasificar si un bloque de texto es positivo, negativo, o, neutral. También se conoce como minería de opinión, derivando la opinión o actitud de un hablante. Análisis de los sentimientos es una minería contextual de palabras que indica el sentimiento social de una marca y también ayuda a la empresa a determinar si el producto que están fabricando tendrá demanda en el mercado o no.t.
El objetivo que trata de alcanzar el análisis de sentimiento es analizar la opinión de las personas de manera que pueda ayudar a las empresas a expandirse. Se enfoca no solo en la polaridad (positiva, negativa y neutral) sino también en las emociones (feliz, triste, enojado, etc.). Utiliza varios algoritmos de procesamiento de lenguaje natural, como basado en reglas, automático e híbrido.
Por ejemplo, si queremos analizar si un producto está satisfaciendo los requisitos del cliente o si existe una necesidad de este producto en el mercado. Podemos usar el análisis de sentimientos para monitorear las reseñas de ese producto. El análisis de opinión también es eficiente cuando hay un gran conjunto de datos no estructurados y queremos clasificar esos datos etiquetándolos automáticamente. servicio. El análisis de sentimiento también ganó popularidad debido a su función para procesar grandes volúmenes de respuestas NPS y obtener resultados consistentes rápidamente.
Según la encuesta, el 80% de los datos del mundo no están estructurados. Los datos deben analizarse y estar estructurados, ya sea en forma de correos electrónicos, textos, documentos, artículos y muchos más.
También te puede interesarLos 9 mejores generadores de video con IA (texto a video)Podemos ver que el análisis de sentimientos es útil en las siguientes aplicaciones de la vida real;
Se utilizan tres enfoques:
Sentiment Analysis tiene una amplia gama de aplicaciones tales como:
Los desafíos en el enfoque de análisis de sentimiento incluyen:
También te puede interesar¡DEJA de vender! Haga preguntas y escuche en su lugarHagamos un análisis de sentimiento de Twitter usando Python. Puede hacer un análisis de opinión de cualquier tema analizando los tweets obtenidos de Twitter usando Python. El paso 1 soy yoInstalación:
#tweepy is a python client for the official twitter api.
pip install tweepy
#textblob is the python library for processing textual data.
pip install textblob
#NLTK corpora is nothing but a large and structured set of texts.
python -m textblob.download_corpora
El paso 2 es Autenticación:
Para obtener tweets a través de la API de Twitter, es necesario registrar una aplicación a través de su cuenta de Twitter. Siga estos pasos para el mismo:
El paso 3 es Implementación:
También te puede interesarImprimir declaración de una IA no autorizadaimport re
import tweepy
from tweepy import OAuthHandler
from textblob import TextBlobclass TwitterClient(object):
'''
Generic Twitter Class for sentiment analysis.
'''
def __init__(self):
'''
Class constructor or initialization method.
'''
# keys and tokens from the Twitter Dev Console
consumer_key = 'XXXXXXXXXXXXXXXXXXXXXXXX' Szx6H4G7s5Htniyc0JnKLuLSR
consumer_secret = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX' gaKrr1i39ww9pDSr0NDt8u4QGDXZEJCF6BiucmNOGZ0QMva0M6
access_token = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX' 942840711308701696-yiEaEYXOUlFkKbkcl8IsfOzsZ7jXKuc
access_token_secret = 'XXXXXXXXXXXXXXXXXXXXXXXXX' ElGQ4CKIqh8Ip55xaKLqf8tijrZTCCt2wiWNziafSEgOx
# attempt authentication
try:
# create OAuthHandler object
self.auth = OAuthHandler(consumer_key, consumer_secret)
# set access token and secret
self.auth.set_access_token(access_token, access_token_secret)
# create tweepy API object to fetch tweets
self.api = tweepy.API(self.auth)
except:
print("Error: Authentication Failed")
def clean_tweet(self, tweet):
'''
Utility function to clean tweet text by removing links, special characters
using simple regex statements.
'''
return ' '.join(re.sub("(@[A-Za-z0-9]+)|([^0-9A-Za-z t])
|(w+://S+)", " ", tweet).split())
def get_tweet_sentiment(self, tweet):
'''
Utility function to classify sentiment of passed tweet
using textblob's sentiment method
'''
# create TextBlob object of passed tweet text
analysis = TextBlob(self.clean_tweet(tweet))
# set sentiment
if analysis.sentiment.polarity > 0:
return 'positive'
elif analysis.sentiment.polarity == 0:
return 'neutral'
else:
return 'negative'
También te puede interesarCómo usar la IA para crear imágenes de cualquier cosa que puedas imaginardef get_tweets(self, query, count = 10):
'''
Main function to fetch tweets and parse them.
'''
# empty list to store parsed tweets
tweets = []
try:
# call twitter api to fetch tweets
fetched_tweets = self.api.search(q = query, count = count)
# parsing tweets one by one
for tweet in fetched_tweets:
# empty dictionary to store required params of a tweet
parsed_tweet = {}
# saving text of tweet
parsed_tweet['text'] = tweet.text
# saving sentiment of tweet
parsed_tweet['sentiment'] = self.get_tweet_sentiment(tweet.text)
# appending parsed tweet to tweets list
if tweet.retweet_count > 0:
# if tweet has retweets, ensure that it is appended only once
if parsed_tweet not in tweets:
tweets.append(parsed_tweet)
else:
tweets.append(parsed_tweet)
# return parsed tweets
return tweets
except tweepy.TweepError as e:
# print error (if any)
print("Error : " + str(e))
def main():
# creating object of TwitterClient Class
api = TwitterClient()
# calling function to get tweets
tweets = api.get_tweets(query = 'Donald Trump', count = 200)
# picking positive tweets from tweets
ptweets = [tweet for tweet in tweets if tweet['sentiment'] == 'positive']
# percentage of positive tweets
print("Positive tweets percentage: {} %".format(100*len(ptweets)/len(tweets)))
# picking negative tweets from tweets
ntweets = [tweet for tweet in tweets if tweet['sentiment'] == 'negative']
# percentage of negative tweets
print("Negative tweets percentage: {} %".format(100*len(ntweets)/len(tweets)))
# percentage of neutral tweets
print("Neutral tweets percentage: {} %
".format(100*(len(tweets) -(len( ntweets )+len( ptweets)))/len(tweets)))
# printing first 5 positive tweets
print("nnPositive tweets:")
for tweet in ptweets[:10]:
print(tweet['text'])
# printing first 5 negative tweets
print("nnNegative tweets:")
for tweet in ntweets[:10]:
print(tweet['text'])
if __name__ == "__main__":
# calling main function
main()
Nuestra salida debería verse así;
Positive tweets percentage: 22 %
Negative tweets percentage: 15 %Positive tweets:
RT @JohnGGalt: Amazing—after years of attacking Donald Trump the media managed
to turn #InaugurationDay into all about themselves.
#MakeAme…
RT @vooda1: CNN Declines to Air White House Press Conference Live YES!
THANK YOU @CNN FOR NOT LEGITIMI…
RT @Muheeb_Shawwa: Donald J. Trump's speech sounded eerily familiar...
POTUS plans new deal for UK as Theresa May to be first foreign leader to meet new
president since inauguration
.@realdonaldtrump #Syria #Mexico #Russia & now #Afghanistan.
Another #DearDonaldTrump Letter worth a read @AJEnglish
Negative tweets:
RT @Slate: Donald Trump’s administration: “Government by the worst men.”
RT @RVAwonk: Trump, Sean Spicer, etc. all lie for a reason.
Their lies are not just lies. Their lies are authoritarian propaganda.
RT @KomptonMusic: Me: I hate corn
Donald Trump: I hate corn too
Me: https://t.co/GPgy8R8HB5
It's ridiculous that people are more annoyed at this than Donald Trump's sexism.
RT @tony_broach: Chris Wallace on Fox news right now talking crap
about Donald Trump news conference it seems he can't face the truth either…
RT @fravel: With False Claims, Donald Trump Attacks Media on Crowd Turnout
Aziz Ansari Just Hit Donald Trump Hard In An Epic Saturday Night Live Monologue
*Autorizamos al cliente API de Twitter, hicimos una solicitud GET a la API de Twitter para buscar tweets para una consulta en particular y analizamos los tweets clasificando cada tweet como positivo, negativo o neutral.*
Ahora, intentemos entender el código anterior:
fetched_tweets = self.api.search(q = query, count = count)
analysis = TextBlob(self.clean_tweet(tweet))
En resumen, esto es lo que código hace. Espero que esto haya sido útil, si fue reaccionar con un aplauso, si no fue un comentario sobre lo que debería haber hecho diferente.
[post_relacionado id=»1615″]