Sei sulla pagina 1di 19

SENTIMENT ANALYSIS EN TWEETS DEL DECRETO 538

EN COLOMBIA

JOSE ALEJANDRO BAUTISTA GONZALE


JUAN PABLO PUENTES SAAVEDRA
CRISTIAN DAVID SALAZAR APONTE

FUNDACION UNIVESITARIA JUAN DE CASTELLNOS


TECNOLOGIAS DE LA INFORMACION
MODULO I
TUNJA – BOYACÁ
2020 – 1

1
SENTIMENT ANALYSIS EN TWEETS DEL DECRETO 538
EN COLOMBIA

JOSE ALEJANDRO BAUTISTA GONZALE


JUAN PABLO PUENTES SAAVEDRA
CRISTIAN DAVID SALAZAR APONTE

PROFESOR:
JULIAN ALBERTO MONSALVE PULIDO

FUNDACION UNIVESITARIA JUAN DE CASTELLNOS


TECNOLOGIAS DE LA INFORMACION
MODULO I
TUNJA – BOYACÁ
2020 -1

2
TABLA DE CONTENIDO Pág.
I. INTRODUCION......................................................................................................................4
II. OBJETIVOS............................................................................................................................5
Objetivo general...............................................................................................................................5
Objetivos específicos........................................................................................................................5
III. PLANTEAMIENTO DEL PROBLEMA...............................................................................5
Formulación del problema..............................................................................................................5
Definición del problema..................................................................................................................5
IV. METODOLOGIA....................................................................................................................6
Fases del Proyecto............................................................................................................................6
V. INSTALACIÓN DE RECURSOS..........................................................................................7
VI. DESARROLLO.......................................................................................................................8
Librerías utilizadas..........................................................................................................................8
VII. PROCEDIMIENTO................................................................................................................9
VIII. PRUEBAS..............................................................................................................................15
IX. CONCLUSIONES.................................................................................................................18
X. BIBLIOGRAFÍA...................................................................................................................19

3
I. INTRODUCION

En este trabajo se aplica la estrategia de sentiment analysis, para lo cual escogimos la


tendencia del Decreto 538 la cual habla sobre que significa el fortalecimiento de los servicios
de salud en el país, cada una de estas opiniones fue valorada automáticamente y saber qué
porcentaje tiene cada una tanto positiva, neutra o negativa para poder dar un análisis
cuantificable de todas estas opiniones que tiene esta Tweet.
Este trabajo fue elaborado mediante las herramientas de Python con extracciones de datos de
otras aplicaciones de Twitter y tomando los datos de ella, con el Sentiment Analysis somos
capaces de extraer un valor no tangible darle una puntuación y determinar en que polaridad se
encuentra.

4
II. OBJETIVOS
Objetivo general
Realizar un sentiment analysis de las opiniones que genera la tendencia del decreto 538.
Objetivos específicos
1. Realizar una extracción de datos de la plataforma Twitter donde se mencione el
decreto 538.
2. Eliminar las Stop_words de cada tweet para que análisis sea más efectivo.
3. Realizar un análisis automático de clasificación de sentimientos de la tendencia
decreto 538.

III. PLANTEAMIENTO DEL PROBLEMA


Formulación del problema
¿Qué beneficio proporciona realizar un sentiment analysis al decreto 538 en Colombia?
Definición del problema
Con la situación actual del virus covid-19 en todo el mundo, Colombia desea estar
preparada para afrontar la llegada de este virus, por lo que se requiere un análisis que dé a
conocer si se está a gusto con los lineamientos que se tomaran para el manejo de esta
pandemia como se estipula en el decreto 538.

5
IV. METODOLOGIA
Para el desarrollo del proyecto se aplicó una metodología basada en la guía que propone
SCRUM “identificada como un proceso investigativo científico, serio y riguroso, y como una
forma necesaria y óptima para conocer las realidades desde la evidencia misma” [CITATION
Joh95 \l 2058 ].

