Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
Facultad de Ciencias Exactas Universidad Nacional del Centro de la Provincia De Buenos Aires Carrera Ingeniería de Sistemas Trabajo Final Detección automática de frases verificables Autor Joaquín Saralegui Directora Antonela Tommasel Índice Índice 1 Capítulo 1: Introducción 3 Motivación 4 Objetivos 4 Estructura del informe 5 Capítulo 2: Marco teórico 6 Clasificación 8 Algoritmos de clasificación 10 Árboles de decisión 10 Naive Bayes 11 Bosque aleatorio (random forest) 11 Regresión logística 11 SVM 11 Muestras y features 12 Tokenización 12 Etiquetas de parte del discurso 12 Entidades 12 Morfología 13 Lemas 13 N-gramas 13 Representaciones vectoriales 13 Aprendizaje profundo (Deep learning) 14 Transformadores (Transformers) 14 Pipeline 16 Capítulo 3: Trabajos relacionados 17 ClaimBuster 18 ClaimRank 20 FullFact 21 Comparación entre modelos 23 Chequeado 25 Capítulo 4: Solución propuesta 26 Chequeable o no chequeable 26 Dataset 27 Las features tradicionales 32 Token 32 1 Lema 32 Entidades 32 Morfología 33 Dígitos 33 N-gramas de etiquetas de parte del discurso 33 Representaciones vectoriales 33 Algoritmos de clasificación 36 Capítulo 5: Implementación 39 Bibliotecas 39 Estructura 39 Dataset 40 Extracción de features 40 Evaluación 41 Entrenamiento de modelos 42 Clasificador 43 Capítulo 6: Resultados y análisis 44 Resultados 44 Features tradicionales 45 Representaciones vectoriales 47 Combinación de features 50 Costo temporal 54 El modelo elegido 55 Capítulo 7: Caso de estudio “Chequeado” 59 Mejora continua 59 Ejemplos de uso 61 Desgrabador 62 ¿Qué se chequea hoy? 63 Transcripción en vivo 65 Capítulo 8: Conclusiones 66 Posibilidades de mejora 67 Conclusiones finales 68 Bibliografía 70 2 Capítulo 1 Introducción En los últimos años, la sociedad ha tenido que lidiar con un caudal de noticias falsas sin precedentes, fenómeno para el cual se acuñó el término infodemia. Teorías conspirativas [1,2], celebridades compartiendo información falsa y políticos repitiendo afirmaciones que no se condicen con los datos [3] hoy encuentran en las redes sociales y medios digitales una manera rápida y efectiva de diseminar la desinformación sin ningún tipo de control, intermediario, y peor aún, sin ninguna repercusión negativa por hacerlo. La rapidez de esta propagación y su gran alcance amplifican los efectos negativos de la información distorsionada, inexacta o falsa. Así, la información propagada adquiere el potencial de causar impacto en el mundo real en minutos, lo que ha dado lugar a cuestionamientos y preocupación respecto a la manipulación de la opinión pública [4, 5]. Por su parte, en los casos en que la infodemia es generada desde organismos gubernamentales oficiales o sus integrantes, la preocupación se refleja también en la disminución de confianza no solo en los políticos, sino también en las instituciones, como se ha experimentado durante 2020 debido a la situación provocada por el COVID-19 [6,7,8]. En el largo y mediano plazo, este aumento progresivo de la desconfianza fomenta un clima político de desafección y de baja participación política que impacta directamente en nuestras democracias [9, 10, 11]. Hace ya varios años, y con el objetivo de contrarrestar esta problemática, comenzó en el mundo un movimiento de organizaciones sin fines de lucro dedicadas a la verificación del discurso público y a la validación, por parte de especialistas, de información relevante para la sociedad en general. Algunas de las más relevantes en la escena internacional son PolitiFact y FactCheck.org (Estados Unidos), y FullFact (Inglaterra). En Latinoamérica, la primera organización en dedicarse a la verificación de datos fue Chequeado, una organización argentina sin fines de lucro que nació en 2010. A partir de ese momento más de 30 organizaciones similares se formaron en toda América Latina. Estas organizaciones tienen como objetivo proveer a los ciudadanos con los mecanismos necesarios para tomar decisiones informadas mediante la evaluación de la veracidad de las afirmaciones hechas por figuras públicas como políticos, medios de comunicación o expertos [12]. La principal misión de estas organizaciones es elevar el costo de la mentira para los políticos y las personas que ocupan cargos gubernamentales. Considerando la gran cantidad de información compartida en las redes y medios digitales y el poco tiempo para verificar las afirmaciones contra los hechos, la realización manual de estas tareas consume mucho tiempo y no está exenta de errores [13]. Es así que resulta esencial contar con sistemas y procesos más rápidos de verificación. En este contexto, este trabajo busca asistir a los periodistas y especialistas mediante la automatización de una de las tareas más repetitivas y costosas en tiempo, que es la búsqueda de frases verificables 3 en los grandes volúmenes de información que se producen a diario en las redes sociales, los medios y las organizaciones gubernamentales. Motivación En estos últimos años debido al declive de la confianza en las instituciones y en particular de los políticos, sumado a las campañas organizadas de desinformación, de las fake news y las teorías conspirativas, el rol de las organizaciones verificadoras de datos se volvió aún más relevante. Estas organizaciones, sin fines de lucro, suelen contar con recursos limitados, con lo que el trabajo de verificación, en sus orígenes manual, realizado en colaboración entre periodistas y especialistas, podría ser en parte automatizado para liberar recursos y maximizar el impacto del trabajo de estas organizaciones [14]. Siguiendo esta idea, es necesario generar alternativas para la automatización de parte del proceso de verificación de noticias e información. Una de las tareas clave en el proceso de verificación de información es la determinación de qué frases podrían ser verificables [15]. La automatización de esta tarea no solo permitiría reducir el sesgo humano en la selección de dichas frases, sino también ahorrar tiempo valioso, permitiendo dedicar los escasos recursos de las organizaciones a las tareas más relevantes, y aumentando así la cobertura de las verificaciones y potencialmente su calidad. Varios trabajos se han realizado en esta dirección [15, 16, 17 ,18 ,19, 20], pero en su gran mayoría estas soluciones están desarrolladas exclusivamente en inglés. La iniciativa de brindar este tipo de soluciones en español es llevada adelante únicamente por Chequeado, específicamente a través de su área de Innovación, donde tuve la oportunidad de realizar mis prácticas profesionales. Durante este tiempo entré en contacto directo con la problemática de la propagación de desinformación y fue allí donde encontré un primer prototipo de modelo de clasificación para frases chequeables que a pesar de algunas limitaciones y desventajas, se distinguía como la primera solución disponible en español. Con la experiencia de este primer contacto con el problema y trabajando en coordinación con el equipo de Innovación de la organización, este trabajo busca profundizar en el desarrollo de una solución funcional en español, que sea fácil de implementar (y desplegar), que esté a la altura de los benchmarks de las soluciones en inglés, que solucione las principales problemáticas que presenta la solución actual en español, y que sea open-source, para permitir así el acceso a todas las organizaciones que lo requieran y contribuir desde la tecnología al combate de la desinformación y a la verificación del discurso público. Objetivos El objetivo principal de este trabajo es desarrollar una solución concreta capaz de detectar y seleccionar frases chequeables en una variedad grande de textos, que pueda procesar grandes volúmenes de información en poco tiempo y cuyos resultados estén a la altura del estado del arte de esta tecnología en otros idiomas. Para cumplir con dicho objetivo debemos completar 4 hitos relevantes: 4 1. Determinar el estado del arte de las soluciones a esta problemática y establecer las métricas con las que se determinaráel grado de éxito del modelo desarrollado. 2. Generar una colección de datos a utilizar en la evaluación de los modelos generados. 3. Diseñar y comparar distintas soluciones a este problema utilizando diferentes técnicas de aprendizaje automático combinando aprendizaje supervisado y no-supervisado, y comparar los resultados obtenidos con los valores establecidos en 1. 4. Llevar el modelo a producción dentro de una organización de chequeadores para obtener información acerca de la utilidad de la solución y lograr un impacto positivo en el flujo de trabajo de los periodistas. Estructura del informe Este informe está estructurado en ocho capítulos. Este primer capítulo busca ser una introducción al trabajo realizado y mostrar los objetivos propuestos inicialmente. El Capítulo 2 explora el marco teórico en el que se desarrollan tanto la problemática a solucionar cómo sus posibles soluciones. El Capítulo 3 describe las soluciones existentes, los resultados que se observaron y sus ventajas y desventajas. El Capítulo 4 desarrolla el enfoque que se propone como solución al problema, incluyendo el contexto, la información que se necesita, la salida esperada y los distintos modelos y soluciones que se van a explorar. Además comenta los métodos de evaluación y las métricas que se van a utilizar para realizar la comparación de resultados. El Capítulo 5 describe la implementación de las propuestas del capítulo anterior, las dificultades encontradas y las herramientas y bibliotecas utilizadas. El Capítulo 6 describe los resultados alcanzados, comparando entre las soluciones propuestas y las existentes en otros idiomas y describe también los resultados obtenidos por la implementación en producción del mejor modelo. El Capítulo 7 presenta un caso de estudio concreto referente a la implementación del modelo en el ámbito de producción de Chequeado y otras organizaciones. El Capítulo 8 presenta las conclusiones de este trabajo, las limitaciones y los pasos que pueden tomarse a futuro para avanzar en la solución de esta problemática. 5 Capítulo 2 Marco teórico El periodismo de verificación de datos, hechos factuales o discursos públicos, conocido en inglés como fact-checking journalism, se puede describir de la siguiente manera: “El objetivo de las organizaciones dedicadas al periodismo de verificación y de los verificadores es incrementar el conocimiento mediante la difusión e investigación de hechos manifiestos en las declaraciones públicas de políticos y demás actores cuyas palabras impactan en la vida pública. Los fact-checkers investigan hechos comprobables y su trabajo está libre del partidismo, de defensa de intereses concretos y de retórica. El propósito debería ser proporcionar información clara y profesional y rigurosamente examinada para que los usuarios puedan usar los hechos en pro de tomar decisiones completamente conscientes tanto en jornadas de votación electoral como en cualquier otra decisión esencial”1. El fact-checking surgió en la década de 1990 en Estados Unidos, y en los últimos años se ha visto una nueva ola de medios específicos de verificación y la formación de equipos de trabajo en las redacciones de medios de comunicación con marcas ya consolidadas. En el caso de América Latina, la gran mayoría de medios de verificación surgieron fuera de los medios convencionales y están conformando un nuevo ecosistema periodístico [35]. En la actualidad la confianza ciudadana en la información proporcionada por los medios de comunicación decrece de manera constante en un entorno ciudadano cada vez más polarizado y expuesto a los discursos de odio, posverdad y simpleza argumentativa. Las organizaciones de fact-checking surgen con la idea de atacar este problema y buscan volver el foco de la discusión pública a los hechos y estadísticas comprobables desde un enfoque apartidario e independiente. Las iniciativas mediáticas de periodismo de verificación abarcan cualquier tipo de temática, pero tienen especial foco en la política, el discurso público y la salud. Debido a su origen como organizaciones apartidarias y a la relevancia que tiene la independencia tanto económica como editorial para un equipo de fact-checking, estas organizaciones no acceden a pauta pública ni ningún tipo de financiamiento estatal, con lo que suelen contar con presupuestos muy reducidos. Su financiamiento suele depender del aporte de su comunidad y diferentes fundaciones y empresas, además de los propios proyectos de las organizaciones que puedan generar ingresos, como cursos o charlas. Debido a esto, las organizaciones deben ser creativas y explotar al máximo sus capacidades para poder maximizar el impacto de sus verificaciones y aprovechar de la mejor manera posible los recursos disponibles. En este contexto, la automatización de tareas que consumen tiempo de trabajo y recursos es una opción para atacar este problema, impulsando así el trabajo de 1 Elisabeth, J. (2014). Who are you calling a fact checker? https://www.americanpressinstitute.org/ fact-checking-project/fact-checker-definition/ 6 https://www.americanpressinstitute.org/%20fact-checking-project/fact-checker-definition/ https://www.americanpressinstitute.org/%20fact-checking-project/fact-checker-definition/ los fact-checkers a través de la aplicación de tecnología e inteligencia artificial. Existen diferentes partes del proceso de verificación en las que se puede aplicar esta idea: 1. Encontrar frases chequeables que valga la pena verificar: en esta etapa se busca detectar automáticamente frases que sean verificables. Algunas soluciones proponen además proveer una manera de definir un ranking de relevancia para dichas frases [24]. 2. Detectar frases previamente verificadas: las frases desinformantes suelen repetirse a través de múltiples canales a pesar de haber sido verificadas por chequeadores. La detección automática de estas frases puede ayudar a aumentar el impacto del trabajo de las organizaciones, y ahorrar al equipo de trabajo realizar un chequeo ya existente. 3. Recuperación de información relevante para una verificación: herramientas que automáticamente recuperen la información relevante para realizar una verificación a partir del análisis de la frase pueden ahorrar mucho tiempo de trabajo a los chequeadores. 4. Verificación automática: esta etapa es la más relevante y engloba las tres anteriores, y se define como la capacidad de establecer un veredicto sobre la veracidad de una frase sin intervención humana. Aunque hoy se encuentra muy lejos de ser una realidad, avances en las áreas anteriores afectan de manera directa la factibilidad de automatizar esta etapa. Por otra parte, en español se encuentra el modelo desarrollado por Chequeado, del que no se dispone de manera pública métricas ni artículos que refieran a su proceso de desarrollo, pero sí se pudieron obtener de manera informal las features y algoritmos utilizados, por lo que podremos establecer un baseline para comparar con este modelo inicial. Este proyecto se enfoca en la primera etapa, la detección automática de frases chequeables. Esta detección puede abordarse cómo un problema de clasificación, donde el objetivo es clasificar una frase dentro de una de dos categorías: chequeable o no chequeable. Para poder entender mejor las soluciones existentes y la solución que se desarrolla en este trabajo, este Capítulo provee una introducción al ámbito de procesamiento de lenguaje natural (NLP por sus siglas en inglés) y un resumen de las métricas y algoritmos más utilizados para resolver y evaluar problemas de clasificación. 7 Clasificación El procesamiento de lenguaje natural (en inglés, natural language processing, NLP), es un campo de las ciencias de la computación, de la inteligencia artificial y de la lingüística que estudia las interacciones entre las computadoras y el lenguaje humano y busca ayuda a las computadoras a entender, interpretar y manipular esas interacciones. Los modelos aplicados en esta área se enfocan no solo a la comprensión del lenguaje de por sí,sino a aspectos generales cognitivos humanos y a la organización de la memoria. Una de las tareas dentro del área de NLP es la de clasificación o categorización de texto, que se define como el proceso por el cual se categorizan distintas unidades de texto (pueden ser palabras, frases, párrafos, documentos, etc.) en grupos organizados. El objetivo entonces es predecir las etiquetas de clase categóricas de las nuevas instancias, basándonos en observaciones pasadas. Los problemas de clasificación se pueden dividir en dos tipos: ● Clasificación Binaria. Es un tipo de clasificación en el que tan solo se pueden asignar dos clases diferentes (0 o 1). El ejemplo típico es la detección de email spam, en la que cada email es: spam, en cuyo caso será etiquetado con un 1 ; o no lo es, etiquetado con un 0. ● Clasificación Multi-clase. Se pueden asignar múltiples categorías a las observaciones. Como el reconocimiento de caracteres de escritura manual de números (en el que las clases van de 0 a 9). El problema de la detección de frases verificables es en esencia un problema de clasificación binario, que consume frases y las clasifica en una de dos categorías: chequeable o no chequeable. A continuación se presenta un resumen de las métricas utilizadas para la evaluación y validación de modelos de clasificación y una introducción a los algoritmos más utilizados, además de un resumen de las características y enfoques más comunes a los problemas de este tipo. Métricas A la hora de evaluar el rendimiento de un modelo de aprendizaje automático existen múltiples métricas de evaluación, que se calculan con el objetivo de poder estimar cuán generalizable es un modelo sobre datos desconocidos (es decir, datos que no fueron vistos durante el entrenamiento de los modelos), y para poder comparar los modelos entre sí. Para comprender las métricas que se utilizaran en este trabajo primero es necesario explicar qué es una matriz de confusión. Una matriz de confusión es una representación matricial de los resultados de las predicciones de cualquier prueba binaria que se utiliza a menudo para describir el rendimiento del modelo de clasificación (o "clasificador") sobre un conjunto de datos de 8 prueba cuyos valores reales se conocen [25]. Cada predicción puede ser uno de cuatro resultados, basado en cómo coincide con el valor real: ○ Verdadero Positivo (TP por sus siglas en inglés True Positive): Predicho Verdadero y Verdadero en realidad. ○ Verdadero Negativo (TN por sus siglas en inglés, True Negative): Predicho Falso y Falso en realidad. ○ Falso Positivo (FP, False Positive): Predicción de verdadero y falso en la realidad. ○ Falso Negativo (FN, False Negative): Predicción de falso y verdadero en la realidad. Se puede observar la estructura de la matriz en la Figura 1. Figura 1 Una vez establecidos los cuatro valores que se obtienen de la matriz de confusión, se pueden calcular las siguientes métricas [25]: ● Exactitud (Accuracy en inglés): mide el porcentaje de casos que el modelo ha clasificado correctamente y se calcula como el número de Verdaderos Positivos y Verdaderos Negativos sobre el total de predicciones. ● Precisión (Precision en inglés): se refiere al número de elementos identificados correctamente como positivo de un total de elementos identificados como positivos. Se calcula como la división entre el número de TP y el total de positivos, es decir, la suma de Falsos y Verdaderos Positivos. ● Exhaustividad (Recall en inglés): esta métrica intenta responder a la pregunta “¿Qué proporción de positivos reales se identificó correctamente?” y se calcula cómo el número de TP sobre TP + FN. ● Valor-F (F-Measure): combina las medidas de precisión y exhaustividad para devolver una medida de calidad más general del modelo. Se calcula cómo la media armónica entre la precisión y la exhaustividad. 9 Algoritmos de clasificación Los algoritmos dedicados al problema de la clasificación supervisada operan usualmente sobre la información suministrada por un conjunto de muestras, patrones, ejemplos o prototipos de entrenamiento que son asumidos como representantes de las clases, y los mismos poseen una etiqueta de clase correcta. A este conjunto de prototipos correctamente etiquetados se le llama conjunto de entrenamiento, y es el conocimiento empleado para la clasificación de nuevas muestras. El algoritmo utilizado para abstraer la información relevante del conjunto de entrenamiento y poder aplicar el conocimiento aprendido a muestras nuevas es el que da el nombre al clasificador. A continuación se explican brevemente algunos de los algoritmos más utilizados y que se referencian a lo largo del trabajo. Árboles de decisión Un árbol de decisión es un modelo de predicción utilizado en diversos ámbitos que van desde la inteligencia artificial hasta la Economía. Dado un conjunto de datos se fabrican diagramas de construcciones lógicas, muy similares a los sistemas de predicción basados en reglas, que sirven para representar y categorizar una serie de condiciones que ocurren de forma sucesiva, para la resolución de un problema. En el ámbito del aprendizaje automático, los algoritmos basados en árboles de decisión utilizan un árbol de decisión como un modelo predictivo que mapea observaciones sobre un artículo a conclusiones sobre el valor objetivo del artículo [26]. Los modelos de árbol, donde la variable de destino puede tomar un conjunto finito de valores se denominan árboles de clasificación. En estas estructuras de árbol, las hojas representan etiquetas de clase y las ramas representan las conjunciones de características que conducen a esas etiquetas de clase [27]. 10 Naive Bayes Es un método probabilístico que tiene sus bases en el teorema de Bayes y recibe el apelativo de ingenuo (Naive) dadas algunas simplificaciones adicionales que determinan la hipótesis de independencia de las variables predictoras. Esto quiere decir que asume que las variables que utiliza para realizar las predicciones son independientes entre sí, aunque en la realidad muchas veces no lo son [28]. Aún así suele dar muy buenos resultados y se utiliza ampliamente en el mundo del machine learning. Bosque aleatorio (random forest) Esta técnica define un conjunto de árboles de decisión entrenados con diferentes conjuntos de entrenamiento. Cada árbol interno funciona como los árboles de decisión descritos anteriormente. Para entrenar cada árbol se utiliza una técnica conocida como bagging, la cual busca utilizar un subconjunto de datos para entrenar cada uno, pudiendo encontrarse el mismo dato en varios árboles [29]. Esto reduce la varianza en el modelo. Si se trabaja en una tarea de clasificación se elige la clase con mayor cantidad de votos entre los árboles creados, es decir, la clase que más veces haya sido predicha. Regresión logística La regresión es una técnica de análisis estadístico que permite modelar la relación entre distintas variables. Mientras que la clasificación busca predecir una etiqueta, las técnica de regresión buscan predecir una cantidad. El método más sencillo dentro del campo de la regresión es la regresión lineal, que busca relacionar la variable escalar dependiente “y”, con una o más variables explicativas “X” y cualquier transformación de estas variables que genere un hiperplano [30]. Mientras que la regresión lineal es adecuada para una variable objetivo continua, la regresión logística es una adaptación del método de regresión para variables categóricas, donde las probabilidades que describen el posible resultado de un único ensayo se modelan como una función de variables explicativas, utilizando una función logística [31]. Por esta razón la regresión logística se utiliza para tareas de clasificación. SVM Dado un conjunto de puntos, subconjunto de un conjunto mayor (espacio), en el que cada uno de ellos pertenece a una de dos posibles categorías, un algoritmo basado en SVM construye un modelo capaz de predecir si un punto nuevo (cuya categoría desconocemos) pertenece a una categoría o a la otra[32]. Como en la mayoría de los métodos de clasificación supervisada, los datos de entrada (los puntos) son vistos como un vector p-dimensional (una lista ordenada de p números). Luego, SVM busca un hiperplano que separe de forma óptima a los puntos de una clase de la de otra, que eventualmente han podido ser previamente proyectados a un espacio de dimensionalidad superior. 11 Muestras y features La mayoría de las técnicas de clasificación requieren un pre-procesamiento de los datos. En el caso de NLP existen múltiples técnicas utilizadas habitualmente para extraer características o features que representen estos datos iniciales de una manera que sea más provechosa para la clasificación. En este trabajo se exploran las técnicas más utilizadas de extracción de features, y estas se explican a continuación. Tokenización El primer paso que se realiza generalmente antes de extraer cualquier característica o feature para representar los textos, es tokenizarlo. Esto quiere decir, separar las palabras (tokens de aquí en adelante) que las componen. En español esta tarea es relativamente sencilla ya que es suficiente utilizar los espacios en blanco como delimitadores, y aplicar un tratamiento especial a los signos de puntuación para casos especiales cómo números o palabras con guiones. Etiquetas de parte del discurso El etiquetado de partes del discurso (Part-of-Speech tagging, POS) se encarga de asignar a cada palabra de una oración sus posibles categorías léxicas, de acuerdo a su contexto. Algunas de las etiquetas utilizadas más comúnmente son adjetivos, adverbios, verbos, sustantivos, pronombres, entre otros. El etiquetado se convierte en una tarea compleja, al enfrentar principalmente tres grandes retos: 1) La ambigüedad de palabras, que puede ocasionar un etiquetado incorrecto, dadas las múltiples etiquetas que puede tener cada palabra; 2) El tamaño del conjunto de etiquetas, un conjunto de etiquetas muy especializado puede llegar a dificultar la distinción entre varias etiquetas similares, y un conjunto de etiquetas muy general, puede ocasionar pérdida de conocimiento morfológico y morfosintáctico ocasionando un etiquetado incorrecto; y 3) El etiquetado de palabras desconocidas, es decir, palabras que no se encuentran en los datos de entrenamiento, o sobre las cuales no se tienen previamente definidas reglas para su etiquetado, por tanto, se dificulta asignar automáticamente la etiqueta correcta. Para facilitar esta tarea existen en la actualidad múltiples bibliotecas de NLP que proveen esta función en español y alcanzan altos niveles de precisión. Entidades La extracción de entidades nombradas (NER por sus siglas en inglés) ‒ también conocida como detección de entidades ‒ se refiere a la tarea de identificar automáticamente entidades generalmente determinadas por su nombre propio y clasificarlas dentro de un conjunto predefinido de categorías. Las entidades pueden ser nombres de personas, lugares, organizaciones, o también fechas, porcentajes, valores y cantidades, entre otros. Por ejemplo, el token “Juan” se clasificaría como Persona, mientras que “Córdoba” como lugar geográfico. 12 Morfología La morfología es la rama de la lingüística que estudia la estructura interna de las palabras para definir y clasificar sus unidades: las variantes de las palabras (morfología flexiva) y la formación de nuevas palabras. Para cada token se pueden extraer sus features morfológicas, es decir, aquellas que modifican o se combinan con el lema, o forma raíz, de una palabra para obtener la forma final. Estas features se pueden referir a tiempos verbales, personas gramaticales (primera, segunda, tercera), géneros gramaticales (masculino, femenino, neutro), conjugaciones, entre otras. Lemas La lematización es un proceso lingüístico que consiste en, dada una forma flexionada (es decir, en plural, en femenino, conjugada, etc), hallar el lema correspondiente. El lema es la forma que se acepta como representante de todas las formas flexionadas de una misma palabra. Se podría decir que componiendo el lema con la morfología podemos reconstruir la palabra original. Esta división permite extraer características generalizables de las palabras y busca abstraer la información relevante contenida en la conjunción de estas palabras en una frase particular. N-gramas Los n-gramas son secuencias de largo N, que buscan capturar con un enfoque sencillo las relaciones entre los elementos que las componen. Un n-grama de palabras de largo 3 podría ser “Hola cómo estás”. Un n-grama de largo 2 de etiquetas del discurso podría ser “NUM SYM”, representando un número seguido de un símbolo, por ejemplo, “20 %”. Esto nos permite conocer un poco más de la relación entre los objetos y abstraer la información relevante escondida en esas relaciones. Representaciones vectoriales Representaciones vectoriales (o sentence embeddings) se refiere a un conjunto de técnicas dentro del ámbito de procesamiento de lenguaje natural que buscan mapear frases a vectores de números reales. Las primeras aplicaciones de esta técnica en el ámbito de NLP fue con word2vec, una herramienta que permitía codificar palabras en vectores y luego realizar cálculos de álgebra lineal para determinar, por ejemplo, similaridad entre las dos palabras, de acuerdo a la cercanía de sus vectores en el espacio de n-dimensiones determinado. Con el surgimiento de nuevas técnicas de Inteligencia Artificial, como deep learning y los transformers, llegó la posibilidad de realizar la misma tarea pero para un conjunto de palabras. Es decir, representar frases enteras en un vector de n-dimensiones y poder realizar distintos análisis entre dichos vectores. Se introduce a continuación un breve resumen de los principios básicos necesarios para entender las representaciones vectoriales. 13 Aprendizaje profundo (Deep learning) El aprendizaje profundo o deep learning se define como un algoritmo automático estructurado o jerárquico que emula el aprendizaje humano con el fin de obtener ciertos conocimientos. Destaca porque no requiere de reglas programadas previamente, sino que el propio sistema es capaz de “aprender” por sí mismo para efectuar una tarea a través de una fase previa de entrenamiento. A su vez, también se caracteriza por estar compuesto por redes neuronales artificiales entrelazadas para el procesamiento de información. Se emplea principalmente para la automatización de análisis predictivos. Estos algoritmos proponen una cascada de capas con unidades de procesamiento no lineal para extraer y transformar variables. Cada capa usa la salida de la capa anterior como entrada. Un ejemplo de estructura con tres capas se puede observar en la Figura 2. Figura 2. Una posible estructura de red neuronal para aprendizaje profundo. Transformadores (Transformers) Para las tareas de NLP, el modelo de deep learning más utilizado en la actualidad es el Transformer. Este modelo, introducido en 2017 [33], define el concepto de capas de atención y se utiliza principalmente en tareas de NLP. Las capas de atención codifican cada palabra de una frase en función del resto de la secuencia, permitiendo así introducir el contexto en la representación matemática del texto, motivo por el cual a los modelos basados en Transformers se les denomina también Embeddings Contextuales. El Transformer utiliza una estructura de codificador-decodificador. El codificador consiste en un conjunto de capas que procesan la entrada de manera iterativa, una capa tras otra y generan codificaciones para cada entrada que buscan extraer únicamente la información relevante para la resolución del problema planteado. El decodificador está compuesto también por un conjunto de capas que se ocupan de hacer lo contrario al codificador, tomando todas las codificaciones y utilizando la información contextual que contienen para generar una secuencia de salida. Se pueden observar más detalles de la estructura en la Figura 3. 14 Figura 3. Estructura del modelo Transformers. La arquitectura de Transformer incluyeotras innovaciones, como los embeddings posicionales, que permiten al algoritmo conocer la posición relativa de cada palabra del texto. En el paper original se examina la aplicación de esta arquitectura a tareas de traducción, demostrando ser mucho más efectiva que los métodos anteriores en este aspecto. El Transformer será entonces el modelo que dada una frase como entrada, generará 15 representaciones vectoriales que podrán utilizarse cómo entrada para los mecanismos de clasificación. Pipeline En resumen, podemos considerar el procesamiento del lenguaje natural como un pipeline de varias etapas, donde la entrada es un conjunto de datos de entrenamiento y la salida un modelo capaz de clasificar nuevas entradas utilizando el conocimiento adquirido. En este caso lo primero que se hace es procesar los datos de entrada, aplicando primero tokenización y luego aplicando los mecanismos de extracción de las features explicadas previamente. Luego, un subconjunto de los datos de entrada y sus features conocido como conjunto de entrenamiento, se utiliza cómo entrada para un conjunto de algoritmos de clasificación, que van a buscar generalizar el conocimiento presente en ese conjunto de entrenamiento. Luego se busca predecir con los modelos entrenados los resultados del subconjunto restante, o conjunto de evaluación, y a partir de esta predicción se calculan las métricas descritas a principio del capítulo. Estas métricas determinarán cuál de los algoritmos de clasificación se ajusta mejor a esta tarea particular, y de esta manera tendremos un modelo final para poner en producción. 16 Capítulo 3 Trabajos relacionados Establecido entonces el marco teórico sobre el que se desarrolla este trabajo, este Capítulo busca introducir las soluciones que existen en la actualidad para la detección automática de frases chequeables, analizar las ventajas y desventajas de cada una y determinar algunos lineamientos respectos a los problemas que busca solucionar este trabajo y las características que debe tener la solución presentada. En el marco de este análisis es importante también destacar las razones que impulsaron el desarrollo de estos trabajos y profundizar en la problemática central que buscan resolver. El proceso de detección de frases es complejo, ya que chequear una frase lleva tiempo y recursos que generalmente son escasos en las organizaciones que se dedican a este trabajo. Los chequeadores deben elegir una frase teniendo en cuenta el daño que puede causar (incluyendo poner riesgo la salud de la población, comprometer los procesos democráticos, o empeorar una situación de emergencia que ya de por sí es peligrosa), y compararlo con el esfuerzo que requiere verificar esa frase, si es que acaso puede ser verificada. En muchos casos la información necesaria para verificar una frase no está disponible o al menos no de fuentes oficiales, y el trabajo de consultar especialistas, fuentes alternativas pueden llevar a veces varios días y aún así arrojar resultados infructuosos [22]. Por otro lado, monitorear a todas las figuras públicas y sus dichos de manera manual es virtualmente imposible. Hay cientos de figuras públicas relevantes en la vida política de un país y cada una de estas se comunica con el público a través de múltiples plataformas. Entrevistas televisivas, de radio, en el diario, cuentas personales de redes sociales, discursos oficiales en inauguraciones o eventos de carácter público, sesiones de congreso o senado, actos partidarios, y muchas variantes más. En este contexto, llevar un registro de todas las frases verificables dichas en estos eventos requiere muchísimo capital humano y por lo tanto económico, y aún así no se puede estar seguro de no estar perdiendo información relevante. Por otro lado, si los verificadores esperan a que las frases se vuelvan virales para verificarlas, el daño posiblemente ya esté hecho. Es importante recalcar que las verificaciones se viralizan a un ritmo seis veces más lento que las noticias falsas [36] y, en consecuencia, identificar estas frases lo antes posible permite tener una ventaja contra la diseminación de la información falsa. Establecida entonces la problemática central que atacan estos trabajos, se describen a continuación tres proyectos que resultan de principal interés y que representan hoy el estado del arte en la detección automática de frases verificables: ClaimBuster, un proyecto de la Universidad de Texas [19], desarrollado en inglés a partir de un dataset de 23.980 frases etiquetadas manualmente; el módulo de detección de frases chequeables de Full Fact [16], también en inglés; y por último ClaimRank [18], un proyecto de Qatar Computing Research Institute, disponible en inglés y árabe. 17 ClaimBuster La solución de ClaimBuster define tres categorías para las frases a analizar: 1. Non-Factual Sentence (NFS). Frases no factuales. Estas frases no contienen ninguna observación verificable, y suelen ser opiniones, predicciones o preguntas, entre otras cosas. 2. Unimportant Factual Sentence (UFS). Dentro de este grupo se definen las frases factuales que no son relevantes para los chequeadores o que no valdría la pena verificar. Por ejemplo, “ayer llovió”. Esta clasificación es problemática ya que muchas veces depende del contexto, y una frase que hoy no es relevante para ser verificada mañana podría serlo. Enfoques como los de Full Fact critican esta categorización y proponen una alternativa. 3. Check-worthy Factual Sentence (CFS). Estas frases contienen declaraciones factuales que vale la pena verificar y que el público puede estar interesado en saber si son o no verdad. El dataset que utilizan cuenta con 20.788 frases extraídas de 30 debates presidenciales entre 1998 y 2012. Estas frases fueron etiquetadas manualmente por un grupo de voluntarios y luego validadas con técnicas de quality assurance. La distribución de las frases en sus correspondientes categorías se puede observar en la Tabla 1. Cantidad Porcentaje NFS 11851 67.08 % UFS 1627 09.21 % CFS 4187 23.70 % Tabla 1. Distribución de los diferentes tipos de frases Como podemos observar predominan las frases no factuales (NFS), aunque el porcentaje de frases factuales que vale la pena verificar (CFS) es relativamente alto comparado con textos de otros ámbitos. Esto se explica por el contexto en el que se encuentran estas frases, un discurso presidencial tiende a contener un alto número de referencias a hechos factuales que suelen ser relevantes para el público. 18 Para cada una de las frases se seleccionaron las siguientes features (características): ● Sentimiento (sentiment): utilizaron AlchemyAPI2 para calcular un valor de sentimiento para cada frase, que va de -1 (más negativo) a 1 (más positivo). ● Largo: cantidad de palabras en la frase. ● Palabra: consideraron la relevancia de cada palabra en la frase en relación a su frecuencia de aparición en la colección completa de frases calculando el TF-IDF (frecuencia de término – frecuencia inversa de documento). ● Etiquetas de partes del discurso (POS, del inglés Part-of-Speech): aplicaron la funcionalidad POS de la biblioteca NLTK3 en Python para extraer las etiquetas correspondientes a cada palabra en las frases. Para cada etiqueta existente (43 en total), se consideraba su frecuencia de aparición de cada una en las frases. ● Entidades: utilizaron AlchemyAPI para extraer un conjunto de entidades de cada frase. La frecuencia de aparición de cada tipo de entidad en cada frase se consideró como una característica individual. Sobre estas características (6.615 en total) utilizaron un clasificador para detectar las características más relevantes a la hora de determinar a qué grupo pertenecen. El clasificador utilizado fue un random forest. Una vez determinada la relevancia de los distintos grupos de características, probaron tres métodos de aprendizaje supervisado para intentar clasificar las frases en estas tres categorías: 1. Multinomial Naive Bayes Classifier (NBC) 2. Support Vector Machine (SVM) 3. Random ForestClassifier (RFC) El modelo que arrojó mejores resultados fue el SVM entrenado utilizando las características POS y Palabras. Estos resultados se pueden observar en la Tabla 2. Precisión Recall F-measure NFS 0.90 0.96 0.93 UFS 0.65 0.26 0.37 CFS 0.79 0.74 0.77 Tabla 2. Métricas obtenidas por el mejor clasificador de ClaimBuster 3 https://www.nltk.org/ 2 Disponible en la actualidad a través de IBM Watson Natural Language Understanding API: https://cloud.ibm.com/catalog/services/natural-language-understanding 19 https://www.nltk.org/ https://cloud.ibm.com/catalog/services/natural-language-understanding Como podemos observar la precisión resulta mucho más alta para las frases no factuales lo cual podría relacionarse con la presencia predominante de estas frases en el dataset de entrenamiento. La fila más relevante de esta tabla es la de las frases factuales que vale la pena chequear (CFS), ya que son aquellas que serán entregadas a los periodistas. El valor de recall nos indica el porcentaje de frases chequeables que son detectadas sobre el total de las que existen en el dataset. Esto nos daría a entender que de cada 4 frases chequeables que vale la pena verificar, 3 serán detectadas y clasificadas correctamente por el clasificador. Además indica que cuatro de cada cinco frases que se clasifican como CFS están correctamente clasificadas. La principal desventaja que presenta este enfoque es que la clasificación de UFS, es decir de frase verificable no relevante, es dinámica y muchas veces arbitraria. Una frase relevante para una organización puede no serlo para otra, así como también cualquier cambio de contexto puede modificar esta relevancia. La detección de frases verificables es un problema separado del de determinar la relevancia de estas frases, como explica Full Fact en su publicación [16]. ClaimRank ClaimRank es un proyecto llevado adelante principalmente por el Qatar Computing Research Institute y es uno de los pocos proyectos disponibles en más de un idioma, en este caso inglés y árabe. ClaimRank utiliza un dataset de aproximadamente 5000 frases extraídas de debates presidenciales de Estados Unidos y traducidas a Árabe para el entrenamiento del modelo correspondiente. Para entrenar los modelos de clasificación proponen extraer diferentes features. Primero, incluyen todas aquellas consideradas por ClaimBuster, es decir, frecuencia de palabras, etiquetas de POS y de entidades, análisis de sentimiento y largo de la frase y agregan además características del léxico (palabras clasificadas como sesgos, sentimiento, subjetividad, entre otras) y características estructurales, como la posición de una frase dentro del discurso. Para la clasificación proponen utilizar una red neuronal con dos capas ocultas. En la capa de entrada de la red ingresan las features extraídas de cada frase. Las dos capas internas tienen 200 y 50 neuronas respectivamente. Finalmente utilizan una función sigmoide para clasificar las frases como verificables o no y utilizan la probabilidad que asigna el modelo a la categoría de verificable para poder generar un ranking de las frases de acuerdo a su relevancia o “check-worthiness”. Para la evaluación utilizan métodos diseñados para la evaluación de sistemas de ranking o recomendación y por lo tanto utilizan métricas diferentes a los otros proyectos. MAP se refiere a Mean Average Precision, o media del promedio de precisión, que mide el promedio medio de precisión para un conjunto de preguntas formuladas cuyas respuestas son ordenadas por el sistema siguiendo un ranking de relevancia. Cuando se realiza la evaluación utilizando MAP, para cada consulta se calcula la media de los valores de precisión obtenidos cada vez que se encuentra un documento relevante. Además utilizan la medida de P@k, o 20 Precision at k, que se refiere al valor de precisión alcanzado dentro de las primeras k recomendaciones. MAP R-Pr P@5 P@10 P@20 P@50 Inglés 0.427 0.432 0.8 0.725 0.713 0.6 Árabe 0.302 0.331 0.10 0.25 0.38 0.48 Tabla 3. Resultados del clasificador ClaimRank para ambos idiomas. A partir de los resultados presentados en la Tabla 3, puede observarse que los resultados en árabe fueron mucho menos prometedores que aquellos en inglés. De acuerdo con los autores, esta situación responde a que la mayoría de las bibliotecas utilizadas en inglés no están disponibles en árabe, un problema que también deberemos superar en este trabajo cuando busquemos aplicar estas técnicas a textos en español. El enfoque que presenta ClaimRank tiene un problema similar al de ClaimBuster y es que busca generar como resultado un ranking que ordena las frases chequeables de acuerdo a qué tan “valiosas” son para chequear, un concepto que es dependiente del contexto y que sufre modificaciones con el paso del tiempo. Ninguno de los dos enfoques tiene esto en consideración y en consecuencia generan un ranking de relevancia que por definición va a estar siempre desactualizado dado que es en relación al etiquetado original del dataset. FullFact A diferencia de ClaimBuster y ClaimRank, Full Fact propone una clasificación independiente de la relevancia o “check-worthiness” de una frase. Por eso, proponen siete categorías para las frases a clasificar que son menos dependientes del contexto: ● Experiencia personal (Personal experience). Frases chequeables pero que no pueden ser verificadas usando información pública. ● Cantidad en el pasado o presente (Quantity in the past or present). Se refiere a un valor cuantitativo. ● Comparación (Comparison). Comparación entre valores. ● Correlación o causalidad (Correlation or causation) Explica una relación entre dos variables o la ausencia de una. ● Leyes o reglas (Current laws or rules of operation). Sentencias declarativas que suelen incluir acciones obligatorias o determinadas por ley. ● Predicción (Prediction). Frases que se refieren a situaciones hipotéticas en el futuro. 21 ● Otros tipos de frases verificables (Other type of claim). Opinión pública, resultados de encuestas, definiciones y cualquier otra frase que pueda ser categorizada como verificable pero que no entra en las categorías anteriores. ● Frase no verificable (Not a claim). Frases que no son verificables y no entran en ninguna de las categorías previas. A partir de esta clasificación Full Fact generó un dataset con el aporte de 80 voluntarios que proporcionaron 28.100 anotaciones sobre 6.000 frases, proporcionando múltiples anotaciones por frase. De esta forma, se consideraba que la clasificación de una frase era correcta si el 60% de los anotadores habían coincidido en sus anotaciones. Como resultado de este proceso quedaron seleccionadas 4.777 frases con sus correspondientes categorías. Para la clasificación propusieron utilizar representaciones universales de las frases utilizando InferSent [39] para extraer representaciones vectoriales de las frases. Estas representaciones se generan utilizando una red bidireccional (BiLSTM en este caso) entrenada en un dataset extenso enfocado en distintas tareas de comprensión de lenguaje natural (NLU, del inglés Natural Language Understanding). Además, Full Fact extrajo información de POS y reconocimiento de entidades (NER, del inglés Named Entity Recognition) para cada frase. Para cada frase construyeron un vector que contenía la cantidad de apariciones de una etiqueta particular de POS o NER en la posición correspondiente. Una vez que extraían esta representación vectorial que combina los embeddings de InferSet con las etiquetas de POS y NER probaron cuatro clasificadores de aprendizaje supervisando implementados a través de la biblioteca scikit-learn4. Los algoritmos utilizados fueron regresión logística, SVM, Naive Bayes y Random Forest. La evaluación experimental determinó que el modelo de regresión logística permitió alcanzar los mejores resultados, mientras que las etiquetas de POS y NER no aportaron mejoras al modelo. Para nuestro problema nos interesa ver el resultado de la clasificación binaria Chequeable/No chequeable (Claim/Noclaim) disponibles en la Tabla 4, pero se pueden observar también los resultados de la clasificación en siete categorías en la Tabla 5. Precisión Recall F-measure Claim / No claim 0.88 0.8 0.83 Tabla 4. Resultados del clasificador binario de FullFact. 4 https://scikit-learn.org/stable/ 22 https://scikit-learn.org/stable/ Precisión Recall F-measure Not a claim 0.77 0.9 0.83 Other type of claim 0.59 0.55 0.57 Quantity 0.8 0.79 0.79 Prediction 0.6 0.27 0.37 Personal experience 0.72 0.39 0.50 Correlation/causation 0.5 0.13 0.21 Current laws/rules 0.27 0.04 0.07 Tabla 5. Resultados del clasificador de 7 categorías de FullFact. La Tabla 5 nos permite observar que el recall alcanzado para la categoría de “Not a claim” es el responsable de elevar el valor de recall general del modelo. Asimismo la Tabla 5 nos permite inferir que el valor general de recall de frases verificables fue menor al valor propuesto en la Tabla 4, el cual se ve inflado por la presencia del valor de recall de las frases no verificables. Comparación entre modelos La comparación de los modelos no se puede realizar de manera directa porque cada uno utilizó métricas y datos de evaluación diferentes, lo que hace que los resultados de las tres propuestas no sean directamente comparables. Sin embargo, la publicación de Full Fact incluye una tabla comparativa entre los tres trabajos a partir de implementaciones que realizaron ellos de los otros trabajos, con algunas reservas [16]. 23 Tabla 6. Tabla comparativa de implementaciones de Full Fact de los modelos de ClaimBuster (CB), ClaimRank y su propio modelo (CNC). Además la tabla contiene información de los métodos TF-IDF y embeddings de palabras. Por último también específica para cada modelo cuando se utilizan las features de POS (part-of-speech) y NER (named entity recognition). Podemos observar en la Tabla 6 como ClaimRank obtiene la máxima precisión pero valores de recall bajos, es decir que cuando clasifica una frase como chequeable acierta un 93% de las veces, pero solo reconoce un 65% de las frases chequeables existentes, promediando así un F-measure de 0.77. El mejor modelo de ClaimBuster por otro lado obtiene un 86% de precisión y un 75% de recall, lo que representa una solución más balanceada que la de ClaimRank, algo importante teniendo en cuenta que en esta tarea en particular es muy importante tener valores altos de recall, ya que significa perder menos frases potencialmente chequeable. Su F-Measure es levemente mejor que el de ClaimRank, 0.79. Por último el mejor modelo de FullFact presenta 88% de precisión y 80% de recall, alcanzando un f-measure de 0.83, el mejor de los tres. 24 Chequeado La última solución a analizar es la única disponible en español de la que se tiene conocimiento. En 2017, Chequeado desarrolló un prototipo de clasificador, que utilizaba la biblioteca Freeling5 para extraer etiquetas de parte del discurso y lemas de las palabras de cada frase. Estas etiquetas se combinaban en n-gramas de longitud tres y en conjunto con las features anteriores se utilizaban para entrenar un clasificador utilizando la implementación ofrecida por la biblioteca NLTK del algoritmo de Naive Bayes. La falta de actualización de las librerías (la última actualización de Freeling es de 2016) y la pérdida de algunos componentes centrales del código hicieron imposible replicar los resultados por el modelo prototipado. El equipo de desarrollo de la organización en esos tiempos estaba conformado por una única persona y la falta de procesos de desarrollo establecidos, documentación y elementos de configuración y administración de bases de código dificultaron la recuperación del trabajo realizado. En este contexto, la información aquí recabada surgió de conversaciones con el único desarrollador que en aquél momento tenía la organización y responsable de este prototipo. A pesar de no tener acceso al prototipo original y pocos registros de las métricas y datasets utilizados por este modelo, se puede extraer de este enfoque tres desventajas o posibilidades de mejora. La primera, es que el tiempo que tarda Freeling en extraer las features de cada frase lo hacen muy difícil de utilizar en un entorno de producción en el que se deben procesar más de medio millón de frases por semana, y que en múltiples ocasiones debe responder en tiempo real (eventos en vivo). La segunda es que no considera muchas de las features que utilizan los modelos que presentamos previamente, por lo que su precisión y performance debería estar por debajo de lo esperado por el estado del arte. El uso de entidades y representaciones vectoriales prometen mejorar los resultados obtenidos. Por último el dataset utilizado tenía un tamaño estimado de dos mil frases, algo en lo que este trabajo buscará ampliar para obtener mejores resultados. El objetivo final del trabajo es poder entregar a la organización, y a cualquier otra que esté interesada en utilizarlo, un modelo de detección de frases chequeables que esté a la altura del estado del arte en otros idiomas, sea eficiente y veloz y de código abierto. Idealmente, el nuevo modelo se integrará en los productos y aplicaciones que utiliza la organización en la actualidad y facilitará el trabajo de los chequeadores. 5 http://nlp.lsi.upc.edu/freeling/node/1 25 Capítulo 4 Solución propuesta Este capítulo presenta una introducción al enfoque utilizado para implementar la detección automática de frases en español, explicando los pasos propuestos para desarrollar la solución, qué información se necesita como entrada, qué tipo de resultados se van a generar, cómo se busca resolver las desventajas que presentan las soluciones descriptas en el Capítulo 3, qué modelos serán evaluados como posibles soluciones y finalmente qué métricas se utilizarán para hacer la evaluación. Chequeable o no chequeable El objetivo de este trabajo es presentar un modelo capaz de clasificar correctamente frases como chequeables o no chequeables, entrando, por lo tanto, en la categoría de problemas de clasificación. La solución entonces buscará aplicar algoritmos de aprendizaje automático para, a partir de un dataset etiquetado manualmente, poder generar un modelo capaz de clasificar una frase nueva como chequeable o no chequeable. Para realizar este proceso es necesario determinar primero qué se considera una frase chequeable. Para determinar si una frase es chequeable, Chequeado [37] establece que debe cumplir con los siguientes requisitos: ● La frase debe ser factual: tiene que mencionar algún hecho o un dato sobre el que se pueda comprobar su exactitud o veracidad. ● La frase debe poder ser chequeada en un plazo razonable: una afirmación puede ser factual, pero si la verificación de esa frase implica una cantidad prohibitiva de recursos, entonces en la práctica no es chequeable. ● La frase debe poder probarse con datos abiertos existentes: en principio el trabajo de los chequeadores consiste en verificar frases, no en llevar adelante investigaciones, por lo que la frase debe poder ser verificada a partir del análisis de datos existentes. Esta definición está sujeta el contexto puntual de una organización y un país, ya que los recursos disponibles para realizar verificaciones varían de organización en organización, y lo mismo la información que se encuentra disponible y abierta al público: estadísticas públicas, estudios e investigaciones privadas, expertos y muchas otras fuentes dependen del contexto y los datos que en un país están disponibles pueden no estarlo en otro, o los datos que hasta ayer no existían, pueden aparecer mañana. Debido a esto, consideraremos principalmente el primer requisito, que determina que una frase debe ser factual, como el centro de una definición menos dependiente del contexto. 26 Además podemos precisar esta definición con algunas categorías de frases que a pesar de ser factuales se consideran no chequeables: ● Las promesas. ● Las generalizaciones o afirmaciones sobre grandes problemáticas universales. ● Las opiniones o referenciasa experiencias subjetivas. ● Las predicciones. ● Las negaciones (ya que no hay registros o pruebas de aquello que no ocurrió). Esta clasificación puede variar de acuerdo a cada organización de fact-checking, pero nos provee un marco de referencia a la hora de determinar el resultado esperado del clasificador a implementar. Como se explicó en el Capítulo anterior, algunas soluciones a este problema proponen además tener en cuenta la relevancia de las frases en el proceso de clasificación. Este enfoque presenta un problema similar a la definición de chequeable, aunque con un agravante. Mientras que la propiedad de una frase de ser chequeable es relativamente estable su relevancia es mucho más dependiente del contexto y una frase que en el pasado no requería ser verificada, puede que sí lo requiera en la actualidad o un futuro cercano. El contexto es el principal determinante de la relevancia de una frase. Una vez establecida la definición de chequeable, es necesario generar un dataset donde se etiquete manualmente un número determinado de frases cómo chequeables o no chequeables, para poder entrenar y evaluar los diferentes modelos. Dataset La construcción del dataset es una parte crucial dentro del proceso de clasificación. Un dataset no representativo del problema que se busca resolver significa un modelo con menor capacidad de abstraer información relevante del problema y generar predicciones acertadas. Mientras mayor semejanza haya entre los datos presentes en el dataset y la realidad, mejores resultados se pueden esperar del clasificador. Por otra parte también es importante el correcto etiquetado de los datos, ya que ejemplos mal etiquetados pueden confundir al modelo y generar una clasificación poco precisa. El primer factor a determinar fue el tamaño aproximado del dataset. Analizando los datasets utilizados por FullFact (4.800 frases), ClaimRank (5.000 frases) y ClaimBuster (6.600 frases) referenciados en el Capítulo 3, se establece para el dataset de este trabajo un tamaño objetivo de 5.000 frases, considerándolo suficiente, en principio, para alcanzar resultados similares a los trabajos previamente mencionados. 27 El segundo punto a determinar es el origen de las frases a etiquetar. Considerando el contexto en el que pretende utilizarse este clasificador se consideraron tres fuentes de frases: discursos presidenciales, chequeos y notas de medios digitales. Los discursos presidenciales son representativos del discurso político, y suelen contener un número alto de datos y referencias a estadísticas, así cómo también promesas y predicciones, lo que brinda un número alto de frases chequeables, y también suficientes ejemplos de los principales casos para los que se busca predecir que algo es no chequeable. Los chequeos son notas que buscan verificar una frase dicha por alguna figura pública de relevancia, como políticos, funcionarios, sindicalistas, entre otros. Para cada frase chequeada se asigna una calificación que va desde “Verdadero” a “Falso”, y tiene varios puntos intermedios como “Engañoso” o “Apresurado”. Los títulos de un chequeo se componen con el apellido de la figura chequeada seguida de la frase que se está verificando, por ejemplo: Milei: “El calentamiento global es una mentira”6 Más ejemplos de chequeos se pueden encontrar en el sitio web de Chequeado7. Estos artículos proveen frases chequeables por definición, ya que en su título contienen una frase que efectivamente fue chequeada, por lo que todo lo que se requiere es realizar una extracción de los títulos con técnicas de scraping. Esta fuente permite obtener un altísimo número de ejemplos positivos y que además hablan de la naturaleza de las frases que suelen elegirse para ser chequeadas. Si el modelo puede abstraer las características principales de este tipo de frases, proveería en el futuro sugerencias que se alinean con el tipo de frases que suele verificar la organización. Por último la tercera fuente seleccionada fueron notas de medios digitales. Estas notas suelen abarcar contextos dispares y contienen una gran cantidad de ejemplos de frases no chequeables. Esta parte del dataset busca proveer información acerca de qué frases no deberían ser tomadas en consideración y preparar al modelo para trabajar en diferentes contextos y poder filtrar información no relevante. Una vez determinadas las fuentes y la cantidad estimada se extraen las frases a etiquetar, alcanzando la siguiente composición: aproximadamente 2.300 frases provenientes de discursos presidenciales de los últimos 7 discursos presidenciales de Apertura de Sesiones Legislativas, alrededor de 1.300 frases provenientes de todos los títulos de chequeos de Chequeado desde 2010 hasta la fecha, y 1.400 frases extraídas de notas de los tres principales medios del país, en su mayoría de las secciones de política y economía, pero considerando también notas más generales de temas variados. En la Figura 4 se puede observar un gráfico con la distribución final de las frases. 7 https://chequeado.com/ultimas-noticias/ 6 https://chequeado.com/ultimas-noticias/milei-el-calentamiento-global-es-una-mentira/ 28 https://chequeado.com/ultimas-noticias/ https://chequeado.com/ultimas-noticias/milei-el-calentamiento-global-es-una-mentira/ Figura 4. Distribución de las frases a etiquetar de acuerdo a su proveniencia. Para el proceso de etiquetado se tuvo en consideración la definición de chequeable explicada al inicio de este Capítulo y se accedió además a una reunión con el equipo de redacción de Chequeado para validar esta definición y profundizar en las utilidades provistas por esta clasificación y las principales diferencias entre los dos tipos de frases. Como las 1.400 frases provenientes de los títulos de los chequeos eran por definición chequeables se mantuvieron al margen del proceso de clasificación, que se aplicó únicamente a la frases provenientes de discursos y notas de medios. Terminado el proceso de etiquetado, el dataset quedó compuesto en un 39% de frases chequeables y un 61% de frases no chequeables aproximadamente. Los valores puntuales se pueden observar en la Figura 5. Figura 5. Distribución de las frases etiquetadas. 29 Extracción de features Una vez construido el dataset es necesario definir qué features o características se extraerán de las frases y se utilizarán como entrada para los algoritmos de clasificación. Como se discute en el Capítulo 2, existen enfoques de distinta complejidad que pueden ajustarse mejor o peor a diferentes problemas. La presencia de trabajos anteriores brinda una base de las features más utilizadas en inglés y sus resultados, pero aún así es necesario encontrar bibliotecas y frameworks que permitan extraer estas features para textos en español y determinar cuáles son las mejores opciones. Para simplificar la explicación se pueden dividir las features en dos grupos: por un lado están las features tradicionales del área de NLP, que incluyen etiquetas de parte del discurso, lemas, bolsas de palabras, n-gramas o entidades. Por otro lado están las representaciones vectoriales generadas a partir de redes neuronales y arquitecturas más complejas como los transformers. Esta distinción puede parecer arbitraria, ya que las mismas tecnologías que se utilizan para generar las representaciones vectoriales pueden utilizarse para extraer muchas de las otras features, pero es útil hacerla en este trabajo ya que la mayoría de las bibliotecas de NLP vienen con soporte para el primer grupo, mientras que las representaciones vectoriales son algo más reciente y pocas bibliotecas traen soporte en su versión base. Bibliotecas de NLP A continuación profundizaremos en las bibliotecas disponibles para la extracción de ambos conjuntos, sus pros y contras y luego profundizaremos en las features en sí y cómo son generadas por las bibliotecas seleccionadas para este trabajo. Para el primer grupo de features las tres bibliotecas más utilizadas son NLTK8, Stanza9 y Spacy10. NLTK es un kit de herramientas de lenguaje natural desarrolladopara profesores e investigadores con el objetivo de poder construir modelos de cero para las tareas más comunes en el área de NLP, como etiquetado de partes del discurso o generación de árboles de dependencia. Está desarrollado en Python y, como ya se explicó, está pensado para apoyar la investigación y la enseñanza de técnicas de procesamiento de lenguaje natural o áreas muy relacionadas, que incluyen la lingüística empírica, las ciencias cognitivas, la inteligencia artificial, la recuperación de información, y el aprendizaje de máquina. Por otra parte Stanza es un módulo de análisis de lenguaje natural desarrollado también en Python, que contiene herramientas que pueden ser utilizadas en un pipeline para realizar las tareas de tokenización, etiquetado de partes del discurso, extracción de features morfológicas, resolución de árboles de dependencias y reconocimiento de entidades. Stanza a diferencia de NLTK, que no provee modelos pre entrenados en español, cuenta con un amplio soporte para español y alcanza muy buenos resultados en las principales tareas de extracción de features. 10 https://spacy.io/ 9 https://stanfordnlp.github.io/stanza/ 8 https://www.nltk.org/ 30 https://spacy.io/ https://stanfordnlp.github.io/stanza/ https://www.nltk.org/ Por último está Spacy. Esta biblioteca provee modelos en español, por ejemplo “es_core_news_lg”, que incluye un pipeline de tokenización, morfologización, parsing, reconocimiento de entidades, etiquetado de parte del discurso, y lematización similar al de Stanza. Esto también distingue a Spacy de NLTK, que solo provee modelos pre entrenados en inglés, mientras que los modelos de español deben entrenarse manualmente, lo que requiere la disponibilidad de datasets de calidad, validación y más tiempo de desarrollo. Los pipelines de Spacy y Stanza obtienen resultados similares para las tareas mencionadas previamente, pero con una diferencia crucial. El pipeline de Spacy optimizado para CPU es 11 veces más rápido que el de Stanza11, ya que puede procesar aproximadamente 10,014 palabras por segundo, contra 878 de Stanza, lo que representa una gran ventaja en esta tarea, ya que la velocidad de procesamiento es relevante considerando la cantidad de noticias, entrevistas y publicaciones que el modelo podría llegar a analizar diariamente. Más aún, esta herramienta podría utilizarse en eventos en vivo, donde cada frase debe ser procesada tan rápido cómo sea posible. Por esta razón Spacy resulta la mejor opción para extraer las features tradicionales de NLP. Es importante destacar que todas las bibliotecas analizadas se encuentran desarrolladas en Python, ya que es el lenguaje más utilizado en el mundo de la Inteligencia Artificial, lo cual nos permite integrar estos modelos fácilmente con otras bibliotecas disponibles para este tipo de tareas, las cuales veremos más adelante. Una biblioteca a mencionar antes de avanzar hacia la extracción de representaciones vectoriales es Freeling. Coómo se menciona al final del Capítulo 2, Freeling es la biblioteca que utilizaba el prototipo de Chequeado, está desarrollada en C++ y provee funcionalidades similares a Spacy y Stanza. La última versión actualizada de Freeling es de 201612 y en la actualidad la falta de soporte, documentación y resultados por debajo del estado del arte hacen de Freeling una opción poco viable para un desarrollo de este tipo. Definida entonces la biblioteca a utilizar para extraer las features “básicas” de las frases, la segunda cuestión a resolver es la biblioteca a utilizar para la extracción de las representaciones vectoriales. Las cuatro más utilizadas en la actualidad son: Doc2Vec [38], InferSent [39], SentenceBERT [40] y Universal Sentence Encoder [41]. De estas cuatro opciones la única que trae soporte para español es la versión multilingual del Universal Sentence Encoder (USE por sus siglas en inglés). Además, Spacy cuenta con una biblioteca13 para integrar el USE a su pipeline automáticamente, lo cuál facilita el desarrollo y permite integrar fácilmente la extracción de ambos conjuntos de features. El USE se ajusta especialmente bien a este problema en particular. Este modelo desarrollado por Tensor Flow codifica frases en vectores de grandes dimensiones y está optimizado para tareas de clasificación de texto, semejanza de frases, clustering y otras tareas de lenguaje natural. El modelo está entrenado y optimizado para frases o párrafos cortos y busca acomodarse dinámicamente a un número variado de tareas de procesamiento del lenguaje natural, utilizando una red neuronal convolucional. La versión multilenguaje está 13 https://spacy.io/universe/project/spacy-universal-sentence-encoder 12 http://nlp.lsi.upc.edu/freeling/index.php/node/27 11 https://spacy.io/usage/facts-figures#benchmarks 31 https://spacy.io/universe/project/spacy-universal-sentence-encoder http://nlp.lsi.upc.edu/freeling/index.php/node/27 https://spacy.io/usage/facts-figures#benchmarks entrenada en 16 idiomas. El resultado de procesar entonces una frase con este modelo es un vector de 512 dimensiones, y con esto se busca replicar los resultados alcanzados por FullFact utilizando InferSent pero en español. La sección de Transformers en el Capítulo 2 profundiza sobre este tema e introduce los principales conceptos para entender cómo funciona esta tecnología. Las features tradicionales A continuación se encuentra un resumen de las features introducidas en el Capítulo 2 y el formato en el que Spacy genera los resultados para cada una. Token El primer proceso que aplica el modelo de Spacy es la tokenización. Esto significa tomar las frases y separarlas en componentes básicos referidos como tokens, que son la unidad mínima de una frase. La tokenización es una tarea relativamente trivial que suele resolverse separando las palabras de acuerdo a los espacios en blanco, aunque para algunos casos límite deben aplicarse reglas específicas para tratar con la puntuación. Utilizar los tokens como entrada a los modelos de clasificación significa perder el orden o relación entre ellos, algo que se busca suplir con la utilización de n-gramas. Lema El lema es la forma que por convención se acepta como representante de todas las formas flexionadas de una misma palabra. Spacy extrae para cada token perteneciente a una frase un lema. Por ejemplo para la frase “La inflación ha bajado un 50%”, Spacy genera los siguientes lemas: ‘el', 'inflación', 'haber', 'bajar', 'uno', '50%'. Además de tener las palabras de cada frase como features, agregar los lemas puede servir para detectar aquellas características que son independientes de los modificadores que alteran las palabras para ajustarse a un tiempo verbal o a un determinado sujeto, y establecer relaciones entre las raíces de las palabras. Entidades Utilizando la herramienta de Reconocimiento de Nombres de Entidades de Spacy se pueden extraer las entidades presentes en cada frase y también las categorías de entidades detectadas. En este caso las cuatro categorías en las que Spacy agrupa a las entidades son locaciones (LOC), organizaciones (ORG), personas (PER) y misceláneo (MISC). Por ejemplo en la frase “El presidente de Estados Unidos Joe Biden participó en un evento en Washington DC” podemos extraer las entidades “Estados Unidos” (locación), “Joe Biden” (persona) y “Washington DC” (locación). Esta información puede ayudar al modelo a reconocer cómo influyen estas entidades en la clasificación de una frase, sí es que lo hacen. 32 Morfología Spacy analiza para cada palabra sus features morfológicas, es decir, aquellas que modifican o se combinan con el lema, o forma raíz, de una palabra para obtener la forma final. Estas features pueden referir a tiempos verbales, personas gramaticales (primera, segunda, tercera), géneros gramaticales (masculino, femenino, neutro), conjugaciones, entre otras. Separar la morfología y el lema de una palabra permite abstraer la parte “accidental” de las palabras, el tiempo verbal, género, etc., de la esencia semántica de la palabra. Dígitos Enla búsqueda por generalizar la información presentada por las frases etiquetadas se reemplazaron las cifras y números por una representación de su forma o estructura que es independiente del número particular que representan. Por ejemplo, 15,56% se convirtió a dd,dd%, donde cada d representa un dígito y la puntuación se conserva en su estado original. Este proceso se realiza para todos aquellos tokens, palabras, que contengan al menos una cifra. N-gramas de etiquetas de parte del discurso Las etiquetas de parte del discurso (POS) sirven para agrupar las palabras en distintas categorías de acuerdo a las características gramaticales que comparten. Las etiquetas consideradas para este trabajo son: adjetivos (ADJ), adposición (ADP), adverbio (ADV), verbo auxiliar (AUX), conjunción (CONJ), determinante (DET), interjección (INTJ), sustantivo (NOUN), numeral (NUM), pronombre (PRON), nombre propio (PROPN), puntuación (PUNCT), símbolo (SYM) y verbo (VERB). Aunque por sí solas estas etiquetas ya aportan información relevante para este problema, se descubrió que la utilización de n-gramas, en este caso de tamaño tres permite extraer algunas estructuras independientes de las palabras particulares que otorgan información relevante para intentar comprender qué características definen una frase chequeable. Representaciones vectoriales Como se explicó en el Capítulo 2, las representaciones vectoriales (o sentence embeddings) se refieren a un intento de mapear, a través de un conjunto de técnicas dentro del ámbito de procesamiento de lenguaje natural, frases a vectores de números reales. El modelo a utilizar, Universal Sentence Encoder, genera representaciones vectoriales de 512 dimensiones para cada frase. El valor de cada una de estas dimensiones es ingresado cómo feature al modelo. Este enfoque presenta algunas diferencias clave con las features anteriores: 1. La utilización de transformers permite al modelo considerar la relación entre todas las palabras de la frase, algo que los n-gramas intentan replicar pero de manera mucho más simplista y reducida. Este contexto puede aportar mucha información respecto a 33 la naturaleza de la frase. Por ejemplo, no es lo mismo decir “pudimos seguir por este camino y vamos a bajar la inflación” que “pudimos bajar la inflación y vamos a seguir por este camino”. La primera frase no es chequeable ya que es una promesa, mientras que la segunda lo es, ya que declara un hecho comprobable, que es si efectivamente bajó la inflación. Aunque para las features tradicionales estas frases son casi iguales, ya que contienen exactamente las mismas palabras, lo cual genera las mismas etiquetas, lemas, entidades y demás, salvo algunas diferencias menores en los n-gramas, para el USE, estas dos frases generan representaciones vectoriales diferentes, que a pesar de que pueden encontrarse cerca en el espacio 512-dimensional, no son lo mismo. 2. Otra diferencia importante es que al ser multilingual, el modelo de encoding termina obligatoriamente separándose de las palabras puntuales y debe establecer relaciones del tipo semántico, donde muchas palabras diferentes representan un mismo concepto. Esto, en teoría, permite obtener resultados de mayor nivel y reduce el overfitting. Las features anteriores por otra parte tienen el problema de ser muy dependientes del lenguaje y la introducción de palabras nunca antes vistas puede generar potenciales problemas. Vectorización Con la definición de las herramientas y procesos a realizar para la extracción de features terminada, es momento de definir qué formato deben tener estas features para ser utilizadas como datos de entrenamiento para los modelos. La principal técnica utilizada para esto es la vectorización. Este proceso se encarga de transformar en representaciones vectoriales de números escalares las features extraídas. De acuerdo a la estructura en que se encuentre alojada cada feature se requiere de un proceso diferente. Para los diccionarios de features que incluyen valores categóricos (como las palabras, lemas, etiquetas del discurso o entidades) se realiza un one-hot encoding, donde los valores categóricos almacenados como claves de los diccionarios se representan cada uno en una columna del vector, y se utiliza un uno para representar que esa feature está presente en la frase analizada y un cero en el caso contrario. Este proceso tiene la desventaja de crear arreglos de gran extensión cuando existe un dominio amplio de features, por lo que luego se puede aplicar un proceso de selección de features para quedarse únicamente con las más relevantes para el problema y reducir el ruido. Los vectores de embeddings por otro lado no necesitan transformación ya que son por naturaleza representaciones vectoriales y se utilizan directamente como entrada de los algoritmos de clasificación. Para poder combinar features de distinta naturaleza se utiliza una función provista por la biblioteca scikit-learn llamada FeatureUnion. Esta función permite unir distintos pipelines, es decir secuencias de extractores de features, vectorizadores y selectores, y combinarlos para utilizarlos como entrada de los algoritmos de clasificación. 34 Esta estructura nos permite además activar y desactivar conjuntos de features para así analizar distintas combinaciones y determinar cuáles permiten obtener los mejores resultados. Pipeline En este punto se debe definir cómo se integrarán los distintos conjuntos de features con el proceso de vectorización, y los algoritmos de clasificación. La intención de este trabajo es evaluar diferentes conjuntos de features con distintos algoritmos y determinar qué conjuntos favorecen a qué algoritmos y encontrar la mejor combinación. Para esto se propone construir un pipeline que permita intercambiar distintos extractores de features con algoritmos de selección de features y clasificación, y luego evaluar las diferentes combinaciones posibles hasta encontrar la que mejor se adapte a este problema. Se definen entonces tres conjuntos de features a probar: 1. Features tradicionales: este conjunto incluye tokens, lemas, entidades, morfología y n-gramas. Se asemeja y expande sobre la propuesta inicial de Chequeado y ClaimBuster, pero utilizando una librería mucho más rápida y algunas características extra cómo morfología y n-gramas. 2. Representaciones vectoriales: sugerido por FullFact en su trabajo, se utiliza una adaptación al español facilitada por el Universal Sentence Encoder. 3. Combinado: se evalúan finalmente los dos conjuntos anteriores de manera combinada para establecer si esto genera una ventaja. La Figura 7 presenta una representación simplificada de lo que sería un pipeline de procesamiento de lenguaje natural, en este caso con módulos que serán intercambiados para instanciar diferentes pipelines y poder compararlos. 35 Figura 7. Representación simplificada de un pipeline genérico de procesamiento de lenguaje natural. Algoritmos de clasificación Cuatro algoritmos se proponen para utilizar con los tres conjuntos de features: Naive Bayes, Random Forest, SVM y regresión logística. Los primeros tres fueron utilizados tanto en el proceso de ClaimBuster como en el de FullFact, y se agrega el de regresión logística para analizar cómo trabaja en conjunto con las representaciones vectoriales, una disposición que parece adaptarse bien debido a la naturaleza del algoritmo. La versión de Naive Bayes que suele utilizarse es Naive Bayes Multinomial. El clasificador Naive Bayes Multinomial suele mejorar el desempeño respecto al clásico dado que considera el número de apariciones del término para evaluar la contribución de la probabilidad condicional dada la clase, por lo que el modelado de cada documento se ajusta mejor a la clase a la que pertenece. 36 Para cada modelo se realizó una pequeña evaluación preliminar para ajustar sus hiper-parámetros. Considerando que el cómputo de las distintas combinaciones puede ser un proceso costoso y, además, las combinaciones pueden llegar a ser numerosas, esta evaluación
Compartir