Pitón

Análisis de sentimiento con TextBlob y Python

Análisis de sentimiento con TextBlob y Python
En esta lección, usaremos uno de los excelentes paquetes de Python, TextBlob, para construir un analizador sentimental simple. Todos sabemos que los tweets son uno de los conjuntos de datos de ejemplo favoritos cuando se trata de análisis de texto en ciencia de datos y aprendizaje automático. Esto se debe a que los Tweets son en tiempo real (si es necesario), están disponibles públicamente (en su mayoría) y representan el verdadero comportamiento humano (probablemente). Es por eso que los tweets se suelen utilizar al realizar cualquier tipo de prueba de conceptos o tutoriales relacionados con el Procesamiento del Lenguaje Natural (PNL) y el análisis de textos.

Uso de TextBlob en la industria

Tal como suena, TextBlob es un paquete de Python para realizar operaciones de análisis de texto simples y complejas en datos textuales como etiquetado de voz, extracción de frases nominales, análisis de sentimientos, clasificación, traducción y más. Aunque hay muchos más casos de uso para TextBlob que podríamos cubrir en otros blogs, este cubre el análisis de los Tweets en busca de sus opiniones.

Los sentimientos de análisis tienen un gran uso práctico para muchos escenarios:

Introducción a TextBlob

Sabemos que viniste aquí para ver un código práctico relacionado con un analizador sentimental con TextBlob. Es por eso que mantendremos esta sección extremadamente breve para presentar TextBlob para nuevos lectores. Solo una nota antes de comenzar es que usamos un ambiente virtual para esta lección que hicimos con el siguiente comando

python -m virtualenv textblob
fuente textblob / bin / activar

Una vez que el entorno virtual está activo, podemos instalar la biblioteca TextBlob dentro del entorno virtual para que los ejemplos que creamos a continuación se puedan ejecutar:

pip install -U textblob

Una vez que ejecuta el comando anterior, eso no es todo. TextBlob también necesita acceso a algunos datos de entrenamiento que se pueden descargar con el siguiente comando:

python -m bloque de texto.download_corpora

Verá algo como esto al descargar los datos necesarios:

También puede usar Anaconda para ejecutar estos ejemplos, lo cual es más fácil. Si desea instalarlo en su máquina, consulte la lección que describe “Cómo instalar Anaconda Python en Ubuntu 18.04 LTS ”y comparta sus comentarios.

Para mostrar un ejemplo muy rápido de TextBlob, aquí hay un ejemplo directamente de su documentación:

desde textblob importar TextBlob
text = "'
La amenaza titular de The Blob siempre me ha parecido la película definitiva
monstruo: una masa insaciablemente hambrienta, parecida a una ameba, capaz de penetrar
virtualmente cualquier salvaguarda, capaz de - como un médico condenado escalofriantemente
lo describe - "asimilar la carne al contacto.
Al diablo con las comparaciones sarcásticas con la gelatina, es un concepto con la mayoría
devastador de posibles consecuencias, no muy diferente al escenario de la sustancia pegajosa gris
propuesto por teóricos tecnológicos temerosos de
la inteligencia artificial corre desenfrenada.
"'
blob = TextBlob (texto)
imprimir (gota.etiquetas)
imprimir (gota.sintagmas nominales)
para la oración en blob.oraciones:
imprimir (oración.sentimiento.polaridad)
gota.traducir (a = "es")

Cuando ejecutamos el programa anterior, obtendremos las siguientes palabras de etiqueta y finalmente las emociones que demuestran las dos oraciones en el texto de ejemplo:

Etiquetar palabras y emociones nos ayuda a identificar las palabras principales que realmente tienen un efecto en el cálculo del sentimiento y la polaridad de la oración proporcionada al. Esto se debe a que el significado y el sentimiento de las palabras cambian en el orden en que se usan, por lo que todo esto debe mantenerse dinámico.

Análisis de sentimiento basado en léxico

Cualquier sentimiento puede definirse simplemente como una función de la orientación semántica y la intensidad de las palabras utilizadas en una oración. Con un enfoque basado en el léxico para identificar emociones en palabras u oraciones determinadas, cada palabra se asocia con una puntuación que describe la emoción que exhibe la palabra (o al menos intenta exhibir). Por lo general, la mayoría de las palabras tienen un diccionario predefinido sobre su puntaje léxico, pero cuando se trata de humano, siempre hay sarcasmo intencionado, por lo que esos diccionarios no son algo en lo que podamos confiar al 100%. El Diccionario de sentimientos de WordStat incluye más de 9164 patrones de palabras negativas y 4847 positivas.