En búsqueda de llevar un plan estratégico para el desarrollo del proyecto se dan guías o
estrategias para un buen manejo del grupo de trabajo, el cual se compone por Juan Pablo
Puentes Saavedra, quien desarrolla los roles de líder y control de información de proyecto;
Cristian David Salazar cuyos roles son de control de riesgos y manejo de pruebas y José
Alejandro Bautista con el rol de comunicaciones y abstracción de datos.
Fases del Proyecto
Se trabajó mediante el proceso de iteraciones, lo que buscamos un ciclo de desarrollo de
generalmente de 2 a 4 semanas, durante el cual se llevan a cabo “SCRUMS” (reuniones)
diarias donde el equipo informa sobre el progreso y los obstáculos.
Primera fase: con base en el “Sentiment Analysis es un área de investigación enmarcada
dentro del campo del Procesamiento del Lenguaje Natural y cuyo objetivo fundamental es el
tratamiento computacional de opiniones, sentimientos y subjetividad en textos, en este
contexto una opinión es una valoración positiva o negativa acerca de un producto, servicio,
organización, persona o cualquier otro tipo de ente; sobre la que se expresa un texto
determinado, la llegada de la Web 2.0 y la popularización de redes sociales de microblogging
como Twitter”[CITATION Jos18 \l 2058 ].
Segunda Fase: se investigaron las problemáticas que resuelve la implementación de esta
tecnología, se estudiaron las plataformas que posiblemente puedan llegar a ejecutar dicho
proyecto, se vieron posibles plataformas tales como WhatsApp o Facebook, vimos sus
necesidades y que problemas se podrían solucionar con en uso de Sentiment Analysis se
selecciona finalmente la plataforma Twitter que es una plataforma de tendencias donde cada
momento recibe más de una opinión.
Tercera Fase: se realiza el estudio de las opiniones que frecuentemente pueden llegar a
realizar los usuarios y las posibles respuestas que esperan obtener, para así de esta forma
iniciar el Sentiment Analysis.
Teniendo los datos anteriormente mencionados en la herramienta Python se instalaron
librerías como Numpy, Pandas, Nltk, re, matplotlib, Seaborn para programar de forma
eficaz, se realizó un encapsulamiento de las opiniones en español y se tradujeron a ingles de
manera automática con las funciones del Python para lograr un desarrollo del análisis
cuantificable a cada tweet. [ CITATION Jos18 \l 2058 ]
Cuarta Fase: para finalizar se realizan pruebas acordes a la programación y pruebas de las
opiniones que realizaron cada usuario y su correcto analisis, de Sentiment Analysis, “uno de
los últimos proyectos de Sentiment Analysis fue el proyecto CyberEmotions, el cual
identificó recientemente el papel de emociones negativas en la conducción de discusiones en
las redes sociales” [ CITATION Jan10 \l 2058 ].

6
V. INSTALACIÓN DE RECURSOS
Para el inicio del desarrollo de análisis de sentimientos se instala como primera parte
Anaconda donde nos permitía abrir la herramienta de Python, en la terminal de
anaconda Figura (1) se instalan las Librerías que se necesitan para el desarrollo del Sentiment
Analysis. 

Figure 1Consola de Anaconda


sudo pip install -U nltk 
pip install --user -U numpy 
Pip install pandas 
pip install -U textblob 
pip install matplotlib
python -m textblob. download_corpora 
 
Además de librería necesitamos instalar el complemento Tweet Archiver que
nos permitirá crear una regla para extraer los 5000 datos de los tweets del decreto 538. 

7
VI. DESARROLLO
Librerías utilizadas
 Nltk
El Natural Lenguaje Toolkit (NLTK) es una plataforma usada para construir programas o
para análisis de texto la plataforma fue liberada originalmente para análisis de texto,
Procesamiento de Lenguaje Natural con Python.[ CITATION Abd17 \l 2058 ]
 Pandas
pandas es una librería para el análisis de datos que cuenta con las estructuras de datos que
necesitamos para limpiar los datos en bruto y que sean aptos para el análisis (por ejemplo,
tablas).
Es importante señalar aquí que, dado que pandas lleva a cabo tareas importantes, como
alinear datos para su comparación, fusionar conjuntos de datos, gestión de datos perdidos,
etc., se ha convertido en una librería muy importante para procesar datos a alto nivel en
Python.[ CITATION Abd16 \l 2058 ]
 Numpy
Numpy es un paquete de Python que significa “Numérica Python”, es la librería principal
para la informática científica, proporciona potentes estructuras de datos, implementando
matrices y matrices multidimensionales estas estructuras de datos garantizan cálculos
eficientes con matrices.[ CITATION Lin18 \l 2058 ]
 Seaborn
Seaborn es una librería de visualización de datos en Python basada en matplotlib. la idea
de Seaborn es que los científicos de datos dispongan de una interfaz para hacer gráficos
estadísticos atractivos e explicativos: el objetivo es visualizar datos complejos de forma
sencilla y extraer conclusiones.[ CITATION DAN19 \l 2058 ]

 matplotlib 
Es una biblioteca de trazado para Python. Proporciona API orientadas a objetos para
incrustar gráficos en aplicaciones. Es similar a MATLAB en capacidad y sintaxis. Fue
escrito originalmente por JDHunter y se está desarrollando activamente. Se distribuye
bajo una licencia BSD-Style. [ CITATION Mat17 \l 2058 ]
 

8
VII. PROCEDIMIENTO

Figure 2 Diagrama de Procesamiento del lenguaje natural Fuente(autor)


