Skip to content
Snippets Groups Projects
Select Git revision
  • 8904e779aeb5aec52de993a44213f6d19e961dbc
  • master default protected
  • doc
3 results

tfg-acm-emorec

  • Open with
  • Download source code
  • Your workspaces

      A workspace is a virtual sandbox environment for your code in GitLab.

      No agents available to create workspaces. Please consult Workspaces documentation for troubleshooting.

  • albcalv's avatar
    albcalv authored
    8904e779
    History
    Name Last commit Last update
    fase experimental
    project
    seguimiento
    LICENSE
    README.md

    Análisis de sentimientos y emociones en redes sociales utilizando ML

    Este proyecto está creado para la realización del Trabajo de Fin de Grado del doble Grado de Ingeniería Informática y Estadística en la Universidad de Valladolid bajo la tutela de Valentín Cardeñoso Payo.

    Los archivos asociados a la construcción del sistema final se encuentran todos dentro de la carpeta ./project y lo correspondiente al seguimiento del proyecto (cuaderno de bitácora y planning) se encuentra en la carpetea ./seguimiento

    Recalcar que todas las pruebas se han realizado en Jupyter Notebook y actualmente se está realizando la fase de conversión en módulos distinguidos en programas Python normales.

    Para la primera fase de extracción de los datos se ha utilizado ./project/twitter_scrapper.py . Se obtiene un conjunto de datos que contiene 15000 tweets en castellano que incluyen la palabra clave ''Covid'' y que se encuentran en ./project/data/es/tweet15k.csv

    En el archivo ./project/etiquetado-datos.ipynb se encuentra la construcción del sistema de etiquetado de los 15000 tweets que previamente habíamos extraido. Este sistema está basado en léxicos que a continuación se describen:

    • Sentiment Polarity Lexicons (SPL): Consta de dos listados de términos positivos y negativos. Se encuentra en ./project/data/lexicon/negative_words_es y ./project/data/lexicon/positive_words_es
    • ML-SentiCon: Se adapta la estructura del archivo inicialmente en xml para conseguir un listado de términos con su grado de polaridad asociado siendo este un valor entre -1 y 1 (-1 para más negativo y 1 para más positivo). Se encuentra en ./project/data/mlsenticon/senticon.xlsx
    • iSOL: Contiene un listado de términos etiquetados como positivo o negativo. Se encuentra en ./project/data/crisol/isol.xlsx
    • CRiSOL: Contiene un listado de términos con tres valores entre 0 y 1 asociados que se corresponden con la correspondencia a términos 'positivos', 'negativos' y 'neutro'. Se encuentra en ./project/data/crisol/crisol.xlsx
    • Emoji Sentiment Ranking 1.0: Contiene una lista de emojis con información asociada de la que nos quedaremos la proporción de veces que han aparecido en textos etiquetados como 'positivos' y 'negativos'. Se encuentra en ./project/data/emoji/Emoji Sentiment Ranking 1.0.csv

    Se han construido cuatro sistemas de etiquetado cada uno utilizando uno de los léxicos de términos y el diccionario de emojis. Después se han combinado los resultados de ambos para construir la clasificación final de los tweets. Durante todo el proceso de etiquetado se ha mantenido la posibilidad de etiquetar un tweet como 'neutro' ante la ausencia de elementos que nos indiquen una cierta polaridad, sin embargo en el sistema final se ha reducido de 15000 a 10573 que son el número de tweets etiquetados como 'positivo' (6493) y 'negativo' (4080) únicamente. Todo este proceso se ha realizado con el sistema de etiquetado incluido en ./project/labeling_data.py

    Finalmente trás una extensa tarea de selección de parámetros, tenemos un clasificador final construido como un sistema de votación de mayoría de tres clasificadores individuales:SVM, Random Forest y Regresión Logística. Como sistema de extracción de características se ha utilizado BoW. Todo esto lo encontramos en ./project/main.py

    Copyright © 2020 Alberto Calvo

    under GNU GLP v3 license