Views
No views yet
veuve) ou en diffère (« patiente » → femme, « le 8 avril 2017 » →
2017-04-15, « phénotype non germinal » → NGC).pip install gliner2 torch huggingface_hub1from modeling_assign import ECRFExtractor # fourni dans ce dépôt
2
3m = ECRFExtractor.from_pretrained("rntc/mc-bio-gliner-lymphome-ecrf", device="cuda")
4ecrf = m.extract(open("dossier.txt").read())extract rend, pour chacun des 81 champs non textuels :1{
2 "value": "2017-04-15", # None si le modèle s'abstient
3 "span": "le 8 avril 2017", # span source
4 "start": 1247, "end": 1262, # offsets caractère dans le texte
5 "confidence": 0.83, # masse agrégée de la valeur ; sert au seuillage
6 "normalization_confidence": 0.97, # confiance de la normalisation span -> valeur
7 "source": "text" # ou "vocabulary"
8}source = "text" : la valeur provient d'un span du document, dont les offsets sont fournis.
Elle passe par une étape de normalisation, qui peut la laisser inchangée ou la réécrire ;
elle ne figure donc pas nécessairement telle quelle dans le texte.
source = "vocabulary" : la valeur provient de l'ensemble des valeurs observées à
l'entraînement pour ce champ, sans span source ; span vaut None et les offsets -1.value suit la décision du modèle. Les autres clés décrivent le meilleur candidat, y compris
lorsque value est None : un seuil différent peut donc être appliqué a posteriori sans
réexécuter le modèle. extract_values(texte) rend {champ: valeur}.python predict.py --demo| système | macro | CAT | DATE | NUM | ORD |
|---|---|---|---|---|---|
| même encodeur, sans les têtes | 0.487 | 0.430 | 0.307 | 0.537 | 0.673 |
| Qwen3.5-9B finetuné sur les mêmes 1 540 documents | 0.582 | 0.488 | 0.447 | 0.590 | 0.791 |
| ce modèle | 0.786 | 0.817 | 0.684 | 0.765 | 0.877 |
rntc/lymphome-synth-v5-eval.