En este diagrama podemos identificar el procesamiento del lenguaje natural del análisis de
sentimientos donde se procede paso a paso etapa tras etapa para el desarrollo del análisis
requerido en cada opinión extraída para así normalizarla, desambiguarla cada opinión y
finalmente darle una clasificación de la polaridad y ser etiquetar cada una de ellas.
Inicialmente partimos con la búsqueda de la tendencia del decreto 538 que busca regular las
medidas en el sector salud, para contener y mitigar la pandemia de COVID-19.
Ya identificada nuestra tendencia vamos a extraer las opiniones de la tendencia seleccionada,
en una hoja de cálculo en donde se instala el componente tweet archiver, después de ser
instalado creamos una regla y le damos el nombre de la tendencia e inmediatamente nos
capturara los tweets de esta tendencia, descargamos el Excel para comenzar analizarlos en
Python. 
 
Una vez se han extraídos los datos, que se analizaran da comienzo con la importación y
descarga cada una de las librerías que se requieren en el proyecto como se describe en la
figura3.

9
Figure 3 mediante el lenguaje de Python descargaron las librerías utilizadas para el
proyecto. Fuente(Autor)
En cuanto a librerías se requirió descargar las funciones que permiten el sentiment analysis
como lo fueron el sentimen.vader y sentimen los cuales contienen las valoraciones numéricas
de los verbos que surgen en cada opinión, veader_lexicon el cual contiene aquellas frases y
caracteres que se filtran en el analisis I, am, show, but, 😀, 🙁 etc., textblob que permite la
traducción de cada dato para que coincidan las palabras del vader_lexicon y las que se
filtraron y matplotlib que permite graficar los resultados tal como se demuestra en la figura4.

Figure 4 importación de funciones para el desarrollo del proyecto. (Fuente: Autor)

10
Cuando se han importado las librerías necesarias se hace el llamado al documento tokenizer
para que realice un primer filtrado de palabras y caracteres, siguiendo del f. open () que hace
el llamado del documento donde contiene los datos ya extradidos de la plataforma Twitter
como se demuestra en la figura 5.

Figure 5Importamos el documento con los datos de los Tweets. Fuente (autor)
Para lograr traducir los datos de forma automática se usan la función que se descargó desde
las librerías Texblob () el cual analiza el archivo con los Tweets se añade el idioma al que se
va traducir en el estaco de español a ingles identificado por “en” y posterior mente
almacenada en la variable traducción como se representa en la figura 6.

Figure 6: traducción de los tweets a idioma ingles para que las oraciones filtradas coincidan
con el vader_texicon.Fuente (autor)

11
Cuando se realiza la traducción se requirió crear un documento de salida en el que se envié
los datos iniciales traducidos a ingles se utiliza las funciones open() que permite crear el
archivo y además indicando que se va a enviar información, para lo cual se aplica el
método .wtrite() que hace él envió de la información, manteniendo una buena programación
se debe cerrar el documento que se creó aplicando .close() y poder visualizar que se envió la
información correcta tal como se representa en la figura 7.

Figure 7Se crea el documento txt con los datos ya traducidos, se envía la información
adecuada y por último se cierra la función. write. Fuente(Autor)

El proceso de tokenizar es convertir una cadena de datos en cada vez más pequeñas las
cadenas para que se pueda analizar mejor este proceso se describe en la figura 8.

Figure 8 tokenizar la cadena de datos acortando las oraciones para su análisis.


Fuente(autor)

Se busca un dato en común entre las cadenas de datos en el caso del análisis se genera balo el
decreto 538 como se define en la figura 9.

Figure 9Se genera un parámetro en común de los datos que se van a analizar. Fuente(autor)

12
Para desarrollar el análisis se inicia con un FOR el cual se le asigna una función con los datos
que se almacenaron generando el filtrado de las Stop_words o palabras que se desean
eliminar o abreviar para generar el análisis, cada filtrado se inicializa con un “-” para
identificar el inicio y el fin de cada tweet, en el segundo for define si la palabra no está en el
documento Stop_words la adjunta al que mantiene en su posición de ser lo contrario
eliminaran como se representa en la figura 10.

Figure 10 Se genera el análisis de los datos que fueron filtrados previamente. Fuente(autor)

Se genera el resultado de cada tweet que paso se tokenizado y además de realizar el análisis
de sentimientos dando un valor al tipo de polaridad que género en la figura 11.

Figure 11 resultados del análisis de clasificación de polaridad de los tweets. . Fuente


(Autor)

13
Para una mejor comprensión de la clasificación de análisis de sentimientos en el proceso que
se realiza es: cada palabra tiene un numero asignado según su naturaleza de sentimientos, por
ejemplo, la palabra louse tendrá un valor negativo y la palabra love uno positivo, en este
orden de ideas cuando se hace clasificación de sentimientos se realiza un conteo del valor de
cada palabra sumándola a la clasificación de sentimientos.

