Cómo Hacer Reflexionar a Tu Computador con las Noticias del País
Una forma interesante de analizar las palabras y los sentimientos que puedan generar las noticias del país con Python, R y Power BI.
Es bien sabido que vivir en la sociedad moderna es como estar en una montaña rusa de emociones, ya que gracias a la conectividad y la disponibilidad de información online, las cosas que vemos, leemos e interactuamos cotidiniamente, nos afectan en como nos sentimos y percibimos el mundo que nos rodea de una forma mucho más rapida que antes. Si ademas, consideramos que los acontecimientos ocurridos en este año 2020 fueron totalmente inesperados por toda la humanidad, de seguro que las emociones de muchos de nosotros han tenido muchos altibajos y han sido distintas a las de años anteriores.
Con todo lo anterior, me pregunté: “¿Y si hago que mi computador reflexione con las noticias que han ocurrido en el país los ultimo 3 años?” (Para este articulo se utilizarán las noticias de Chile). Respondiendo a mi pregunta, decidí formular un proyecto el cual examina las palabras de las noticias y determina que sentimientos reflejan su contenido. Así que sin más que decir, empecemos con el proyecto!.
*Si tienes poco tiempo y quieres ir directo a ver los resultados del proyecto, se encuentran al final del articulo (Punto 5).
Herramientas Necesarias:
- Python para extraer los datos y análisis general del texto.
- R para análisis de sentimientos de las noticias.
- Power BI para visualización final de los resultados.
Importante: En este articulo se explicarán las ideas generales de como se realizó el proyecto. si deseas ver los codigo completos puedes hacer acceder a mi repositorio en Github haciendo click aquí.
1. Obteniendo el Data de Noticias:
Para obtener los datos de las noticias, realicé un Web Scraping (proceso que consiste en obtener la información publicada en la web de una manera automatizada) extrayendo la información de 1215 paginas de resultados de la sección país de la pagina web de CNN Chile. Esta información se puede guardar en la forma que se desee, en mi caso decidí extraer las siguientes caracteristicas:
- Título de la Noticia.
- Fecha de Publicación.
- Resumen de la Noticia.
La información fue almacenada en un archivo csv con un total de 14.580 noticias desde el 1 de enero del 2018 hasta el 17 de septiembre del 2020.
Luego de modificar los tipos de datos y separar las variables de fecha en 4 columnas diferentes, año, mes, dia y nombre del mes, obtuve el siguiente Data Frame.
Si deseas ver el data completo puedes hacer click aquí.
2. Análisis del Data de Noticias:
Con el fin de entender mejor la información y tener una visión más integral de las noticias Chilenas, decidí estudiar algunas cualidades para responder una seríe de preguntas que se me venian a la mente, estas preguntas eran:
- ¿Cuales son las Palabras más Utilizadas por Mes y por Año en las Noticias Chilenas?.
- ¿Cuantas Palabras Totales y Unicas se Ocupan por Año en las Noticias?.
- ¿ Cual es el Promedio de Palabras que se utilizan por Título de Noticias?-
- ¿Como se Compara la Utilización de las Palabrás más Frecuentes en un Año, con Relación a los Otros Años?.
Apoyandome de algunas librerias para análisis de texto, en términos simple lo que hice fue eliminar acentos, mayúsculas, simbolos y puntuaciones de las palabras de cada título y contar la frecuencia de cada una de ellas según los meses y años de las noticias.
Se debe considerar que los pronombres y artículos definidos e indefinidos no aportan mucha información a la hora de definir ideas o conceptos generales en sola una palabra. Por lo tanto estos términos no fueron considerados para el análisis de texto. A esta técnica se la llama Stopwords y consiste en generar una lista con las palabras que no se quieren utilizar para que al momento de procesar la información, el codigo no las considere en el análisis. Estas palabras se encuentran en el archivo Spanish.txt de mi Github la cual puedes ver haciendo click aquí.
Luego de realizar el el pre-procesado de texto , pude responder mis preguntas generando algunas visualizaciones como nubes de palabras, tablas de frecuencia y gráficos de línea. Algunos de los interesantes resultados son:
- Palabras Más Utilizadas por Año en Títulos de Noticias de Chile:
Se puede observar que en los tres años las palabras más comunes son Piñera, Gobierno y Carabineros. Sin embargo en el Año 2020 aparecen nuevas palabras como Covid, Coronavirus, Cuarentena y Plebiscito que en los años anteriores no fueron mencionadas.
2. Palabras Más Utilizadas por mes en Títulos de Noticias de Chile(Año 2020):
Al examinar los meses del año 2020, pude notar que en enero y febrero los temas más informados fueron la PSU,Carabineros y el Gobierno, sin embargo en los meses posteriores el término COVID fue ganando importancia hasta julio, donde lo más reportado fueron las noticias relacionadas con los Retiros de Fondos de AFP y posteriormente el conflicto con las protestas de Camioneros en la Araucania y Las Fiestas Patrias en el mes de Septiembre.
Las nubes de palabras para los meses del año 2019 y 2018 se pueden ver haciendo click aquí.
3. Cantidad de Palabras Utilizadas en las Noticias Chilenas por Año:
La tabla de frecuencia me ayudó a identificar que el año 2018 tuvo una mayor cantidad de noticias y de palabras respecto al 2019. El año 2020 tiene menos cantidad de noticias debido a que este proyecto fue realizado en Septiembre del 2020, por lo que se consideran solamente 9 meses del año para el análisis. La cantidad promedio de palabras por título de noticia es similar en los 3 años.
4. Comparación de las Palabrás más Frecuentes del año 2020, con Relación a los años 2019 y 2018.
Este interesante gráfico muestra una comparación en las frecuencias de las palabras más utilizadas del año 2020, con relación a los años anteriores. Se puede observar que los años 2018 y 2019 tienen tendencias similares en el uso de las palabras más frecuentes del 2020. Palabras como COVID, Coronavirus y Cuarentena ni siquiera fueron utilizadas en las noticias de los años 2018 y 2019. De modo contrario, Gobierno, Piñera, Presidente y Santiago fueron más utilizadas en los años anteriores.
Los gráficos para las palabras más frecuentes de los años 2019 y 2018 se pueden ver haciendo click aquí.
3. Análisis de Sentimientos de Noticias:
Para realizar el análisis de sentimientos quise usar las librerias y herramientas disponibles en R, ya que abarcan mayor cantidad de opciones para analizar palabras en español que las librerias de Python. Así fue como utilicé la función get_nrc_sentiment de la libreria syuzhet, la cual en términos simples calcula la presencia de emociones en un archivo de texto y las categoriza en los siguientes tipos; Ira, Anticipación, Miedo, Alegría, Tristeza, Sorpresa, Confianza, Positivo y Negativo.
Para poder pasar las palabras a esta función, primero tuve que separar cada palabra de los resumenes de noticias en una nueva columna llamada token, así despues la función asigna un valor o valencia positiva al tipo de emoción reflejado por la palabra, y 0 en caso contrario.
El codigo completo en R se puede ver haciendo click aquí.
El Data Frame de palabras y emociones es se puede ver haciendo click aquí.
4. Visualización Final de los Datos :
Finalmente ocupé la información de los Dataframe de Noticias y de Palabras, para crear un reporte en Power BI y visualizar los datos de una manera interactiva, ademas de ser muy entretenido el poder observar como van variando las emociones, palabras y noticias respecto los distintos meses y años. Gracias a este reporte pude encontrar cosas muy interesantes.
Puedes ver el Reporte haciendo click en el link de abajo.
Como se puede apreciar en el reporte de power BI, se pueden visualizar diversos gráficos que representan la cantidad de palabras según los tipos de emociones por año y por mes, los porcentajes de emociones de las noticias las cuales varian a medida se vaya filtrando la información por año, etc. Por ultimo podemos ver cuales son las palabras más utilizadas en los resumenes de las noticias. Considerar que estas palabras son distintas a las que aparecen en las nubes de palabras explicadas más arriba, ya que las palabras de ese análisis corresponden a la de los títulos de las noticias.
Si no hay filtros establecidos, el reporte muestra la suma total de valores en los 3 años estudiados.
5. Interpretación de los Resultados y Conclusión:
- Se utilizaron 216.316 palabras para escribir los resumenes de 14.580 noticias de los años 2018, 2019 y 2020.
- Aproximadamente 192.000 palabras son de tipo neutral, 23.000 son positivas y 20.000 son negativas.
- Sobre el Análisis de Sentimientos de las palabras, estas reflejan un 30% de Confianza, 16% de Miedo,14% de Anticipación, 11% de Tristeza, 9% de Ira, 8% de Alegria, 7% de Aversión y un 5% de Sorpresa.
- Los Martes son los días donde se publican más noticias, y los Domingos donde se publican menos noticias.
- Las tres palabras más mencionadas en las noticias Chilenas son Gobierno, Piñera y Carabineros.
- Algunas de las palabras utilizadas mayormente en cada año son COVID,Cuarentena y Coronavirus en el 2020; Metro, Incendio y Venelueza en el 2019 y Papa, Aborto y Catrillanca en el 2018.
- Existe una ligera tendencia al aumento de palabras negativas en el mes de Agosto.
- A la fecha (Septiembre 2020) Hay un total de 3.513 noticias en el año 2020 de las cuales 62.000 palabras son neutras, 7.307 son positivas y 6.889 son negativas.
- A pesar de haber mayor cantidad de noticias el 2018 que el 2019, en este ultimo año hubieron más cantidad de palabras, con una diferencia en aproximadamente 1700 palabras entre positivas (9020) y negativas (7328). La diferencia en el 2018 fueron de 649 palabras entre positivas (6465) y negativas (5816).
Despues de haber realizado este entretenido proyecto, puedo concluir que las noticias Chilenas tienden a ser informadas de manera objetiva y neutral, con algunos grados de positivismo y utilización de palabras que generen confianza en el lector, a pesar de que muchas de las noticias describen acontecimientos que expresan emociones incomodas o negativas como el Miedo, la Tristeza y la Ira. Por otro lado, hay conjuntos de palabras que son continuamente informadas sin variar su frecuencia de ocurrencia en el transcurso del tiempo, estos terminos corresponden a entidades que hacen el ejercicio de las funciones politicas, ejecutiva, legislativa y judicial. Me impresionó mucho que existieran meses donde se visualizan tendencias a la alza en palabras y sentimientos negativos, por lo que tal vez se podría inferir que en estos meses se produce una mayor cantidad de eventos adversos en el pais. Para terminar, el análisis de noticias puede ser muy favorable para encontrar detalles y cualidades especificas que nos hacen reflexionar sobre la dirección que está tomando el país, o bien gracias a las tecnologias de hoy en día, las cuales hacen reflexionar a nuestros computadores para apoyarnos en la busqueda de respuestas a todo lo que se nos venga por la cabeza, lo cual en en mi caso por esta vez, fueron las noticias Chilenas.
Espero que les haya gustado el Articulo!.
Otros de mis Articulos (Muy entretenidos):
- Una Forma Interactiva para Buscar y Analizar Ofertas de Trabajo en la Web
- Una Forma Genial para Buscar y Analizar Arriendos de Departamentos en la Web
- Clustering Music to Create your Playlists on Spotify Using Python and R
- Automating Playlists on Spotify From the Music Folders of your Computer
- Predicting the Music Mood of a Song with Deep Learning
Referencias: