Logo Studenta

Deteccion automatica de frases verificables

¡Este material tiene más páginas!

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

Continuar navegando