Figure 12Archivo veader_lexicon

14
VIII. PRUEBAS
Las pruebas que realizamos las mostraremos en las siguientes imágenes donde se muestra el
funcionamiento del sentiment analysis. 
La primera prueba que realizamos fue la de verificación de la traducción de nuestro archivo
contenedor de tweets en español como se observa en la Figura (13). 

Figure 13 Texto En español

Como se evidencia en la Figura (14) se abre el archivo .txt que contiene los tweeds en


español y se traduce al idioma por defecto que es el inglés, realizando
la traducción automática de los tweets en español de una forma correcta. 

Figure 14 Textos en Ingles

Como se puede evidenciar en la Figura (15), el tweet posee algunos emojis y signo @, que lo
que se busca con las Stop_words es eliminar estas palabas o símbolos que no le dan sentido a
la oración, en este caso los tweets. 

Figure 15 tweet sin procesar Fuente(autor)

15
Para la eliminación de las Stop_words se debe tener en cuenta que si las Stop_words que no
se encuentran dentro del archivo de Stop_words no se eliminaran, como se evidencia en
la Figura(16).

Figure 16 documento Stop_words


Se evidencia en la ilustración (17) que al recorrer en tweet se encontró algunas de
las stop_words que se incluyeren en el txt de stop_words como lo son @, 🐽🐖,
por consiguiente, las elimino del tweet. 

Figure 17 tweet procesado y con clasificación de sentimientos Fuente(autor)

16
Como se observa en la Figura (17) se realiza una impresión de cada token del tweet,
realizando un ciclo que consiste en que al analizar el primer token, lo compara con el valor
que está en el archivo veader_lexicon y de esta manera obtiene la equivalencia de esa palabra,
una vez obtenida continua con el siguiente proceso que es cargar el siguiente toquen,
realizando el mismo proceso que finaliza cuando ya no hay más tokens que comparar en el
veader_lexicon, finalmente se obtiene la clasificación de sentimientos.

Figure 18proceso de interpretación paso a paso. Fuente(autor)

Se evidencia en la Figura (18) como ejemplo con el análisis del primer tweet que está
realizando un análisis acertado ya que contiene palabras como ass que es negativa, clean que
es positiva y las demás neutras, en la clasificación de polaridad da como resultado valores
que indican un buen análisis por que como son en su mayoría neutras indica un valor mayor
en ese sentimiento.

17
IX. CONCLUSIONES
Tomando los datos que genero el analisis se llega la conclusión que el país no se encuentra
preparados para una emergencia de esta magnitud, pues la mayor parte de su población
describe al gobierno de forma ofensivas, vulgares entre otras.
Se demostró una superioridad en datos con un sentimiento negativo pues sus comentarios
eran de miedo, e incertidumbre por lo que conlleve este decreto en las distintas ramas del
comercio.
Se muestra una notoriedad en comentarios positivos dejando como enterado que Colombia
pasa por un momento difícil pero aún mantiene en un grupo de la población un espíritu alegre
que nos a caracterizado.
Adema con el desarrollo del proyecto podemos concluir que:
 Se espera que con el pasar del tiempo y a partir de la implementación del Sentiment
Analysis se mejore el sector de la salud y el prestigio y reconocimiento del país.
 La implementación de stop Works nos permiten eliminar las palabras que no les dan
sentido a los tweets permitiendo así una clasificación de polaridad más efectiva.

18
X. BIBLIOGRAFÍA

#Matploit. (10 ago 2017). Aprendisaje Matploit. EbookGratis, 98.

Ali, A.-R. (24 Oct 2016). Introduccion a Pandas . EnvatoTuts, 1.

Ali, A.-R. (3 mayo 2017). ¿Que es NLTK? Presentando el Natural Language Toolkit (NLTK).

Jholys, J. H. (15 de enero de 2010). CYBEREMOTION. Obtenido de


http://www.cyberemotions.eu/links.html

Lineal, L. e. (27 Sep 2018). Introducción a la librería NumPy de Python . Aprende todo sobre
inteligencia artificial , https://ligdigonzalez.com/introduccion-a-numpy-python-1/.

RODRÍGUEZ, D. (20 julio 2019). Visualización de datos en Python con Seaborn. Analytics. Lane, 1.

Sande, J. C. (Junio 2018). Anális De Sentimientos En Twitter. Catalunya, España: Universitat oberta de
catalunya .

Scummiotales, J. (febrero de 1195). Metodologias agiles. Estados Unidos: Currency; Edición: 1st.

19

Potrebbero piacerti anche