Proyecto Final
Proyecto Final
Proyecto Final
EN COLOMBIA
1
SENTIMENT ANALYSIS EN TWEETS DEL DECRETO 538
EN COLOMBIA
PROFESOR:
JULIAN ALBERTO MONSALVE PULIDO
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
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.
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.
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
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.
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.
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.
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.
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).
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.
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).
.
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.
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
Ali, A.-R. (3 mayo 2017). ¿Que es NLTK? Presentando el Natural Language Toolkit (NLTK).
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