title = "Modelo Jurídico Mexicano" description = """
## 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 invertes 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 informacó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 que Derechos Humanos se podrían estar violentando - 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. * `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 que teniamos considerando como base los 27913 ejemplos 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 requerian 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| ### 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) """