Full text
Reconocimiento de Entidades Nombradas en Textos Legales en Espa˜nol Recognition of Named Entities in Spanish Legal Texts TRABAJO FIN DE GRADO GRADO EN INGENIER´ IA INFORM ´ ATICA CURSO 2022–2023 ´ Alvaro L´opez Olmos ZhenBo Chen Directores Luis Javier Garc´ıa Villalba Luis Alberto Mart´ınez Hern´andez Departamento de Ingenier´ıa del Software e Inteligencia Artificial Facultad de Inform´atica Universidad Complutense de Madrid Madrid, Junio de 2023
Agradecimientos Queremos expresar nuestro m´as sincero agradecimiento a todas las personas que contribuyeron en el trabajo de fin de grado. En primer lugar, nos gustar´ıa agradecer a nuestros directores de TFG Luis Javier Garc´ıa Villalba y Luis Alberto Mart´ınez Hern´andez, por su gu´ıa y apoyo incondicional a lo largo de todo el proceso de investigaci´on. Tambi´en queremos agradecer a Robson de Oliveira Albuquerque, Ana Lucila Sandoval Orozco, Daniel Povedano ´ Alvarez y Sandra P´erez Arteaga por sus valiosas contribuciones en diferentes etapas del proyecto. Su colaboraci´on fue crucial para el desarrollo del trabajo y el logro de los resultados esperados. Adem´as, nos gustar´ıa expresar nuestro agradecimiento a todos nuestros profesores, compa˜neros y familiares que nos dieron su apoyo y motivaci´on durante el recorrido del proyecto. Sus comentarios, sugerencias y cr´ıticas constructivas nos permitieron mejorar constantemente nuestro trabajo y alcanzar los objetivos propuestos. Sin el apoyo y la colaboraci´on de todas estas personas, nuestro proyecto de fin de grado no habr´ıa sido posible. iii
´ Indice General ´ Indice de Figuras IX ´ Indice de Tablas XI Lista de Acr´ onimos XV Abstract XIX Resumen XXI 1. Introducci´ on 1 1.1. Motivaci´on .................................... 1 1.2. Contexto ..................................... 2 1.3. Objeto de la Investigaci´on ............................ 2 1.4. Plan de Trabajo ................................. 3 1.5. Estructura del Trabajo .............................. 4 2. Contexto de la Investigaci´ on 5 2.1. Procesamiento del Lenguaje Natural ...................... 5 2.2. Conceptos espec´ıficos ............................... 6 2.3. Historia de los Procesadores del Lenguaje Natural .............. 7 2.4. Arquitectura Transformer ............................ 8 2.4.1. Embeddings ................................ 9 2.4.2. Vector Posicional ............................. 9 2.4.3. Mecanismo de atenci´on ......................... 10 v
vi ´ INDICE GENERAL 2.4.4. Codificador ................................ 10 2.4.5. Decodificador ............................... 11 2.5. Modelos de Lenguaje Preentrenados ...................... 12 2.5.1. BERT ................................... 12 2.5.2. RoBERTa ................................. 15 2.5.3. ALBERT ................................. 15 2.5.4. DistilBERT ................................ 16 2.5.5. SpanBERT ................................ 17 3. Estado del Arte 19 3.1. Scraping ...................................... 19 3.2. Modelos de Procesamiento de Lenguaje Natural ................ 20 4. Metodologia del Proyecto 25 4.1. Recolecci´on de los datos ............................. 26 4.1.1. Web Scraping ............................... 26 4.1.2. PDF Scraping .............................. 26 4.2. Datos de entrada ................................. 27 4.3. Pre-Procesamiento ................................ 27 4.3.1. Preparaci´on del etiquetado ....................... 27 4.3.2. Preparaci´on de los archivos de entrenamiento ............. 28 4.4. Entrenamiento del modelo ............................ 30 4.5. Librer´ıas Utilizadas ................................ 30 5. Experimentos y Resultados 33 5.1. Descripci´on del corpus .............................. 33 5.2. Pre-Procesamiento ................................ 34 5.3. Entrenamiento .................................. 35 5.3.1. RoBERTa Base BNE ........................... 36 5.3.2. XLM RoBERTa Base .......................... 37 5.4. Evaluaci´on .................................... 37
´ INDICE GENERAL vii 5.4.1. Precisi´on ................................. 38 5.4.2. Recall ................................... 38 5.4.3. F-score .................................. 38 5.4.4. Matriz de confusi´on ........................... 39 5.5. Ejemplo salida del modelo ............................ 39 6. Contribuciones 43 6.1. ZhenBo Chen ................................... 43 6.2. ´ Alvaro L´opez Olmos ............................... 44 7. Conclusiones y Trabajo Futuro 47 7.1. Conclusiones ................................... 47 7.2. Trabajo Futuro .................................. 47 8. Introduction 49 8.1. Motivation .................................... 49 8.2. Context ...................................... 50 8.3. Object of the Investigation ........................... 50 8.4. Workplan ..................................... 51 8.5. Struture of the Work ............................... 52 9. Conclusions and Future Work 53 9.1. Conclusions .................................... 53 9.2. Future Work ................................... 53 Bibliograf´ ıa 55
´ Indice de Figuras 1.1. Diagrama de Gantt del proyecto ........................ 4 2.1. Arquitectura transformers [VSP+17] ...................... 8 2.2. Ejemplo espacio Embedding ........................... 9 2.3. Estructura del codificador ............................ 11 2.4. Estructura del decodificador ........................... 11 2.5. Entrada Bert [DCLT19] ............................. 13 2.6. Arquitectura Bert [DCLT19] ........................... 13 2.7. Ejemplo usos de BERT - Clasificaci´on [DCLT19] ............... 14 2.8. Ejemplo usos de BERT - Pregunta Respuesta y NER [DCLT19] ....... 14 2.9. Una ilustraci´on del entrenamiento SpanBERT [JCL+20] ........... 17 4.1. Pipeline ...................................... 25 4.2. Ejemplo de Reconocimiento de Entidades ................... 25 4.3. N´umero de apariciones por etiqueta ...................... 29 5.1. Debug ....................................... 36 5.2. Matriz de confusi´on de Legal-GASS ...................... 39 5.3. Matriz de confusi´on de Legal-GASS-lite .................... 40 5.4. Salida de la predicci´on .............................. 41 ix
xvi Lista de Acr´ onimos LOPD Ley Organica de Protecci´on de Datos LSTM Long Short Term Memory ML Machine Learning MLM Modelado del Lenguaje Enmascarado NER Name Entity Recognition NLP Natural Language Proccessing NSP Predicci´on de la Frase Siguiente RACE ReAding Comprehension from Examinations RNN Recurrent Neural Networks RoBERTa Robustly Optimized BERT Pretraining Approach SBO span-boundary objective SOP Sentence Order Prediction SpanBERT BERT for Span-based Extractive Question AnsweringT SQuAD Stanford Question Answering Dataset TA Traducci´on Autom´atica TFG Trabajo de Final de Grado TSV Tab Separated Values XML Extensible Markup Language
Abstract In this work, an exhaustive investigation of the use of language models for named entity recognition in Spanish texts and of the techniques for collecting, extracting information and retraining the models is carried out. The main objective of this work is to develop a model based on RoBERTa, using a balanced dataset that guarantees the robustness and reliability of the model. In the study, emphasis is placed on the field of natural language processing, taking advantage of advances in machine learning to improve the recognition of named entities in legal texts in Spanish. The performance of RoBERTa is evaluated and compared with other language models, such as BERT and ALBERT, in order to choose the most appropriate model for the analysis of Spanish texts. For the selection of the dataset, a wide variety of Spanish legal texts are collected, covering different areas and to which different preprocessing techniques are applied. The results obtained after retraining reflect a good performance of the RoBERTa model in entity recognition in Spanish legal texts. Evaluation metrics are presented that demonstrate its efficiency and accuracy in the identification of the mentioned entities. Keywords: Information Collection and Extraction, Named Entity Recognition, Natural Language Processing. xix
Resumen En el presente trabajo se lleva a cabo una exhaustiva investigaci´on del uso de modelos de lenguaje para el reconocimiento de entidades nombradas en textos en espa˜nol y de las t´ecnicas de recopilaci´on, extracci´on de informaci´on y reentrenamiento de los modelos. El objetivo principal de este trabajo consiste en desarrollar un modelo basado en RoBERTa, utilizando un conjunto de datos balanceado que garantice la solidez y fiabilidad del mismo. En el estudio, se hace ´enfasis en el campo del procesamiento del lenguaje natural, aprovechando los avances en aprendizaje autom´atico para mejorar el reconocimiento de entidades nombradas en textos legales en espa˜nol. Se eval´ua y compara el rendimiento de RoBERTa con otros modelos de lenguaje, tales como BERT y ALBERT, para elegir el modelo m´as apropiado para el an´alisis de textos en espa˜nol. Para la selecci´on del conjunto de datos, se recolecta una amplia variedad de textos legales en espa˜nol, cubriendo distintas ´areas y a los que se aplican diferentes t´ecnicas de preprocesamiento. Los resultados obtenidos tras el reentrenamiento reflejan un buen desempe˜no del modelo RoBERTa en el reconocimiento de entidades en textos legales en espa˜nol. Se presentan m´etricas de evaluaci´on que demuestran su eficacia y precisi´on en la identificaci´on de entidades mencionadas. Palabras clave: Procesamiento del Lenguaje Natural, Reconocimiento de Entidades, Recopilaci´on y Extracci´on de informaci´on. xxi
Cap´ıtulo 1 Introducci´on 1.1. Motivaci´on Los numerosos avances cient´ıficos de los ´ultimos a˜nos han dado lugar a un aumento exponencial de la tecnolog´ıa. Gracias a Internet, se ha hecho posible acceder a grandes cantidades de datos, concretamente en forma de texto escrito en diferentes idiomas, lo que resulta muy ´util para el aprendizaje humano o artificial, concretamente para el Procesamiento del Lenguaje Natural (NLP). Tras la aparici´on de la primera arquitectura de NLP moderna, Word2Vec [MSC+13] en 2013, se produjo un r´apido desarrollo de esta tecnolog´ıa, con varios avances, como los Recurrent Neural Networks (RNN) y los Long Short Term Memory (LSTM) que son una modificaci´on de los anteriores. Entre los a˜nos 2015 y 2016 se popularizaron las redes basadas en atenci´on, que permiten al dise˜nador que especifique en que tipo de datos quiere que se centre el sistema, a cuales presta atenci´on. De entre estos, uno de los que mas destaca son los Transformer, introducidos en 2017 y que actualmente copa el paradigma del procesamiento del lenguaje. En la actualidad predominan modelos como Bidirectional Encoder Representations from Transformers (BERT) [DCLT19], presentado en 2018, y sus especializaciones y optimizaciones, como Robustly Optimized BERT Pretraining Approach (RoBERTa) [LOG+19], 2019. Al ser ambos modelos tan actuales, todav´ıa no se han realizado entrenamientos para todos los lenguajes, ni para todos los ´ambitos de posible especializaci´on, por ello se propone en este trabajo, la creaci´on y presentaci´on de tanto un pipeline, como de un modelo entrenado espec´ıficamente para el ´ambito legal en espa˜nol. Tambi´en cabe citar otros modelos derivados de BERT tales como A Lite BERT (ALBERT) [LCG+20], Distilled BERT (DistilBERT) [SDCW20] y BERT for Span-based Extractive Question AnsweringT (SpanBERT) [JCL+20]. 1
2Cap´ ıtulo 1. Introducci´ on 1.2. Contexto El presente Trabajo Fin de Grado se enmarca dentro de un proyecto de investigaci´on titulado Novel Strategies to Fight Child Sexual Exploitation and Human Trafficking Crimes and Protect their Victims – HEROES, aprobado por la Comisi´on Europea dentro del Programa Marco Horizonte 2020 (convocatoria H2020-SU-SEC-2020) en virtud del acuerdo de subvenci´on n´umero 101021801 y en el que participa como coordinador del proyecto el Grupo GASS de la Universidad Complutense de Madrid (Grupo de An´alisis, Seguridad y Sistemas, https://gass.ucm.es, grupo 910623 del cat´alogo de grupos de investigaci´on reconocidos por la UCM). Adem´as de la Universidad Complutense de Madrid participan en HEROES 21 entidades ubicadas en 17 pa´ıses: 11 de pa´ıses de la UE (Austria, B´elgica, Bulgaria, Francia, Grecia, Irlanda, Letonia, Lituania, Portugal, Espa˜na, Reino Unido), 1 pa´ıs asociado (Suiza) y 5 terceros pa´ıses (Bangladesh, Brasil, Colombia, Per´u, Uruguay). Dichas entidades son: University of Kent (Reino Unido), The Free University of Brussels (B´elgica), The French National Research Institute for Digital Science and Technology – INRIA (Francia), Center for Security Studies – KEMEA (Grecia), International Centre for Migration Policy Development – ICMPD (Austria), International Center for Missing and Exploited Children – ICMEC (Suiza), IDENER Research Development Agrupaci´on de Inter´es Econ´omico (Espa˜na), Athena Research Center – ARC (Grecia), Trilateral Research and Consulting (Reino Unido), Centre for Women and Children Studies – CWCS (Bangladesh), Center Against Human Trafficking and Exploitation – KOPZI (Lituania), Portuguese Association for Victim Support – APAV (Portugal), Fundaci´on Renacer (Colombia), The Greek Council for Refugees – GCR (Grecia), Brazilian Association for the Defense of Children of Children and Youth – ASBRAD (Brasil), Hellenic Police (Grecia), Latvia National Police (Letonia), General Directorate for the Fight against Organized Crime (Bulgaria), Direcci´on General de la Polic´ıa – DGP (Espa˜na), Federal Police (Brasil), Federal Highway Police (Brasil), Secretar´ıa de Inteligencia Estrat´egica de Estado – Presidencia de la Rep´ublica Oriental del Uruguay (Uruguay). Tienen m´as informaci´on en: https://cordis.europa.eu/project/id/101021801 https://heroes-fct.eu 1.3. Objeto de la Investigaci´on El objetivo de este proyecto es el dise˜no e implementaci´on de un modelo de NLP capaz de reconocer entidades nombradas en idioma espa˜nol en un texto con una orientaci´on a procesos legales. Con este modelo se pretende automatizar el proceso que realiza un
1.4. Plan de Trabajo 3 investigador al realizar una an´alisis de los archivos contenidos en un dispositivo incautado en idioma espa˜nol. Por lo anterior es necesario realizar una an´alisis de los diferentes algoritmos de procesamiento de NLP que permitan un procesamiento ´agil y la identificaci´on precisa del contexto de la frase analizada y realizar el reconocimiento de entidades. Adem´as, este estudio trata de comprender el proceso de extracci´on de entidades nombradas, analizar su estructura e identificar los principales retos a los que se enfrentan los ingenieros inform´aticos a la hora de crear estos modelos. Este trabajo propone un modelo que permita reducir el tiempo empleado por parte de los investigadores para el an´alisis de archivos en espa˜nol contenidos en dispositivos incautados en un proceso judicial. 1.4. Plan de Trabajo El desarrollo de este proyecto esta estructurado en tres etapas (ver Figura 1.1): 1. Investigaci´ on del Estado del Arte: Esta etapa se centra en la investigaci´on de los trabajos y proyectos punteros relevantes para este trabajo, tanto as´ı como la adquisici´on de los conocimientos necesarios para la realizaci´on de este trabajo. Una vez acordado el Trabajo de Final de Grado (TFG), se realizo una reuni´on introductoria para explicar la finalidad y los puntos a llevar a cabo a lo largo de este proceso. Esta reuni´on fue seguida de reuniones semanales para con el fin de realizar un seguimiento del proyecto y para resolver las dudas que surgieran. En estas reuniones tambi´en se explicaron las correctas formas de buscar documentaci´on acad´emica, los formatos requeridos y las herramientas usadas, siendo una de ellas Google Scholar, que se decidi´o que seria la usada para este proyecto. Como los integrantes del equipo no dispon´ıan de todos lo conocimientos necesarios relacionados con las Inteligencias Artificiales, se realizaron varios cursos para obtener dichos conocimientos. Finalmente, una vez adquiridos los conocimientos base y estudiado los temas centrales del proyecto basados en los objetivos del mismo, el equipo comenz´o con el desarrollo de modelo. 2. Desarrollo: Una vez obtenida la informaci´on necesaria, se empez´o a trabajar en el desarrollo del modelo, pero sin dejar de lado la investigaci´on de soluciones ´optimas. Por ello, en esta fase se examin´o el lenguaje de programaci´on Python y conceptos avanzados de bibliotecas como Spacy yTorch. Adem´as, los textos recogidos de las fuentes proporcionadas por las obras le´ıdas durante la fase anterior se etiquetaron con entidades para proporcionar los conjuntos de entrenamiento del modelo. Tambi´en se realizo el despliegue del entorno donde se realizar´ıan tanto los entrenamientos, como las evaluaciones del modelo.
10 Cap´ ıtulo 2. Contexto de la Investigaci´ on 2.4.3. Mecanismo de atenci´on Sabiendo esto, lo primero es entender el mecanismo de atenci´on en el que se basa esta tecnolog´ıa, formado por un diccionario tipo hashmap. La finalidad es encontrar la similitud entre dos Embeddings. Esto se realiza mediante la Funci´on 2.1. Z=Softmax(QKT √dk )V(2.1) Siendo Qla matriz que contiene el Embedding de los Tokens que se est´a evaluando, la matriz Kcontiene los Tokens como las claves del diccionario y la matriz Vque contiene el Embedding de salida. La funci´on Softmax() convierte los valores de atenci´on en valores del rango [0-1] para as´ı poder entenderlos como porcentajes referentes a la atenci´on o relaci´on que se presenta entre dos Tokens (ver Tabla 2.1). Conociendo esto, ya es posible continuar con la exploraci´on de los distintos componentes. Tabla 2.1: Ejemplo atenci´on - El abuelo dorm´ıa en la habitaci´on tranquilamente El 0.5 0 0 0 0 0 0 abuelo 0 0.5 0.8 0 0 0.4 0.8 dorm´ıa 0 0.8 0.5 0 0 0 0 en 0 0 0 0.5 0 0 0 la 0 0 0 0 0.5 0 0 habitaci´on 0 0.4 0 0 0 0.5 0 tranquilamente 0 0.8 0 0 0 0 0.5 2.4.4. Codificador Cada codificador se construye por una capa de self-attention y una red neuronal feed-forward, a la salida generada por ambos elementos se le aplica un proceso de Add & Norm antes de ser entregada al elemento siguiente. La Figura 2.3 muestra esta estructura. En este apartado se explica la finalidad y el m´etodo de uso de los distintos componentes anteriormente mencionados. Self-attention: En esta capa se produce una comparaci´on de cada uno de los Tokens con el resto de los Tokens de la misma frase, mediante el uso de la Funci´on 2.1, siendo los valores de las matrices los elementos de la misma frase. Red neuronal feed-forward: Es un tipo de red neuronal que consta de nentradas ynsalidas, en la que la informaci´on fluye en un ´unico sentido, desde la entrada hasta la salida sin la existencia de bucles ni regresiones.
2.4. Arquitectura Transformer 11 Add &Norm: Es la uni´on de dos tareas, la primera, es una conexi´on residual que une la entrada de cada capa con la salida de la misma, esto nos permite mantener los pesos a lo largo del tiempo de ejecuci´on. Dicha metodolog´ıa fue ampliamente explotada en las redes ResNet [HZRS15]. Y la segunda es una tarea de normalizaci´on de capa [BKH16], que se asegura de que no se produzcan cambios muy bruscos sobre los datos al pasar de una capa a otra y as´ı acelerar el entrenamiento del modelo y con un mayor nivel de generalizaci´on. Figura 2.3: Estructura del codificador 2.4.5. Decodificador Ahora se continua con la estructura de decodificador, que como se observa en la Figura 2.4, es muy similar a la del codificador (Figura 2.3). Figura 2.4: Estructura del decodificador
12 Cap´ ıtulo 2. Contexto de la Investigaci´ on Las ´unicas diferencias son la aparici´on de una nueva capa de atenci´on, en este caso de atenci´on enmascarada, y otra de Add &Norm. La atenci´on enmascarada no es mas que el mecanismo de atenci´on anteriormente mencionado, pero ocultando la parte superior derecha, con esto se evita que el modelo conozca el valor de ciertas atenciones antes de llegar a ellas, ya que en el decodificador se generan en orden de aparici´on, al ocurrir esto y como se muestra en la Tabla 2.2, no puede conocer la atenci´on de “abuelo-tranquilamente”, ya que esta a´un no se ha generado. Tabla 2.2: Ejemplo atenci´on enmascarada - El abuelo dorm´ıa en la habitaci´on tranquilamente El 0.5 - - - - - - abuelo 0 0.5 - - - - - dorm´ıa 0 0.8 0.5 - - - - en 0 0 0 0.5 - - - la 0 0 0 0 0.5 - - habitaci´on 0 0.4 0 0 0 0.5 - tranquilamente 0 0.8 0 0 0 0 0.5 La salida del codificador esta conectada al decodificador mediante la capa segunda capa de atenci´on del mismo, donde se vuelven a realizar las funciones sobres las matrices Q,K, V, solo que en este caso Q,Kson las salidas del codificador y Ves lo que se recibe del mecanismo de atenci´on enmascarada. En el caso de realizar el entrenamiento para la tarea de TA el modelo recibir´ıa “El abuelo dorm´ıa” y “Grandpa was sleeping”, mientras que en el momento de realizar la tarea el modelo recibir´a solamente “El abuelo dorm´ıa” y tras pasar por ncodificadores yndecodificadores seria capaz de generar la salida “Grandpa was sleeping” de forma aut´onoma. Los ncodificadores y ndecodificadores presentan el mismo uso que las capas de las ampliamente conocidas RNN. 2.5. Modelos de Lenguaje Preentrenados En esta secci´on se presentan los modelos BERT,RoBERTa,ALBERT,DistilBERT y SpanBERT. La Tabla 2.3 presenta un resumen de las caracter´ısticas m´as representativas de estos modelos. 2.5.1. BERT La Representaci´on de Codificador Bidireccional de Transformadores (BERT del ingl´es Bidirectional Encoder Representations from Transformers), presentado por primera vez en [DCLT19], es una metodolog´ıa basada en la arquitectura Transformer para la
2.5. Modelos de Lenguaje Preentrenados 13 Tabla 2.3: Resumen de modelos NLP pre-entrenados Modelo #Par´ ametros Layer/Hidden/Heads M´ etodo BERT [DCLT19] Base:110M 12/768/12 Transformador bidireccional MLM, NSP BERT [DCLT19] Large:340M 24/1024/16 Transformador bidireccional MLM, NSP RoBERTa [LOG+19] Base:123M 12/768/12 BERT sin NSP usando enmascaramiento din´amico RoBERTa [LOG+19] Large:355M 24/1024/16 BERT sin NSP usando enmascaramiento din´amico ALBERT [LCG+20] Base:11M 12/768/12 BERT con par´ametros reducidos, SOP (no NSP) ALBERT [LCG+20] Large:17M 24/1024/16 BERT con par´ametros reducidos, SOP (no NSP) DistilBERT [SDCW20] 66M 6/768/12 Transformers, destilaci´on de BERT SpanBERT [JCL+20] Base:110M 12/768/12 Transformers, Aprendizaje supervisado SpanBERT [JCL+20] Large:340M 24/1024/16 Transformers, Aprendizaje supervisado MLM: M´ascara de Lenguaje, NSP: Predicci´on de la siguiente oraci´on, SOP: Predicci´on de oraciones representaci´on del lenguaje [VSP+17]. Para este modelo se utiliza la representaci´on vectorial de las palabras junto con el vector de posici´on, como se muestra en la Figura 2.5, pero modifica dicha arquitectura y solo se utilizan los codificadores. Figura 2.5: Entrada Bert [DCLT19] Este mismo presenta dos estructuras, con diferencias m´ınimas, dependiendo de si el proyecto se encuentra en la fase de pre-entrenar el modelo o de realizar el fine-tuning del mismo (ver Figura 2.6). Figura 2.6: Arquitectura Bert [DCLT19] Dentro de la fase de pre-entrenamiento, se pueden distinguir dos tareas distintas, Modelado del Lenguaje Enmascarado (MLM), del ingl´es Masked Language Modeling y Predicci´on
14 Cap´ ıtulo 2. Contexto de la Investigaci´ on de la Frase Siguiente (NSP), del ingl´es Next Sentence Prediction. MLM: para esta tarea, durante la fase de pre-procesamiento, se enmascaran el 15 % de los tokens de una frase de forma aleatoria y se intenta predecir el valor de ese token, dentro de ese 15 % de tokens enmascarados no siempre se enmascara, el 80 % realmente se enmascara, el 10 % se le asigna el valor de otro token aleatorio, y el ´ultimo 10 % se deja con el valor original. NSP: se entrena el modelo para que dadas dos frases, A y B, este sea capaz de detectar si la frase B es la siguiente a la frase A. Para conseguir esto, el 50 % de las veces se marca la frase B como isNext y el otro 50 % como NotNext. Esto es extremadamente ´util para la tarea de respuesta a preguntas. En la fase de fine-tuning, la idea es reentrenar el modelo con nuevos datos para el uso especifico que se quiere dar al modelo (v´ease en las Figuras 2.7,2.8), bas´andose en los pesos ya conocidos por el mismo. Al realizarse sobre estos pesos ya conocidos, esta tarea se realiza con m´ınimo coste en recursos. (a) Tarea de Clasificaci´on de Pares de Frases: MNLI, QQP, STS-B, MRPC, RTE, SWAG. (b) Tareas de Clasificaci´on de Frases Individuales: SST-2, CoLA Figura 2.7: Ejemplo usos de BERT - Clasificaci´on [DCLT19] (a) Tarea de Respuesta a Preguntas SQuAd V1.1 (b) Tarea de Etiquetado de Frases Individuales: CoNLL-2003 NER Figura 2.8: Ejemplo usos de BERT - Pregunta Respuesta y NER [DCLT19]
2.5. Modelos de Lenguaje Preentrenados 15 2.5.2. RoBERTa RoBERTa, presentado en [LOG+19] y es una optimizaci´on de BERT [DCLT19] implementada en Pytorch [PGM+19] que se centra en la tarea del MLM, en la que se modifican tanto algunos par´ametros clave y el corpus de entrenamiento como algunos m´etodos del propio entrenamiento. Entre los cambios concretos, se produce una sustituci´on del m´etodo de enmascarado est´atico usado en BERT, por un enmascarado din´amico, que consiste en duplicar la frase 10 veces y entregarla en cada ´epoca cambiando el token enmascarado. Con esto se consigue que el modelo vea distintas versiones de la misma frase, cosa que mejora la precisi´on. Tambi´en se elimina el objetivo de NSP que provocaba una perdida de rendimiento y precisi´on al realizar tareas de downstream, en el articulo [LOG+19] se propone la hip´otesis de que esto se debe a la incapacidad del modelo de aprender relaciones situadas a una gran distancia. Esta perdida se consigui´o reducir agrupando frases contiguas, que pueden no proceder de un mismo documento. Otro de los cambios realizados en el entrenamiento es el aumento del tama˜no de los mini-batches y del Byte-Pair Encoding (BPE) [SHB16] a nivel de byte. Esto, sumado al aumento de iteraciones y del tama˜no del corpus de entrenamiento, entre lo que se encuentra el uso de los conjuntos “BOOKCORPUS” [ZKZ+15] y “CC-NEWS”, este ´ultimo recolectado por ellos, junto con otros que no se pudieron publicar, esto se traduce en un aumento de la precisi´on del modelo, que se refleja al ejecutar la evaluaci´on sobre los benchmarks.RoBERTa consigui´o una puntuaci´on de 88.5 de media sobre todas las tareas propuestas por GLUE [WSM+19],lo que lo sit´ua como el mejor modelo seg´un este benchmark. Tambi´en se realizaron evaluaciones sobre los benchmarks SQuAD yRACE [LXL+17] en los que RoBERTa consigui´o puntuaciones que igualan a las del estado del arte sin realizar entrenamiento especifico para las tareas que proponen dichos benchmarks. Sus resultados demuestran la importancia de un corpus de tama˜no adecuado y de la optimizaci´on tanto como la relevancia. 2.5.3. ALBERT ALBERT [LCG+20] en comparaci´on con el modelo BERT, que es conocido por ser costoso en memoria y tiempo, debido a los numerosos par´ametros usados en su entrenamiento, 110 millones en la versi´on base y 340 millones en la versi´on ampliada, ALBERT afirma tener una reducci´on del 89 % en par´ametros en comparaci´on con BERT, con casi el mismo rendimiento en el benchmark, y todo esto es gracias a sus mejoras aplicadas, tales como ,factorizaci´on de los par´ametros de incrustaci´on, compartir par´ametros entre capas, t´ecnicas de reducci´on de par´ametros, etc [LCG+20].
16 Cap´ ıtulo 2. Contexto de la Investigaci´ on Compartir par´ametros entre capas, lo que reduce la cantidad de par´ametros ´unicos, es una de las principales innovaciones y modificaciones de ALBERT, mientras que en el BERT contiene un conjunto de par´ametros ´unicos para cada codificador. Agregar una capa de tama˜no m´as peque˜no entre el vocabulario y la capa oculta para descomponer la matriz de incrustaci´on de tama˜no V·Hen dos matrices m´as peque˜nas de tama˜no V·EyE ·H. Otra innovaci´on que destaca en ALBERT es la p´erdida de Predicci´on de Orden de Oraciones (Sentence Order Prediction (SOP),del ingl´es Sentence Order Prediction), que es predecir +1 para pares consecutivos de oraciones en el mismo documento y -1 si se intercambia el orden de las oraciones o si son de documentos diferentes. En general, estas mejoras derivan a una reducci´on significativa en el n´umero de par´ametros, 11 millones en la versi´on base y 17 millones en la versi´on ampliada, lo que se traduce en una reducci´on de la memoria necesaria para almacenar los par´ametros del modelo. A pesar de tener menos par´ametros, ALBERT alcanza un rendimiento similar e incluso mejor (GLUE benchmark 0.894, en la versi´on ensamble) al de BERT(GLUE benchmark 0.821, version ampliada) en el benchmark. 2.5.4. DistilBERT DistilBERT es un modelo Transformer peque˜no, r´apido, econ´omico, ligero preentrenado con destilaci´on del conocimiento y fue entrenado mediante el corpus con el que el modelo BERT fue entrenado originalmente. Tiene un 40 % menos de par´ametros que bert-base-uncased, funciona un 60 % m´as r´apido mientras preserva m´as del 95 % del rendimiento de BERT seg´un se mide en la GLUE [WSM+19]. La destilaci´on del conocimiento [SDCW20] es un m´etodo de compresi´on de modelos en el que un modelo m´as peque˜no se entrena para imitar las acciones de un modelo o grupo de modelos m´as grandes. En su trabajo, el modelo compacto,DistilBERT yBERT comparten una arquitectura general similar pero a menor escala. Se eliminan las incrustaciones de tipo de token y el pooler mientras que el n´umero de capas se reduce a la mitad. La mayor´ıa de las operaciones utilizadas en la arquitectura del Transformer han sido muy optimizadas por los frameworks modernos de ´algebra lineal, y sus investigaciones han demostrado que los cambios en la dimensi´on final del tensor, tambi´en conocida como dimensi´on de tama˜no oculto, tienen poco impacto en la eficiencia computacional para un n´umero fijo de par´ametros. Por lo tanto, se centran en reducir el n´umero de capas. En conclusi´on, DistilBERT es una versi´on m´as peque˜na y r´apida de BERT que se entrena mediante destilaci´on del conocimiento, lo que permite una reducci´on significativa en el n´umero de par´ametros mientras se mantiene un alto nivel de rendimiento en tareas de comprensi´on del lenguaje natural.
2.5. Modelos de Lenguaje Preentrenados 17 2.5.5. SpanBERT Figura 2.9: Una ilustraci´on del entrenamiento SpanBERT [JCL+20] SpanBERT [JCL+20] es un modelo de lenguaje basado en BERT que se pre-entrena en selecci´on de fragmentos de texto. A diferencia de BERT, que enmascara tokens individuales, SpanBERT utiliza una distribuci´on geom´etrica para enmascarar fragmentos completos de palabras. Adem´as, introduce un span-boundary objective (SBO) que impulsa al modelo a predecir todo el fragmento enmascarado a partir de los tokens observados en su l´ımite. Estas diferencias permiten que SpanBERT represente y prediga mejor comparaci´on con BERT. SpanBERT puede utilizarse para diversas actividades de GLUE, as´ı como para una amplia gama de tareas de PNL, como la extracci´on de relaciones, la resoluci´on de relaciones y la respuesta a preguntas. En los experimentos [JCL+20], SpanBERT supera notablemente a BERT y otros modelos en estas tareas. Por ejemplo, en GLUE,SpanBERT logra el mejor rendimiento en siete de las nueve tareas. Pero al igual que BERT,SpanBERT requiere una gran cantidad de datos de entrenamiento y recursos computacionales para lograr un rendimiento ´optimo. En cuanto a la mejora de la representaci´on y predicci´on de las partes del texto, SpanBERT ha obtenido en general resultados alentadores.
Cap´ıtulo 3 Estado del Arte En esta secci´on se hace un repaso de los trabajos recientes pertinentes para este TFG. 3.1. Scraping La t´ecnica scraping [Zha17]consiste en la extracci´on automatizada de datos. Es decir, es un proceso tal que un script captura informaci´on de algun lugar de manera estructurada y automatizada. El proceso de scraping se requiere el uso de herramientas de software, y seg´un el lugar que estas recopilan usas determinadas herramientas, en web scraping algunas de las herramientas m´as populares son: 1. BeautifulSoup: Es un m´odulo de Python que facilita y hace m´as eficaz el estudio y la extracci´on de datos de Hypertext Transfer Protocol (HTML) yExtensible Markup Language (XML). 2. Scrapy: un framework de Python que se utiliza para construir scrapers de forma r´apida y eficiente. 3. Selenium: una herramienta que permite automatizar la interacci´on con una p´agina web, lo que es ´util para extraer informaci´on de p´aginas web que requieren m´ultiples interacciones ya sea como iniciar sesi´on, registrar, etc. A diferencia de las dos anteriores selenium es m´as sofisticado. Para el proceso de scraping de archivos PDF, algunas de las herramientas m´as utilizadas son: 1. PyPDF2: una biblioteca de Python que permite analizar archivos PDF y extraer su contenido tanto im´agenes como textos, es sencillo de manejar y eficiente para pdf que solo nos interese su texto o la imagen. 19
26 Cap´ ıtulo 4. Metodologia del Proyecto 4.1. Recolecci´on de los datos Este primer paso del pipeline propuesto, involucra la recopilaci´on de los texto de tem´aticas legal que constituir´an los corpus necesarios para el entrenamiento de los modelo de NLP. La tarea de recopilaci´on de datos se refiere a la adquisici´on de los datos de texto que se procesar´an. Estos datos pueden provenir de diversas fuentes, como bases de datos, sitios web, chats, documentos, etc. Hay que recopilar los datos y limpiarlos tanto como sea posible, eliminando informaci´on innecesaria y revisando los textos para obtener los mejores resultados. 4.1.1. Web Scraping Web Scraping [Zha17] es una t´ecnica que sirve para extraer o recolectar informaci´on de internet, y guardarlo en un sistema de base de datos, donde posteriormente se le aplicaran t´ecnicas de procesamiento. Los pasos a seguir: 1. Identificaci´on del sitio web del cual extraer la informaci´on. 2. Se realiza la inspecci´on del c´odigo HTML del sitio para determinar qu´e informaci´on se desea extraer y d´onde se encuentra ubicada. 3. Creaci´on de un script que automatiza el proceso de extracci´on de datos. 4. Ejecuci´on del script, en este paso hay que tener en cuenta las pol´ıticas de privacidad y t´erminos de servicio del sitio web escogido. 5. Filtrado del contenido recopilado, como la eliminaci´on de caracteres especiales innecesarios o erratas producido a la hora de la descarga, entre otras. 6. Almacenar los datos extra´ıdos en un formato estructurado, para su utilizaci´on m´as tarde ya sea para an´alisis u otra aplicaciones. 4.1.2. PDF Scraping Se parte de una idea similar a la de web Scraping siguiendo los siguientes pasos: 1. Se identifica el pdf que se necesita extraer informaci´on. 2. Se selecciona la herramienta de pdf scraping PyPDF2 y se crea un script que automatiza el proceso de extracci´on de datos. 3. Se realiza el filtrado del contenido. 4. Almacenar los datos.
4.2. Datos de entrada 27 4.2. Datos de entrada El segundo paso del pipeline se enfoca en la entrada de datos de texto, los cuales son toda la informaci´on recolectada durante el paso anterior. Estos datos pueden ser de cualquier tipo, desde art´ıculos de noticias hasta historiales de chat. Sin embargo, el conjunto de texto en s´ı no es suficiente para entrenar los modelos de NLP, ya que es necesario etiquetar los datos con informaci´on adicional. Este etiquetado permitir´a a los modelos aprender a identificar y extraer entidades y relaciones espec´ıficas de los textos de entrada. Este etiquetado se llevar´a a cabo en el siguiente paso del proceso. 4.3. Pre-Procesamiento Una vez obtenidos los textos que se van a utilizar, en esta secci´on se expondr´an y explicar´an las acciones necesarias que hay que seguir antes de entrenar el modelo. 4.3.1. Preparaci´on del etiquetado El primer paso fue realizar el anonimizado de los datos de cara al cumplimiento de la Ley Organica de Protecci´on de Datos (LOPD), mediante un software que sustitu´ıa los valores relevantes por otros con similar estructura, pero sin ninguna relaci´on con el original. Tras esto se definieron las etiquetas relevantes para la cuesti´on dada. Debido a la tem´atica legal que se pretende dar al modelo, las etiquetas deben ser relevantes en el ´ambito o “jerga” delictivo-judicial, por esto las etiquetas seleccionadas fueron: 1. PER : Nombres de Personas, reales o ficticios. 2. ORG : Organizaciones, compa˜n´ıas, agencias, instituciones, etc. 3. LOC : Ubicaciones. 4. DATE : Fechas en cualquier formatos. 5. DRUGS : Nombres de drogas. 6. WEAPON : Nombres o categor´ıas de armas. 7. NAL : Nacionalidades. 8. LAW : Nombres de documentos legales. 9. DI : Documentos de Identidad. 10. PASP : Pasaportes.
28 Cap´ ıtulo 4. Metodologia del Proyecto 11. MISC : Profesiones, puestos, enfermedades..., conceptos relevantes sin categor´ıa especifica. Para realizar el etiquetado de los corpus se utilizaron herramienta p´ublicas que son compatible con el modelo propuesto. La herramienta elegida por el equipo de investigaci´on dada sus ventajas t´ecnicas fue UBIAI, la cual es una herramienta freemium de anotaci´on que ayuda a etiquetar datos, con funciones de anotaci´on de texto autom´atico para agilizar el proceso de etiquetado, adem´as transforma los datos no estructurado en informaci´on ´util. Los pasos que se realizaron para el etiquetado son: 1. Detallar el etiquetado y selecci´on de tipo, en el presente trabajo se utiliz´o Anotaci´on basado en intervalo. 2. A˜nadir el diccionario de etiqueta. 3. En el paso de a˜nadir diccionario de relaciones se a˜nade de la misma forma que la del etiqueta, luego se selecciona la clasificaci´on binaria y se selecciona archivo que se va a trabajar. 4. Se selecciona la opci´on de Auto Detect situado en la parte de la izquierda, esto es la detecci´on autom´atica, que una vez que se etiqueta una palabra, las repetidas se etiquetan autom´aticas. Y Label dialog muestra una tabla de tipos de etiquetas para seleccionar, una vez que se subrayan las palabras o conjuntos de palabras que interesen, se escoge su etiqueta adecuada. 5. Una vez finalizado, se descarga el proyecto en el formato necesario dependiendo de la utilidad que se le da, la salida que se busca es de IOB Format, esto nos da un archivo en formato .Tab Separated Values (TSV) modificable. 4.3.2. Preparaci´on de los archivos de entrenamiento Una vez ya obtenido el corpus del modelo, se realiza la separaci´on del mismo en los splits de entrenamiento y prueba. Esta separaci´on se hizo manteniendo intacta la estructura de cada una de la frases para no perder el contexto de la misma de cara al entrenamiento. Esto se realiz´o mediante una funci´on de la librer´ıa sklearn que permite la separaci´on equilibrada por etiqueta y frase, llevando el 80 % del corpus a entrenamiento y el 20 % restante a testeo. Esto permiti´o realizar una distribuci´on de etiquetas equilibradas (ver Figura 4.3), siendo total, entrenamiento y prueba respectivamente, pero se observ´o que la etiqueta PASP solo aparec´ıa una vez en los 33 documentos que componen el corpus. Con esto se decidi´o eliminar dicha etiqueta por los problemas y la imposibilidad de entrenamiento que generaba.
4.3. Pre-Procesamiento 29 (a) Conjunto de datos Completo (b) Conjunto Entrenamiento (c) Conjunto de Prueba Figura 4.3: N´umero de apariciones por etiqueta Adem´as se realiz´o una comprobaci´on manual con el fin de verificar que las etiquetas estuvieran equilibradas en cuanto al n´umero de apariciones en las porciones para entrenamiento y prueba y con esto minimizar el riesgo del ingresar ruido a los modelos de Machine Learning (ML). Se mantuvo el porcentaje de split 80/20 % lo que se traduce en 26 archivos de los 33 totales para entrenamiento y los 7 restantes para prueba. Debido a la gran diferencia en longitud de los archivos, se decidi´o que finalmente fueran 23 para entrenamiento y 10 para testeo. Una vez generados los dos archivos TSV se usa la biblioteca SpaCy para convertir estos en archivos binarios que la llamada train pueda soportar. Esta no fue el primer plan de preparaci´on de los archivos que se propuso, originalmente se propuso convertir estos archivos TSV en archivos JSON, para poder comprobar la integridad y estructura de los mismo. Pero esto supuso la corrupci´on de ciertos tokens por el tipo de codificaci´on del archivo, cosa que imped´ıa que el modelo aprendieran dichas palabras. Con lo cual se paso a realizar la conversi´on anteriormente explicada, que es la que se usar para todas las posteriores ejecuciones y pruebas. En este punto se genera el archivo de configuraci´on, que contiene los par´ametros bajo los cuales se realizaran los entrenamientos de los distintos modelos. Estos par´ametros se explicaran en la siguiente secci´on. Sobre este archivo de configuraci´on se realizan una serie de comprobaciones sobre su integridad y estructura. Para realizar esta comprobaciones se utiliza la biblioteca SpaCy anteriormente mencionada. Tambi´en mediante el uso de esta biblioteca se comprueba el estado de los archivos entrenamiento y testeo, permitiendo comprobar si el n´umero de muestras de cada etiqueta cumple el m´ınimo recomendable para el entrenamiento y otras m´etricas recomendables para el entendimiento de la calidad del entrenamiento. Ya realizadas estas comprobaciones es posible entrenar el modelo.
30 Cap´ ıtulo 4. Metodologia del Proyecto 4.4. Entrenamiento del modelo Se dispone de dos conjuntos de datos: el primero completo con X etiquetas y el segundo un poco mas reducido con Y etiquetas. El entrenamiento se realiza mediante la biblioteca SpaCy, que simplifica enormemente esta tarea. Para el modelo de NLP pre-entrenado se ha seleccionado RoBERTa, que ha demostrado un excelente rendimiento en tareas de procesamiento de lenguaje natural, y lo visto en el Cap´ıtulo 3en el estado del arte. Antes de proceder al entrenamiento, se realiza el ajuste del modelo RoBERTa utilizando un split aleatorio. De esta forma, se consigue una mejor ajuste de los pesos del modelo y una mayor eficacia en la tarea de extracci´on de entidades. Una vez ajustado, se inicia el proceso de entrenamiento con los par´ametros especificados en el archivo de configuraci´on. Este paso es fundamental para lograr un modelo de calidad que sea capaz de extraer las entidades correctamente del texto. Una vez ya realizado el entrenamiento el siguiente paso seria el estudio de las m´etricas respecto a la eficacia del modelo. 4.5. Librer´ıas Utilizadas Beautiful Soup (BS): es una librer´ıa externa de Python, que permite extraer informaci´on de documentos HTML yXML, convirti´endolo en un ´arbol de objetos de Python que puede ser recorrido. De esta manera se puede realizar un filtrado a base del nombre de la etiqueta de la pagina web escogida para as´ı poder filtrar con el contenido necesario para la tarea. Una vez filtrado el contenido se utiliza la herramienta MongoDB para el guardado de datos. PyPDF2: es una librer´ıa de Python que permite extraer texto y metadatos del pdf escogido Torch: es un paquete de c´odigo abierto que permite generar tareas y asignarlas a la Graphics Processing Units (GPU). De esta forma se consigue acelerar el procesamiento de grandes cantidades de datos debido a la estructura de las GPU. Fue creado en el lenguaje de scripting Lua. Pytorch: es un framework de Python basado en la biblioteca Torch y que permite la creaci´on de redes neuronales profundas basado en el manejo de GPU que aporta Torch. Junto a TensorFlow es una de las plataformas mas usadas en este campo. Pytorch es la m´as usada para la investigaci´on debido a su gran capacidad de parametrizaci´on. SpaCy: es una biblioteca de c´odigo abierto cuyo fin es el manejo de NLP en Python. Esta biblioteca permite el uso de Pytorch sin tener que modificar todos
4.5. Librer´ ıas Utilizadas 31 los par´ametros disponibles en el mismo, cosa que facilita mucho la creacion de modelos NLP. Tambi´en permite el uso de la arquitectura Transformer explicada anteriormente. Entre las caracter´ısticas disponibles en SpaCy esta la de poder evaluar tanto el corpus, como las m´etricas del modelo, as´ı como realizar el entrenamiento del modelo en si y multitud de tareas diversas relacionadas con la creaci´on, evaluaci´on y guardado de un modelo NLP.
Cap´ıtulo 5 Experimentos y Resultados En esta secci´on se van a discutir el formulado de los experimento y los resultados obtenidos. Entre estos puntos est´an tanto la descripci´on del corpus como del proceso de entrenamiento y evaluaci´on del modelo. 5.1. Descripci´on del corpus Los distintos documentos que conforman el corpus generado para este TFG corpus provienen de la base de datos de sentencias judiciales del Consejo General del Poder General (CGPJ), todos estos textos presentan una tem´atica com´un de los delitos que reflejan, siendo esta, la agresi´on al bienestar psicol´ogico y f´ısico de las v´ıctimas. Estos textos presenta una amplia cantidad de referencias a normas legales. El corpus corpus est´a compuesto por distintos documentos que reflejan casos judiciales relacionados con delitos que suponen la agresi´on al bienestar psicol´ogico y f´ısico de las v´ıctimas. Estos documentos han sido recopilados a partir de la base de datos de tem´aticas legales. Todos ellos contienen referencias a normas legales relevantes para el caso, lo que les confiere un alto grado de complejidad t´ecnica y jur´ıdica. Es importante destacar que se dispone de dos corpus iguales, pero con algunas diferencias. El primero, denominado ”dataset completo”, contiene cuatro etiquetas adicionales, DRUGS(drogas), WEAPON(armas), NAL(nacionalidad), DI(documento de identidad). Por su parte, el segundo corpus, denominado ”lite”, se centra en las etiquetas m´as gen´ericas, que son: PER (persona), LOC (localizaci´on), DATE (fecha), ORG (organizaci´on), MISC (miscel´anea) y LAW (leyes y normativas). Ambos corpus se han sometido a un meticuloso tratamiento previo para garantizar la exactitud de la informaci´on. Adem´as, se han realizado diversas tareas de limpieza y normalizaci´on, como la eliminaci´on de caracteres especiales, signos de puntuaci´on y 33
34 Cap´ ıtulo 5. Experimentos y Resultados palabras vac´ıas, as´ı como la lematizaci´on y la eliminaci´on de palabras repetidas. De esta manera, se ha obtenido un conjunto de datos de alta calidad y consistencia que se utiliza para el entrenamiento y evaluaci´on de modelos de procesamiento de lenguaje natural en el ´ambito jur´ıdico. Tabla 5.1: N´umero etiquetas por clase del dataset completo -TRAIN TEST TOTAL PER 5645 1796 7440 LOC 927 344 1271 DATE 5223 1663 6886 WEAPON 102 4 106 DRUGS 31 6 37 MISC 1702 668 2370 ORG 6014 1848 7862 DI 13 5 18 LAW 11864 3745 15609 NAL 9 4 13 La Tabla 5.1 muestra la distribuci´on de las distintas etiquetas (PER, LOC, DATE, WEAPON, DRUGS, MISC, ORG, DI, LAW y NAL) del dataset completo. La etiqueta LAW es la que tiene mayor cantidad de muestras, con un total de 15609 en el corpus completo. Le sigue ORG con 7862 muestras, PER con 7440, DATE con 6886, MISC con 2370, LOC con 1271, WEAPON con 106, DI con 18 y NAL con 13. DRUGS es la etiqueta con menor cantidad de muestras, con un total de 37 en el corpus completo. Posteriormente, se realiza un split aleatorio para formar dos conjunto, uno de entrenamiento y otro de prueba. El conjunto de entrenamiento contiene la mayor´ıa de las muestras y se distribuye de la siguiente manera: PER 5645, LOC 927, DATE 5223, WEAPON 102, DRUGS 31, MISC 1702, ORG 6014, DI 13, LAW 11864 y NAL 9. El conjunto de prueba, por su parte, contiene menos muestras en todas las etiquetas: PER 1796, LOC 344, DATE 1663, WEAPON 4, DRUGS 6, MISC 668, ORG 1848, DI 5, LAW 3745 y NAL 4. Y en la siguiente Tabla 5.2 se muestra el mismo split que la Tabla del dataset completo, solo que sin las etiquetas DRUGS, WEAPON, NAL, DI. 5.2. Pre-Procesamiento Para la preparaci´on de los splits se realiz´o mediante la siguiente funci´on de la biblioteca sklearn. 1from sklearn . model_selection import train_test_split 2T_train , T_test , E_train , E_test = train_test_split (X, y,
5.3. Entrenamiento 35 Tabla 5.2: N´umero etiquetas por clase del conjunto de datos lite -TRAIN TEST TOTAL PER 5645 1796 7440 LOC 927 344 1271 DATE 5223 1663 6886 MISC 1702 668 2370 ORG 6014 1848 7862 LAW 11864 3745 15609 3test_size =0.2 , random_state =0) C´odigo 5.1: Generaci´on de Splits con Sklearn. Esto genera cuatro listas T train, T test, E train, E test, siendo las Tlas listas de tokens y las Elas listas de etiquetas de los archivos de entrenamiento y testeo respectivamente. Una vez almacenadas las listas se procedi´o a realizar las comprobaciones anteriormente mencionadas, para esto es necesario tener ya generado el archivo de configuraci´on, este se explicar´a m´as adelante, y los archivos en el formato de texto binario Spacy. 1$ ! python -m spacy convert .\( Archivo de entrenamiento )\ 2.\( Carpeta destino ) -t spacy -c ner Esto convierte los archivos al formato SpaCy para el entrenamiento y testeo de modelos NER. Estas coomprobaciones de los archivos de entrenamientos se realizaron mediante la siguiente llamada de la biblioteca SpaCy: 1$ ! python -m spacy debug data -V .\( Archivo de c o n f i g u r a c i n ). cfg Estas comprobaciones son ejecutadas para cualquiera de los dos m´etodos de separaci´on. En el caso de la separaci´on autom´atica se devuelve un mensaje de incompatibilidad de archivos, para el otro caso no se muestra ning´un mensaje de error, solamente las informaciones relativas a la representaci´on de las clases (ver Figura 5.1). Con estas comprobaciones realizadas se consigue asegurar el correcto funcionamiento del proceso de entrenamiento. 5.3. Entrenamiento Todos los entrenamientos y pruebas se llevaron a cabo en una computadora con Windows 10, con un procesador Intel Core i7-7920HQ a 3.10 GHz y una memoria RAM de 16 GB. Adem´as, se utiliz´o una GPU con las siguientes especificaciones: GeForce RTX 3070 OC Edition con 8 GDDR6. Para la comunicaci´on entre la computadora y la GPU, se utiliz´o una caja externa Razer Core X Chroma. En este punto, como se ha mencionado anteriormente,
Cap´ıtulo 6 Contribuciones El equipo de dos personas encargado de llevar a cabo este TFG ten´ıa que comunicarse bien entre s´ı. Del mismo modo, desde el inicio del proyecto, aproximadamente a mediados de septiembre de 2022, hasta su conclusi´on en mayo de 2023, se han mantenido reuniones peri´odicas con los miembros del Grupo GASS y el resto de compa˜neros mediante encuentros celebrados todos los jueves a trav´es de Google Meet. Adem´as, las aplicaciones de mensajer´ıa m´ovil abrieron un canal de comunicaci´on m´as fluido que permiti´o resolver problemas de forma m´as r´apida y directa. En este apartado se describen las aportaciones que han realizado los participantes en este Trabajo de fin de Grado. 6.1. ZhenBo Chen Llev´e a cabo una investigaci´on puntera a lo largo de la primera fase del proyecto, que dur´o desde principios de septiembre hasta finales de diciembre, utilizando la herramienta Google Scholar sugerida por el Grupo GASS. Tambi´en me enfoqu´e en estudiar las herramientas y t´ecnicas necesarias para nuestro TFG, con el objetivo de comprender sus caracter´ısticas y detalles de implementaci´on. Una vez adquiridos los conocimientos necesarios, los compart´ı con mis compa˜neros a trav´es de reuniones en Google Meet. Una vez completada terminada la mayor parte de la fase de investigaci´on, alrededor de principios de enero, comenzamos con el desarrollo de la propuesta, que dur´o hasta finales de abril. Durante esta etapa, mi principal tarea fue la creaci´on del conjunto de datos (dataset), para lo cual desarroll´e scripts en Python para realizar Web Scraping y PDF Scraping. Utilic´e bibliotecas como Beautiful Soup,PyPDF2, entre otras. Adem´as, junto con la ayuda de mi compa˜nero, realizamos la clasificaci´on de etiquetas utilizando UBIAI. Al mismo tiempo, llev´e a cabo diversas pruebas de entrenamiento de modelos con conjuntos de datos peque˜nos, con el objetivo principal de comprender su funcionamiento. Durante este proceso, compart´ı mis conocimientos adquirido con las peque˜nas pruebas de 43
44 Cap´ ıtulo 6. Contribuciones entrenamientos con mi compa˜nero, quien estaba trabajando en el desarrollo del modelo definitivo. Una vez concluida la fase de desarrollo, mi compa˜nero y yo empezamos a redactar el informe para el Trabajo de Fin de Grado. En dicha redacci´on realic´e: Resumen. El Cap´ıtulo de Introducci´on del TFG (Cap´ıtulo 1). Descripci´on de los Modelos de Lenguaje Pre-entrenados(el punto 2.5) (Cap´ıtulo2). Descripci´on del Estado del Arte (Cap´ıtulo 3). Los apartados para la descripci´on del proceso de recolecci´on de datos, descripci´on de los datos necesarios para el TFG y el apartado de pre-procesamiento de los datos necesarios para el entrenamiento de los modelos de la Metodolog´ıa del Proyecto (Cap´ıtulo 4). Descripci´on del corpus de los Experimentos y Resultados (Cap´ıtulo 5). Cap´ıtulo de Conclusiones y trabajo futuro (7). 6.2. ´ Alvaro L´opez Olmos La primera fase del proyecto abarc´o desde mi inicio en el grupo hasta finales de diciembre. En esta etapa, comenc´e realizando una investigaci´on exhaustiva de numerosos art´ıculos cient´ıficos relacionados con temas similares. Una vez adquiridos los conocimientos necesarios, me enfoqu´e en investigar las t´ecnicas existentes para el desarrollo de modelos. Todos los conocimientos adquiridos sobre estos temas, herramientas y t´ecnicas, los compart´ı con mis compa˜neros a trav´es de reuniones semanales que se celebraban mediante Google Meet. Una vez finalizada la primera fase, a principios de enero comenzamos la segunda fase, que consist´ıa en la creaci´on del dataset y el desarrollo de la herramienta. A finales de abril, despu´es de que la herramienta hubiera pasado por un amplio proceso de desarrollo y pruebas, esta fase estaba terminada. Dado que se utiliz´o Python para el desarrollo, tuve que estudiar ciertas ideas relacionadas con las distintas bibliotecas, funciones y plugins que pueden utilizarse en la creaci´on de la herramienta. Adem´as, librer´ıas como PyTorch yspaCY me ense˜naron nuevas ideas y herramientas. Empezamos a desarrollar el programa utilizando el entorno de desarrollo Jupyter Notebook despu´es de haber revisado y aprendido todos los principios relevantes. Mientras mi compa˜nero realizaba pruebas de entrenamiento de modelos, yo comenc´e a desarrollar el modelo final. El primer paso fue realizar el pre-procesamiento del dataset con una divisi´on de entrenamiento de 80 %
6.2. ´ Alvaro L´ opez Olmos 45 de entrenamiento y 20 % de prueba, con la ayuda de la librer´ıa sklearn. A continuaci´on, ajustamos los par´ametros de entrenamiento en el archivo de configuraci´on y, una vez finalizado el entrenamiento, analizamos los resultados y realizamos ajustes en los modelos para obtener mejores resultados. Aunque todav´ıa quedaban muchas pruebas por hacer cuando termin´o la fase de desarrollo, mi compa˜nero de grupo y yo empezamos a redactar el informe para el proyecto de fin de carrera despu´es de eso. Particip´e en todas las secciones siguientes de la redacci´on de la memoria: Introducci´on del TFG (Cap´ıtulo 1). Los apartados de Procesamiento de Lenguaje natural, conceptos base para entender la termolog´ıa del trabajo y la arquitectura de los transformers del Contexto de la Investigaci´on (Cap´ıtulo 2). Los apartados de la explicaci´on de las funcionalidades de Torch y PyTorch, Spaycy, y una descripci´on general del entrenamiento del modelo de la Metodolog´ıa del Proyecto (Cap´ıtulo 4). Descripci´on de los tareas de Pre-Procesamiento, entrenamiento, evaluaci´on y salida del modelo de los experimentos y resultados (Cap´ıtulo 5). Cap´ıtulo de Conclusiones y trabajo futuro (7). Traducci´on de la introducci´on y conclusi´on (Cap´ıtulo 8y9). Es importante se˜nalar que todos los miembros del grupo participaron en la correcci´on de las erratas o errores que surgieron durante la redacci´on del informe.
Cap´ıtulo 7 Conclusiones y Trabajo Futuro 7.1. Conclusiones El an´alisis de contexto es un m´etodo que ha avanzado mucho en los ´ultimos a˜nos y tiene numerosos usos en diversos sectores. Dicha t´ecnica se enfoca en el procesamiento del lenguaje natural (NLP). En este sentido, el presente trabajo ha profundizado en la historia del NLP, los modelos que existen en la actualidad y sus estados del arte. Se mencionan modelos como BERT,RoBERTa,ALBERT,DistilBERT,SpanBERT, entre otros, que han tenido un gran impacto en la comunidad de NLP. Estos modelos pre-entrenados son utilizados como base para ser re-entrenado, derivando a modelos para a tareas m´as espec´ıficas, como an´alisis de sentimiento, extracci´on de informaci´on, etc. En este trabajo se presenta el uso de modelos preentrenados (RoBERTa) para entrenar un modelo espec´ıfico para la extracci´on de entidades enfocado a la tem´atica legal, y para esto se a seleccionado un conjunto de datos de tem´atica legal, y esto es justamente uno de los pasos m´as importante del entrenamiento del modelo, es decir el conjunto de datos debe ser lo suficiente amplio y diverso para cubrir la mayor cantidad de casos, y a su vez tener una calidad que permita la creaci´on de un modelo s´olido y confiable. Finalmente los resultados obtenidos en el trabajo muestran la capacidad del modelo para realizar tareas de extracci´on de entidades en textos legales, con una precisi´on significativa. La exactitud del modelo es importante, ya que los resultados obtenidos pueden tener implicaciones legales en casos donde se utilice como prueba. 7.2. Trabajo Futuro Como posibles trabajos futuros pueden se˜nalarse los siguientes: •Se pueden explorar m´etodos m´as eficientes y precisos para la identificaci´on de 47
48 Cap´ ıtulo 7. Conclusiones y Trabajo Futuro entidades complejas y entidades de m´ultiples palabras, que, por su complejidad y variedad, suelen ser m´as dif´ıciles de identificar. Adem´as, se pueden investigar t´ecnicas para mejorar la detecci´on de entidades ambiguas, ir´onicas, el sarcasmo, etc. •Es posible trabajar en la creaci´on de modelos que permitan extraer y analizar los v´ınculos entre entidades, ya que esto podr´ıa permitir la identificaci´on de patrones y relaciones sem´anticas relevantes en textos complejos, lo que tendr´ıa aplicaciones importantes en tareas como la generaci´on de determinados textos y la extracci´on de informaci´on. •La integraci´on de conocimientos externos, por ejemplo a˜nadir bases de datos de ´areas especificas a parte de la que ya esta predeterminadas, puede mejorar la calidad de las relaciones extra´ıdas. Estos conocimientos pueden proporcionar informaci´on adicional sobre las entidades •En resumen, el trabajo futuro en relaci´on al reconocimiento de entidades puede abordarse desde m´ultiples perspectivas, incluyendo el desarrollo de t´ecnicas m´as eficientes y precisas para la identificaci´on de entidades complejas, as´ı como la exploraci´on y desarrollo de modelos que permitan la extracci´on y an´alisis de relaciones entre entidades para mejorar el procesamiento del lenguaje natural
Cap´ıtulo 8 Introduction 8.1. Motivation Numerous scientific advances in recent years have led to an exponential increase in technology. Thanks to the Internet, it has become possible to access large amounts of data specifically in written text in different languages, which is very useful for human or artificial learning, specifically for NLP. After the appearance of the first modern NLP architecture, Word2Vec [MSC+13] in 2013, there was a rapid development of this technology, with several advances, such as the RNN and the LSTM, which are a modification of the previous ones. Between 2015 and 2016, attention-based networks became popular, which allow the designer to specify the type of data he or she wants the system to focus on and pay attention to. Among these, one of the most prominent is the Transformer, introduced in 2017 and currently the top of the language processing paradigm. At present, there is a predominance of models such as BERT [DCLT19], introduced in 2018, and its specialisations and optimisations, such as RoBERTa [LOG+19], 2019. As both models are still state of the art, training has not yet been carried out for all languages, nor for all possible areas of specialisation, so we propose in this paper the creation and presentation of both a pipeline and a model trained specifically for the legal environment in Spanish. Other models derived from BERT such as ALBERT [LCG+20], DistilBERT [SDCW20] and SpanBERT [JCL+20] are also worth mentioning. 49
50 Cap´ ıtulo 8. Introduction 8.2. Context This Final Degree Project is part of a research project called Novel Strategies to Fight Child Sexual Exploitation and Human Trafficking Crimes and Protect their Victims - HEROES, approved by the European Commission within the Horizon 2020 Framework Programme (call H2020-SU-SEC-2020) under grant agreement number 101021801 and in which the GASS Group of the Universidad Complutense de Madrid (Grupo de An´alisis, Seguridad y Sistemas, https://gass.ucm.es, group 910623 of the catalogue of research groups recognised by the UCM). In addition to the Universidad complutense de Madrid, 21 organisations from 17 countries are participating in HEROES: 11 from EU countries (Austria, Belgium, Bulgaria, France, Greece, Ireland, Latvia, Lithuania, Portugal, Spain, United Kingdom), 1 associated country (Switzerland) and 5 third countries (Bangladesh, Brazil, Colombia, Peru, Uruguay). These entities are: University of Kent (UK), The Free University of Brussels (Belgium), The French National Research Institute for Digital Science and Technology - INRIA (France), Center for Security Studies - KEMEA (Greece), International Centre for Migration Policy Development - ICMPD (Austria), International Center for Missing and Exploited Children - ICMEC (Switzerland), IDENER Research & Development Agrupaci´on de Inter´es Econ´omico (Spain), Athena Research Center - ARC (Greece), Trilateral Research and Consulting (United Kingdom), Centre for Women and Children Studies - CWCS (Bangladesh), Center Against Human Trafficking and Exploitation - KOPZI (Lithuania), Portuguese Association for Victim Support - APAV (Portugal), Fundaci´on Renacer (Colombia), The Greek Council for Refugees - GCR (Greece), Brazilian Association for the Defense of Children of Children and Youth - ASBRAD (Brazil), Hellenic Police (Greece), Latvia National Police (Latvia), General Directorate for the Fight against Organized Crime (Bulgaria), Direcci´on General de la Polic´ıa - DGP (Spain), Federal Police (Brazil), Federal Highway Police (Brazil), Secretaria de Inteligencia Estrat´egica de Estado - Presidencia de la Republica Oriental del Uruguay (Uruguay). More information is available at: https://cordis.europa.eu/project/id/101021801 https://heroes-fct.eu 8.3. Object of the Investigation The aim of this project is the design and implementation of a NLP model capable of recognising named entities in Spanish in a text with a legal process orientation. The aim of this model is to automate the process that an investigator performs when analysing the files contained in a seized Spanish-language device. Therefore, it is necessary to carry
8.4. Workplan 51 out an analysis of the different NLP processing algorithms that allow for agile processing and accurate identification of the context of the analysed sentence and to carry out entity recognition. In addition, this project aims to understand how the named entity extraction process works, to analyse how it is structured and to find the main difficulties that computer engineers encounter when developing these models. This work proposes a model to reduce the time spent by researchers in the analysis of Spanish files contained in devices seized in a judicial process. 8.4. Workplan The development of this project is structured in three stages: 1. State-of-the-art research This stage focuses on the research of leading works and projects relevant to this work, as well as the acquisition of the necessary knowledge to carry out this work. Once the TFG was agreed upon, an introductory meeting was held to explain the purpose and the points to be carried out throughout this process. This meeting was followed by weekly meetings to monitor the project and to resolve any doubts that arose. These meetings also explained the correct ways of searching for academic documentation, the formats required and the tools used, one of them being Google Scholar, which it was decided would be used for this project. As the members of the team did not have all the necessary knowledge related to Artificial Intelligences, several courses were carried out to obtain this knowledge. Finally, once they had acquired the basic knowledge and studied the central themes of the project based on the project objectives, the team started with the development of the model. 2. Development: Once the necessary knowledge was obtained, the development of the model began, but without neglecting the investigation of optimal solutions. For this reason, during this phase, advanced concepts of libraries such as Spacy and Torch and the programming language of Python were investigated. In addition, the training sets for the model were constructed, carrying out the labelling of entities on the texts obtained from the sources provided by the works read during the previous phase. We also deployed the environment where both the training and the evaluations of the model would be carried out. 3. Results: At this point, and with the model already trained, we proceeded to evaluate the model on the main metrics, using different tools provided by the same libraries explained above. The model was also tested with texts generated by the team. Once the results were obtained, we proceeded to write this document.