title = "Modelo Jurídico Mexicano" description = """
![alt-text](https://www.pactomundial.org/wp-content/uploads/2021/10/10-reduccion-de-las-desigualdades-3.jpg "ODS 10") 10.3 Garantizar la igualdad de oportunidades y reducir la desigualdad de resultados, incluso eliminando las leyes, políticas y prácticas discriminatorias y promoviendo legislaciones, políticas y medidas adecuadas a ese respecto. ## Motivación - Es difícil exigir algo que desconoces. - El trabajo se te acumula cuando tienes que leer grandes cantidades de información que además evoluciona constantemente. - Buscar información puede llevarte demasiado tiempo no tanto por la acción en si, si no por el tiempo que inviertes en buscar la información necesaria y desechar toda aquella que no te aporta nada relacionado a tu tema de interés. - Aún el cerebro humano con una gran capacidad de almacenamiento no puede competir con la cantidad de información que se genera día con día. Por ello decidimos aventurarnos en la creación de modelos que permiten en términos generales: - Extraer información. - Clasificar documentos. - Identificar si los documentos son tan parecidos que podrían tartar de un mismo tema o incluso se básicamente los mismos. Estos modelos integrados en diversos sistemas se pueden obtener beneficios como: - Agilizar y facilitar el trabajo de quienes imparten justicia. - Facilitar la búsqueda de los estudiantes e investigadores de derecho. - Ayudar a la ciudadanía permitiéndole identificar si se esta violentando alguno de los Derechos Humanos que protegen el Sistema Universal o la Convención Americana de Derechos Humanos. - Coadyuvar en la generación de indicadores sobre violaciones a los Derechos Humanos. ### Este proyecto esta compuesto por los siguientes modelos: - [hackathon-pln-es/jurisbert-finetuning-ner](https://huggingface.co/hackathon-pln-es/jurisbert-finetuning-ner) - [hackathon-pln-es/jurisbert-class-tratados-internacionales-sistema-universal](https://huggingface.co/hackathon-pln-es/jurisbert-class-tratados-internacionales-sistema-universal) - [hackathon-pln-es/jurisbert-clas-art-convencion-americana-dh](https://huggingface.co/hackathon-pln-es/jurisbert-clas-art-convencion-americana-dh) - [hackathon-pln-es/jurisbert-tsdae-sentence-transformer](https://huggingface.co/hackathon-pln-es/jurisbert-tsdae-sentence-transformer) ### Como funciona el demo: 1. Requiere que se proporciones dos textos (el primero denominada texto a analizar y el segundo texto a comparar), los cuales se pueden seleccionar de la lista de ejemplos. 2. Cada uno de estos textos pasa por cada uno de los modelos que conforman el proyecto. * Primero, se utiliza el modelo de reconocimiento de entidades **jurisbert-finetuning-ner**. El cual, podría encontrar alguna entidad de tipo LEY o TRAT_INTL. * Segundo, se utiliza el modelo de clasificación **jurisbert-class-tratados-internacionales-sistema-universal** acorde al sistema universal de **Derechos Humanos** el cual se fundamenta en convenciones o pactos para identificar si podria existir alguna violación acorde a lo definido por la **ONU**. * Tercero, se utiliza el modelo de clasificación **jurisbert-clas-art-convencion-americana-dh** para identificar cual de los artículos de la **[Convención Americana de Derechos Humanos](https://www.cndh.org.mx/sites/default/files/doc/Programas/TrataPersonas/MarcoNormativoTrata/InsInternacionales/Regionales/Convencion_ADH.pdf)** se podría estar violentando. * Cuarto, para poder ejemplificar el modelo **jurisbert-tsdae-sentence-transformer** se aprovechan el texto a analizar y el texto a comparar para calcular la similitud entre ambos. 3. Se presentan los resultados obtenidos en el orden siguiente: * Primero lo obtenido para el texto a analizar. * Segundo, el porcentaje de similitud entre ambos textos. * Tercero, lo obtenido para el texto a comparar. """ article=""" ### Retos #### Creación de los datasets El principal problema de entrenar modelos que pertenezcan a un dominio especializado como el **jurídico** que además sea en **español** se centra en la construcción de los **datasets** por la prácticamente inexistencia de los mismos. Es por ello que tuvimos que crear dos datasets: - [scjnugacj/scjn_dataset_corpus_tesis] (https://huggingface.co/datasets/scjnugacj/scjn_dataset_corpus_tesis) la información base fue obtenida del **[Buscador Juridico de la SCJN de México]** (https://bj.scjn.gob.mx/) utilizando como fuente de información: Tesis y filtrando la información por décima y undécima época; sin embargo, fue necesario realizar procesos de ETL para la limpieza de información no relevante y estructuración de los campos: * `id`: a `string` feature. * `text`: a `string` features. - [scjnugacj/scjn_dataset_ner](https://huggingface.co/datasets/scjnugacj/scjn_dataset_ner) el primer reto para este dataset fue entender la estructura que debía tener para ser utilizado la tarea **NER** afortunadamente esto fue relativamente sencillo de encontrar y nos dimos cuenta que no éramos el único equipo con el mismo problema. La estructura del dataset para esta tarea es el siguiente: * `id`: a `string` feature. * `tokens`: a `list` of `string` features. * `ner_tags`: a `list` of classification labels (`int`). Full tagset with indices: {'O': 0, 'B-LEY': 1, 'I-LEY': 2, 'B-TRAT_INTL': 3, 'I-TRAT_INTL': 4} Afortunadamente, teníamos claro que entidades nos interesaba identificar pero el reto estaba en crear el corpus anotado por la cantidad de ejemplos considerando como base los 27913 del dataset **scjn_corpus_tesis** aún utilizando una herramienta para realizar las anotaciones de manualmente el tiempo requerido era elevado es por ello que nos dimos a la rarea de crear un notebook que recibe una lista de los nombres de las leyes y tratados internacionales y realiza el ETL necesario para las anotaciones automáticamente, para asegurarnos de que todo estaba anotado acorde a lo esperado se extrajo una muestra para su verificación manual. #### Compartir los datasets en HugginFace Realizar la investigación de como compartir los datasets en HuggingFace represento un tiempo importante y la mejor forma que encontramos para hacerlo fue: - Crear un script para utilizar la función **load_dataset** que lee desde un repositorio en github los archivos train.txt y dev.txt y los convierte en un **DatasetDict** para finalmente publicarlos con la función **push_to_hub**. ## Entrenamiento de los modelos - Crear la línea base de los modelos. - **hackathon-pln-es/jurisbert-finetuning-ner** * Espacio de almacenamiento para almacenar los checkpoints que requerían 1.4 GB de almacenamiento por lo que no podíamos entrenar de forma continua. * Los resultados de **F1** eran muy bajos. * La cantidad de datos en el corpus era tan elevado y disparejo que el tiempo para entrenar una época era muy alto. * Fue necesario dar un paso atrás y revisar el dataset para realizar un análisis exploratorio e idear estrategias para balancear la muestra por lo que se acoto a: | name |train|validation|test| |---------|----:|---------:|---:| |SCJNNER|1396|345|0| | annotations|train|validation|test| |---------|----:|---------:|---:| |LEY|1084|329|0| |TRAT_INTL|935|161|0| * Realizar múltiples entrenamientos hasta identificar cual era el mejor para realizar cual sería utilizado como base para el entrenamiento siguiente. - **jurisbert-class-tratados-internacionales-sistema-unviersal** * Se entrenó con un conjunto de datos que consta de 3,799 textos con su etiquetado a diferentes 8 tipos de convenios. * Los textos se transforman utilizando SimpleTransformers en el que se entrenó tres épocas con modelo base Roberta y modelo especifico Jurisbert el cual es un modelo de enmascaramiento con corpus jurídico en español. * La métrica de evaluación utilizada fue **Accuracy**. - **jurisbert-clas-art-convencion-interamericana-dh** * Se entrenó con un conjunto de datos que consta de 6,089 textos con su etiquetado a diferentes 30 tipos de artículos. * Los textos se transforman utilizando SimpleTransformers en el que se entrenó tres épocas con modelo base Roberta y modelo especifico Jurisbert el cual es un modelo de enmascaramiento con corpus jurídico en español. * La métrica de evaluación utilizada fue **Accuracy**. - **jurisbert-tsdae-sentence-transformer** * Se entreno utilizando el dataset scjnugacj/scjn_dataset_corpus_tesis del cual se tomo una muestra de 25000 ejemplos. ### Team El equipo esta conformado por [gpalomeque](https://huggingface.co/GPalomeque), [aureliopvs](https://huggingface.co/aureliopvs), [ceciliamacias](https://huggingface.co/ceciliamacias), [giomadariaga](https://huggingface.co/giomadariaga) y [cattsytabla](https://huggingface.co/cattsytabla) """