Loading…
Loading…
Modelo de reconocimiento de entidades (NER) que detecta síntomas, enfermedades y fármacos en relatos de consultas de urgencias en español, tal como llegan de un reconocedor de voz. Es un componente del prototipo AI-Triage, una plataforma de apoyo al triaje por voz desarrollada como trabajo de grado en la Universidad del Valle (Colombia).
Aviso: es un prototipo de investigación. No es un dispositivo médico ni está validado clínicamente, y no debe usarse para tomar decisiones asistenciales. En AI-Triage sus menciones son una entrada más de un pipeline (catálogo terminológico, reglas del protocolo y un LLM) cuyo resultado revisa siempre un profesional.
Esquema BIO con tres tipos de entidad:
| Etiqueta | Qué marca | Ejemplos |
|---|---|---|
SINTOMA |
Síntomas y signos referidos u observados | «dolor en el pecho», «vomitó», «no puede respirar» |
ENFERMEDAD |
Diagnósticos, enfermedades y lesiones | «diabetes», «hipertensión», «fractura de muñeca» |
FARMACO |
Medicamentos y alergias a fármacos | «losartán», «metformina», «alérgico a la penicilina» |
Etiquetas del modelo: O, B-SINTOMA, I-SINTOMA, B-ENFERMEDAD, I-ENFERMEDAD, B-FARMACO, I-FARMACO.
Parte de PlanTL-GOB-ES/roberta-base-biomedical-clinical-es y se ajusta en dos etapas:
SINTOMA), DisTEMIST (ENFERMEDAD) y DrugTEMIST (FARMACO). Cuando dos anotaciones se solapan se conserva una sola. 10 épocas, lr 5e-5, lote 16, 512 tokens con stride 128.Semilla 42. Entrenado el 2026-10-17 en una GPU T4 con transformers 5.18 y torch 2.11.
Métricas por span: la exacta exige los mismos límites y etiqueta; la parcial acepta solapamiento con la misma etiqueta.
Validación cruzada de 5 particiones sobre los 150 relatos de triaje (etapa 2), media ± desviación:
| Entidad | F1 exacta | F1 parcial |
|---|---|---|
| SINTOMA | 0,807 ± 0,052 | 0,935 ± 0,014 |
| ENFERMEDAD | 0,585 ± 0,190 | 0,833 ± 0,113 |
| FARMACO | 0,945 ± 0,050 | 0,945 ± 0,050 |
| Micro | 0,777 ± 0,055 | 0,917 ± 0,032 |
Como referencia, el modelo de la etapa 1 sin adaptar obtiene 0,482 de F1 micro exacta (0,818 parcial) sobre esos mismos relatos. En la validación de la etapa 1, sobre casos clínicos escritos, la F1 micro exacta es 0,693 (0,828 parcial).
Cómo leer estas cifras:
ENFERMEDAD es la clase menos estable porque hay pocos ejemplos por partición.from transformers import pipeline
ner = pipeline(
"token-classification",
model="HoraYMedia/ai-triage-ner-roberta",
revision="v1",
aggregation_strategy="simple",
)
ner("Refiere dolor en el pecho desde hace una hora, toma losartán y es alérgico a la penicilina.")
Algunos detalles de uso:
tokenizer.json: lo generó transformers 5. Con versiones 4.x puede no cargar; en ese caso, construye RobertaTokenizerFast desde vocab.json y merges.txt con las opciones de tokenizer_config.json (así lo hace AI-Triage).SINTOMA, y es una regla aparte (tipo NegEx) la que la marca como negada.Si usas este modelo, cita el trabajo de grado AI-Triage: asistente inteligente de voz para la clasificación médica automatizada en entornos hospitalarios y de telemedicina (Universidad del Valle, 2026) y los corpus y el modelo base indicados arriba.
PlanTL-GOB-ES/roberta-base-biomedical-clinical-es