BlueGEEK Journal

Accueil > Programmes > Hprimator > A quoi ça sert tout ça ?

A quoi ça sert tout ça ?

mardi 24 décembre 2013, par bluegyn_spip


Réflexion sur la théorie probabiliste appliquée à la reconnaissance des documents, et énoncé des règles de base selon Bayès, Occam, Sherlock Holmes et Harry Poter.


Le principe est de créer un moteur d’intelligence artificielle, capable d’analyser le contenu d’un document, pour en extraire 4 informations clefs

- NOM
- PRÉNOM
- DATE DE NAISSANCE
- DATE DE RÉDACTION

Le gros problème est la qualité de la Numérisation, car si certains documents sont très faciles à convertir (Bien écrits, bien présentés d’autres sont de vrais parcours du combattants, notamment les courriers hospitaliers, et les résultats de laboratoire, qui contiennent une quantité phénoménale de symboles à traduire sans aucun intérêt informatif, comme la liste exhaustive du personnel soignant sur plusieurs colonnes, ce qui est un casse tête logiciel, les colonnes étant déplacées selon l’humeur du programme OCR, au début, à la fin ou en plein milieu du corps informatif) Pour les labos, rien ne remplace HPRIM et APICRYPT

Je précise que je n’utilise pas le format PDF avec HPRIMATOR, (trop complexe) mais la conversion des PDF en RTF grâce à OMNIPAGE

Pour les inconditionnels du PDF (il faut bien entendu du PDF Textuel Indexé), son utilisation nécessite un copié du texte :

CTRL+A CTRL+C

(pas de collé, le programme est en effet capable de lire tout seul le presse papier pour y récupérer le texte qui s’y trouve)

TRUC

Pour plus d’ergonomie il suffit de brancher le raccourci CTRL+C sur l’un des boutons de sa souris (à condition de posséder une souris programmable)

Il faut donc choisir une Qualité de numérisation assez élevée, (faire des tests avec OMNIPAGE) ce qui n’augmente pas trop la taille des PDF, mais grève un peu le temps de numérisation


Document PDF RTF Hprimator HPRIM Dossier

En appliquant au courrier la logique Heuristique décrite par Thomas Bayès,
à partir de l’étude de milliers de lettres scannées au cabinet, se dégage le concept de :

"Ligne Magique"

La ligne du Poker magique est la ligne du document qui contient "au moins 2 des renseignements clefs", qui sont nécessaires et suffisants pour reconnaitre "à coup sûr" l’identité du patient (Le NOM et le PRÉNOM, la date de naissance servant à discriminer les homonymes)

Cette ligne magique se reconnait selon Holmes, par un indice de forte valeur diagnostic positive, ou par l’association d’au moins 2 indices de valeur moyenne.
La valeur d’un indice porte le nom dans les théories heuristiques de Bayès de :

Rapport de Vraisemblance

Un exemple de cette Ligne Magique parfaite serait :

Mme DUPONT Marie né(e) le 14/07/1789

Avec cette simple ligne je peux identifier un patient à coup sûr parmi des millions

L’algorithme Bayésien se contentera de 2 critères pour atteindre la Certitude et de 1 seul pour une approximation plausible (tout dépend du fameux RV du critère)

par exemple si dans le texte je trouve une ligne qui contient "à la fois Mme et née(e) le :"

Si ( Ligne_contient ( "Mme" ) ET Ligne_Contient ( "né(e) le") )
=> ALORS Cette_Ligne = MA_LIGNE_MAGIQUE ;


- "née(e) le" possède un RV fort, car il est "fort à parier" qu’une lettre ne contienne qu’une seule fois cette expression, et il est fort à parier que c’est précisément autour de l’expression "né(e) le" que l’on "risque le plus de trouver aussi" un Prénom puis un Nom.
- "Mme" possède un RV modéré, car il est assez probable qu’on le retrouve en plusieurs endroits d’un courrier, et qu’il faudra donc obligatoirement l’associer à un second critère pour localiser les autres renseignements spécifiques.