Finalmente, hay otro método para realizar análisis de sentimiento (fuera del alcance de esta lección) que es una técnica de aprendizaje automático, pero no podemos hacer uso de todas las palabras en un algoritmo ML ya que seguramente enfrentaremos problemas con el sobreajuste. Podemos aplicar uno de los algoritmos de selección de características como Chi Cuadrado o Información mutua antes de entrenar el algoritmo. Limitaremos la discusión del enfoque ML a este texto únicamente.

Usando la API de Twitter

Para comenzar a recibir tweets directamente desde Twitter, visite la página de inicio del desarrollador de aplicaciones aquí:

https: // desarrollador.gorjeo.com / en / apps

Registre su solicitud completando el formulario que se proporciona así:

Una vez que tenga todas las fichas disponibles en la pestaña "Claves y fichas":

Podemos hacer uso de las claves para obtener los tweets requeridos de la API de Twitter, pero necesitamos instalar solo un paquete de Python más que hace el trabajo pesado por nosotros para obtener los datos de Twitter:

pip instalar tweepy

El paquete anterior se utilizará para completar toda la comunicación de trabajo pesado con la API de Twitter. La ventaja de Tweepy es que no tenemos que escribir mucho código cuando queremos autenticar nuestra aplicación para interactuar con los datos de Twitter y está automáticamente envuelto en una API muy simple expuesta a través del paquete Tweepy. Podemos importar el paquete anterior en nuestro programa como:

importar tweepy

Después de esto, solo necesitamos definir las variables apropiadas donde podemos mantener las claves de Twitter que recibimos de la consola del desarrollador:

Consumer_key = '[consumer_key]'
consumidor_clave_secreto = '[consumidor_clave_secreto]'
access_token = '[access_token]'
access_token_secret = '[access_token_secret]'

Ahora que definimos secretos para Twitter en el código, finalmente estamos listos para establecer una conexión con Twitter para recibir los Tweets y juzgarlos, es decir, analizarlos. Por supuesto, la conexión a Twitter debe establecerse utilizando el estándar OAuth y El paquete Tweepy será útil para establecer la conexión también:

twitter_auth = tweepy.OAuthHandler (clave_consumidor, clave_consumidor_secreto)

Finalmente necesitamos la conexión:

api = tweepy.API (twitter_auth)

Usando la instancia de API, podemos buscar en Twitter cualquier tema que le pasemos. Puede ser una sola palabra o varias palabras. Aunque le recomendamos que utilice la menor cantidad de palabras posible para mayor precisión. Probemos un ejemplo aquí:

pm_tweets = api.búsqueda ("India")

La búsqueda anterior nos da muchos Tweets, pero limitaremos la cantidad de tweets que recibimos para que la llamada no tome demasiado tiempo, ya que también debe ser procesada más tarde por el paquete TextBlob:

pm_tweets = api.búsqueda ("India", recuento = 10)

Finalmente, podemos imprimir el texto de cada Tweet y el sentimiento asociado a él:

para tweet en pm_tweets:
imprimir (tuitear.texto)
análisis = TextBlob (tweet.texto)
imprimir (análisis.sentimiento)

Una vez que ejecutemos el script anterior, comenzaremos a obtener las últimas 10 menciones de la consulta mencionada y cada tweet será analizado para determinar el valor de la opinión. Aquí está el resultado que recibimos por lo mismo:

Tenga en cuenta que también puede crear un bot de análisis de sentimiento de transmisión con TextBlob y Tweepy también. Tweepy permite establecer una conexión de transmisión websocket con la API de Twitter y permite transmitir datos de Twitter en tiempo real.

Conclusión

En esta lección, vimos un excelente paquete de análisis textual que nos permite analizar sentimientos textuales y mucho más. TextBlob es popular debido a la forma en que nos permite trabajar simplemente con datos textuales sin la molestia de complejas llamadas API. También integramos Tweepy para hacer uso de los datos de Twitter. Podemos modificar fácilmente el uso a un caso de uso de transmisión con el mismo paquete y muy pocos cambios en el código mismo.

Comparta sus comentarios libremente sobre la lección en Twitter con @linuxhint y @sbmaggarwal (ese soy yo!).

Cómo instalar League Of Legends en Ubuntu 14.04
Si eres fanático de League of Legends, esta es una oportunidad para que pruebes League of Legends. Tenga en cuenta que LOL es compatible con PlayOnLin...
Instale el último juego de estrategia de OpenRA en Ubuntu Linux
OpenRA es un motor de juego de estrategia en tiempo real libre / gratuito que recrea los primeros juegos de Westwood como el clásico Command & Conquer...
Instale el último emulador de Dolphin para Gamecube y Wii en Linux
Dolphin Emulator te permite jugar los juegos de Gamecube y Wii que elijas en computadoras personales con Linux (PC). Al ser un emulador de juegos de ...