Views
No views yet
1from gliner2 import GLiNER2
2
3model = GLiNER2.from_pretrained("maik20100/gliner2-mx-legal-ner")
4
5text = """
6En la Ciudad de México, el día 15 de marzo de 2024, ante mí, licenciado Roberto Mendoza López,
7Notario Público número 124 del Distrito Federal, comparece el señor Javier Ramírez González,
8con RFC RAGJ850115KL4 y CURP RGGJ850115HDFRMV09, titular de la cuenta CLABE 032180000118359719.
9"""
10
11entity_descriptions = {
12 "rfc": "Registro Federal de Contribuyentes, clave alfanumérica de 12 o 13 caracteres",
13 "curp": "Clave Única de Registro de Población, cadena de 18 caracteres alfanuméricos",
14 "nombre_persona": "Nombre completo de persona física incluyendo nombre(s) de pila y apellidos",
15 "fecha": "Fecha en cualquier formato utilizado en documentos legales mexicanos",
16 "cuenta_bancaria": "Número de cuenta bancaria o CLABE interbancaria (18 dígitos)",
17}
18
19entities = model.extract_entities(text, entity_descriptions)
20print(entities)| Entity | Description | This Model (F1) | Base Model (F1) |
|---|---|---|---|
correo_electronico | Email address for legal notifications | 1.000 | 1.000 |
cuenta_bancaria | Bank account number or 18-digit CLABE | 1.000 | 0.739 |
curp | Clave Única de Registro de Población (18 chars) | 1.000 | 0.859 |
identificacion_oficial | INE/IFE credential folio, passport number, cartilla | 1.000 | 0.008 |
nss | Número de Seguridad Social / IMSS affiliation (11 digits) | 1.000 | 1.000 |
numero_contrato | Contract, policy, credit, or agreement identifier | 1.000 | 0.074 |
numero_escritura | Public instrument, escritura pública, or acta number | 1.000 | — |
numero_expediente | Court case or docket number | 1.000 | 0.614 |
numero_telefono | 10-digit mobile or landline number | 1.000 | 0.933 |
rfc | Registro Federal de Contribuyentes (12–13 chars) | 1.000 | 0.878 |
nacionalidad | Declared nationality | 0.987 | 0.984 |
nombre_persona | Full name of a natural person | 0.977 | 0.928 |
fecha | Date in any format used in Mexican legal documents | 0.904 | 0.703 |
0.802 Micro F1: 0.793 (vs. base model: 0.565 / 0.610)| Entity | Description | This Model (F1) |
|---|---|---|
domicilio | Full physical address (street, colonia, municipality, state, postal code) | 0.062 |
monto | Transactional monetary amount (price, salary, capital contribution) | 0.163 |
notaria | Notary public identifier including number and jurisdiction | 0.388 |
organizacion | Legal entity name / razón social | 0.473 |
referencia_legal | Citation to a Mexican law, code, or article | 0.476 |
1entity_descriptions = {
2 # High-performance entities
3 "rfc": "Registro Federal de Contribuyentes, clave alfanumérica de 12 caracteres para personas morales o 13 para personas físicas, ejemplo: GARC850101AB1",
4 "curp": "Clave Única de Registro de Población, cadena de 18 caracteres alfanuméricos que identifica de forma única a un ciudadano mexicano, ejemplo: GARC850101HGTRRR09",
5 "nombre_persona": "Nombre completo de persona física incluyendo nombre(s) de pila y apellidos paterno y materno, como aparece en documentos legales mexicanos",
6 "fecha": "Fecha en cualquier formato utilizado en documentos legales mexicanos, incluyendo formato textual completo como 'quince de marzo del año dos mil veinticuatro'",
7 "cuenta_bancaria": "Número de cuenta bancaria o CLABE interbancaria (18 dígitos) utilizada para depósitos financieros",
8 "nss": "Número de Seguridad Social (NSS) o Número de Afiliación al IMSS, asignado a trabajadores en México (11 dígitos)",
9 "correo_electronico": "Dirección de correo electrónico / email para oír y recibir notificaciones",
10 "numero_telefono": "Número telefónico fijo o móvil, típicamente a 10 dígitos",
11 "identificacion_oficial": "Identificador de documento oficial (folio de credencial INE/IFE, número de pasaporte, cartilla)",
12 "numero_contrato": "Número identificador de un contrato, póliza de seguro, crédito, cuenta o convenio",
13 "numero_escritura": "Número de instrumento público, escritura pública, acta o póliza pasada ante la fe pública",
14 "numero_expediente": "Número de expediente, causa o juicio asignado por un juzgado o tribunal",
15 "nacionalidad": "Nacionalidad declarada de la persona compareciente",
16 # Future-improvement entities (include if needed)
17 "domicilio": "Dirección física completa incluyendo calle, número exterior e interior, colonia, municipio o alcaldía, estado y código postal",
18 "monto": "Cantidad monetaria particular acordada, pagada o reclamada por las partes (precio, salario, aportación de capital). Excluye umbrales legales o tarifas oficiales.",
19 "notaria": "Identificación de notaría pública incluyendo número y jurisdicción",
20 "organizacion": "Nombre de persona moral (razón social), empresa, asociación civil o dependencia gubernamental",
21 "referencia_legal": "Cita a una ley, código, artículo o disposición normativa mexicana",
22}clasico / moderno), generated via mistralai/mistral-large-2512 through OpenRouter.Faker (es_MX) extended with custom Mexican validators (RFC checksum algorithm, CURP structure, CLABE digit, NSS format).fastino/gliner2-base-v11e-5, task LR 5e-4, batch size 8monto contrastive rule: The model is trained to label only transactional amounts (precio, salario, capital) as monto, and to leave statutory/regulatory thresholds (e.g., UMA multiples, fine ceilings) untagged. This is intentional behavior for privacy-safe financial redaction.domicilio (complex multi-line addresses) and organizacion (varied razón social formats).1@misc{gliner2-mx-legal-ner,
2 title = {GLiNER2 Fine-tuned for Mexican Legal NER},
3 author = {maik20100},
4 year = {2026},
5 url = {https://huggingface.co/maik20100/gliner2-mx-legal-ner}
6}