(Il existe par exemple des lignes d’entête qui disent "Double à Mme le Docteur Marie DURAND", il nous faut donc impérativement une date en plus pour trouver la "bonne Marie", puisqu’on a vu avec les Aléas de l’OCR que les entêtes ne sont pas toujours placées au début du document

Il me suffit ensuite d’en déduire que le NOM est le premier mot qui suit "Mme" et le le PRÉNOM est le premier mot qui suit le NOM que je viens de trouver


Sauf si le NOM est un Prénom et que le Prénom n’en est pas un, auquel cas je sais (toujours selon Bayès) qu’il faut intervertir les 2 :

Si ( Est_Prénom (NOM) ) ET ( PAS Est_Prénom ( PRENOM ) )
=> ALORS ( PRENOM = NOM ET NOM = PRENOM )

Mme "Marie DUPONT" sera donc automatiquement convertie en "DUPONT Marie" par notre H’@tor

Si NOM et PRÉNOM sont tous les 2 des prénoms (Exemple DAVID Vincent") l’algorithme probabiliste nous demande de lire la seconde lettre du mot, si c’est une Majuscule => alors c’est un probablement un NOM, si c’est une Minuscule => Alors c’est probablement un Prénom (DAVID Vincent c’est Monsieur DAVID, David VINCENT c’est monsieur VINCENT)

Reste ensuite à gérer la situation complexe du Double NOM et du Double PRENOM

- Le Double prénom est assez simple à reconnaitre car c’est "un Prénom qui suit LE PRENOM"

DOUBLE_PRENOM = EST_UN_PRENOM ( Mot_Qui_Suit( PRENOM ) ) ;

- De même le Double-Nom s’écrirait

DOUBLE_NOM = PAS EST_UN_PRENOM (Mot_Qui_Suit ( NOM ) ) ;

D’où l’importance cruciale d’une bonne numérisation !

Imaginons maintenant une ligne magique imparfaite car implicite (Elle est toujours magique car elle contient 3 arguments forts, mais elle n’est plus explicite, car elle ne contient pas de balises d’orientation)

DUPONT Marie (14/07/1789)

L’algorithme heuristique exprimé simplement après analyse de milliers de résultats nous dit que la Ligne Magique est celle qui contient à la fois une Date ET un Prénom

MA_LIGNE_MAGIQUE = Ligne_qui_contient ( mot = Prénom ) ET Ligne_Qui_Contient (mot = Date ) ;

A partir de la il ne me reste plus qu’à trouver le NOM qui est en général à gauche du Prénom (c’est presque plus simple que la version explicite)
Comme une partie de Poker, on supprime le cartes qu’on a déjà abattues et on voit ce qui reste ...

Le concept de ligne magique suppose que dans un texte on sache reconnaitre un "Prénom" (ce qui est très simple puisqu’il suffit d’en faire une liste, qui n’excède pas en pratique 1000 entrées) et que l’on sache reconnaitre le format d’une DATE. La c’est déjà plus compliqué car entre les 14/07 les 14-07 les 14.07 et les 14 Juillet, une chatte n’y retrouve plus ses petits, surtout si les aléas de l’OCR interprètent mal les chiffres et les séparateurs...

OCCAMISATION

La question complexe :
- "comment reconnaitre un patient unique parmi des millions" devient maintenant selon les préceptes énoncés par ce raseur d’OCCAM
- "Comment reconnaitre, dans une lettre qui contient des centaines de mots, un Prénom et une Date qui lui est attachée"


Ensuite on s’amuse :

Si le texte ne comporte pas de ligne magique

Par exemple

DUPONT

Marie

14/07/1789

Comment trouver au hasard le Nom, le Prénom et l’âge du capitaine

On peut définir un "Espace Magique" entre 2 dates : dont la première a en général moins d’un an et la seconde a en général plus d’un an (l’âge d’une date étant définit par le nombre d’unités de temps qui la séparent de la date du jour)
On constate d’ailleurs que la date de rédaction est avec quasi certitude la date qui suit immédiatement un nom de ville

Date de rédaction = Date dans Ligne (Qui_Contient (VILLE) ET Qui_Contient_Date)

Exemple d’un espace magique

Lorient, le "22/12/2013"

DUPONT

Marie

née DURAND

à Trifouilly

"14/07/1789"


Sachant extraire des dates, je trouve le prénom dans cet espace car c’est LE MOT QUI APPARTIENT A LA LISTE DES PRÉNOMS
Une fois trouvé le prénom je décale le curseur à gauche pour lire le NOM


On remarque ici une situation rare et complexe, nous avons 2 dates et 2 villes
La lecture intelligente des données doit donc faire référence à l’age des Dates, sachant que la date de naissance (et donc la ville de naissance est très probablement la plus ancienne)
Et que la date de rédaction est très probablement la plus récente
Il faut se méfier des références à la date en cours, car si je scanne un dossier médical ancien, je peux très bien avoir des courriers qui ne datent pas de l’année en cours.

Comme aucune des méthodes n’est parfois suffisante pour isoler la totalité des champs significatifs d’un document complexe, il convient de réaliser une association des méthodes en effectuant plusieurs passages,chaque nouveau passage récoltant son nouvel indice, qui va servir de base à la recherche suivante...


Mais à quoi ça sert tout ça ?


Madame DUPONT vient en consultation avec sa MAMMO
je passe la mammo au scanner qui me sort le document

2013_12_22_14_00_01.PDF

Facile a retenir quand Madame DUPONT est en face de moi, mais dans 8 jours, dans 20 ans ?

HPRIMATOR lit ce document, y trouve automatiquement les 4 renseignements clé et fait 2 choses

- 1- Il renomme automatiquement le fichier
- 2- Et il le convertit au format HPRIM

DUPONT Marie (14-07-178) CABINET DE RADIOLOGIE [22-12-2013] 2013_12_22_14_00_01.TXT

ce qui permet de l’intégrer automatiquement dans la consultation du jour, par simple clic sur l’entrée HPRIM du logiciel métier.

Que se soit le jour même ou 20 ans plus tard, car le document et le patient sont maintenant intiment liés de façon explicite (le nom) et de façon implicite (le format HPRIM)