Este blog se basa en el video Análisis de sentimiento de Twitter: Aprenda Python para la ciencia de datos n. ° 2 de Siraj Raval. En este desafío, crearemos un analizador de sentimientos que verifica si los tweets sobre un tema son negativos o positivos. Usaremos el bloque de texto de la biblioteca Python para esto.

El análisis de sentimientos, también llamado minería de opiniones o inteligencia artificial emocional, es el proceso de determinar si un escrito es positivo, negativo o neutral. Un caso de uso común de esta tecnología es descubrir cómo se sienten las personas sobre un tema en particular. El análisis de sentimientos se aplica ampliamente a las reseñas y las redes sociales para una variedad de aplicaciones.
El análisis de sentimientos se puede realizar de muchas formas diferentes. Muchas marcas y especialistas en marketing utilizan herramientas basadas en palabras clave que clasifican los datos (es decir, redes sociales, noticias, reseñas, blogs, etc.) como positivos / negativos / neutrales.
El etiquetado automatizado de opiniones generalmente se logra a través de listas de palabras. Por ejemplo, las menciones de "odio" se etiquetarían negativamente.
Puede haber dos enfoques para el análisis de sentimientos.
1. Métodos basados en léxico
2. Métodos basados en Machine Learning.
En este problema, utilizaremos un método basado en Lexicon.
Los métodos basados en léxico definen una lista de palabras positivas y negativas, con una valencia - (por ejemplo, 'agradable': +2, 'bueno': +1, 'terrible': -1,5, etc.). El algoritmo busca un texto para encontrar todas las palabras conocidas. Luego combina sus resultados individuales sumando o promediando. Algunas extensiones pueden verificar algunas reglas gramaticales, como la negación o el modificador de sentimiento (como la palabra "pero", que pondera los valores de sentimiento en el texto de manera diferente, para enfatizar el final del texto).
Construyamos el analizador ahora.
API de Twitter
Antes de comenzar a codificar, debemos registrarnos en la API de Twitter //apps.twitter.com/. Aquí necesitamos registrar una aplicación para generar varias claves asociadas con nuestra API. La API de Twitter se puede utilizar para realizar muchas acciones como crear y buscar.
Ahora, después de crear la aplicación, podemos comenzar a codificar.
Necesitamos instalar dos paquetes:
pip instalar tweepyEste paquete se utilizará para manejar la API de Twitter.
pip instalar textblobEste paquete se utilizará para el análisis de sentimientos.
sentiment_analyzer.py
import tweepyfrom textblob import TextBlob
Necesitamos declarar las variables para almacenar las diversas claves asociadas con la API de Twitter.
consumer_key = ‘[consumer_key]’
consumer_key_secret = ‘[consumer_key_secret]’
access_token = ‘[access_token]’
access_token_secret = ‘[access_token_secret]’
El siguiente paso es crear una conexión con la API de Twitter usando tweepy con estos tokens.
Tweepy
Tweepy admite la autenticación OAuth. La autenticación es manejada por la clase tweepy.OAuthHandler .
Se debe crear una instancia de OAuthHandler pasando un token de consumidor y un secreto.
En esta instancia de autenticación, llamaremos a una función set_access_token pasando el access_token y el access_token_secret.
Finalmente, creamos nuestra instancia de API tweepy pasando esta instancia de autenticación a la función API de tweepy.
auth = tweepy.OAuthHandler(consumer_key, consumer_key_secret)
auth.set_access_token(access_token, access_token_secret)
api = tweepy.API(auth)
Ahora podemos buscar en Twitter cualquier tema utilizando el método de búsqueda de la API.
public_tweets = api.search(‘Dogs’)
Ahora obtendremos todos los tweets relacionados con el tema 'Perros'. Podemos realizar análisis de sentimiento utilizando la biblioteca textblob.
TextBlob
TextBlob es una biblioteca de Python (2 y 3) para procesar datos textuales. Proporciona una API simple para sumergirse en tareas comunes de procesamiento de lenguaje natural (NLP), como etiquetado de parte del discurso, extracción de frases nominales, análisis de sentimientos, clasificación, traducción y más.
Un bloque de texto se puede crear de la siguiente manera (ejemplo, y no parte del código original):
example = TextBlob("Python is a high-level, general-purpose programming language.")
Y la tokenización se puede realizar mediante los siguientes métodos:
palabras : devuelve las palabras del texto
uso:
example.words
oraciones: devuelve las oraciones de texto
uso:
example.sentences
Etiquetado de parte de la voz
Se puede acceder a las etiquetas de parte del discurso a través de la propiedad de etiquetas .
wiki.tags[('Python', 'NNP'), ('is', 'VBZ'), ('a', 'DT'), ('high-level', 'JJ'), ('general-purpose', 'JJ'), ('programming', 'NN'), ('language', 'NN')]
Análisis de los sentimientos
La propiedad de sentimiento devuelve una tupla con nombre de la forma Sentiment (polaridad, subjetividad). La puntuación de polaridad es un valor flotante dentro del rango [-1.0, 1.0]. La subjetividad es un flotador dentro del rango [0.0, 1.0] donde 0.0 es muy objetivo y 1.0 es muy subjetivo.
Ahora volvamos al código.
Podemos iterar la matriz publice_tweets y verificar el sentimiento del texto de cada tweet en función de la polaridad.
for tweet in public_tweets: print(tweet.text) analysis = TextBlob(tweet.text) print(analysis.sentiment) if analysis.sentiment[0]>0: print 'Positive' elif analysis.sentiment[0]<0: print 'Negative' else: print 'Neutral'
Ahora ejecutamos el código usando lo siguiente:
python sentiment_analyzer.pyy obtenemos la salida:

Podemos ver que se muestra el sentimiento del tweet.
Este es un ejemplo de cómo se puede realizar el análisis de sentimientos en datos de redes sociales como Twitter. ¡Espero que le sea útil!
Find the code at //github.com/amkurian/twitter_sentiment_challenge