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:
- Durante las elecciones políticas en una región geográfica, los tweets y otras actividades de las redes sociales se pueden rastrear para producir encuestas de salida estimadas y resultados sobre el próximo gobierno
- Varias empresas pueden hacer uso del análisis textual en las redes sociales para identificar rápidamente cualquier pensamiento negativo que esté circulando en las redes sociales en una región determinada para identificar los problemas y resolverlos
- Algunos productos incluso usan tweets para estimar las tendencias médicas de las personas a partir de su actividad social, como el tipo de tweets que están haciendo, tal vez se están comportando suicidas, etc.
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 textblobfuente 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 textblobUna 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_corporaVerá 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 TextBlobtext = "'
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 tweepyEl 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 tweepyDespué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!).