Accueil > Programmes > Hprimator > Algorithme 2 : Balisage
Algorithme 2 : Balisage
dimanche 8 décembre 2013, par
SECOND PASSAGE RECHERCHE DE BALISES PRÉDÉFINIES
Chaque champ clef peut être repéré par une Balise qui le précède
RÈGLES GÉNÉRALES DE TYPOGRAPHIE D’UN COURRIER MÉDICAL
Un courrier médical est en général constitué d’une entête qui renseigne sur l’émetteur
- L’analyse de l’entête (c’est à dire les premières lignes) permet le plus souvent d’argumenter le type de courrier
Par exemple :
Docteur Machin
RADIOLOGUE
MAMMOGRAPHIE
La personnalisation de la reconnaissance par Balisage, permet d’établir une "banque de Balises" spécifique à chaque type de courrier
EN CLAIR :
A chaque "type de courrier reconnu", notre algorithme créer un dossier spécifique, dans lequel vont être rangés des fichiers de balises. (banque)
Si le type n’est pas reconnu, c’est la banque "par défaut qui est utilisée"
La banque par défaut correspond à une banque "universelle", car elle contient "toutes les balises"
- Son avantage est qu’elle peut pallier à toutes les situations
- Son inconvénient est qu’elle est moins rapide (puisqu’elle a le maximum d’entrées)
- Et que la profusion des balises inadéquates peut générer de la confusion, sur des textes complexes ou mal traduits
Par exemple un type d’expressions employées usuellement par le Dr MACHIN
La plupart du temps la phrase magique suit l’entête, "magique" car elle contient à elle seule, tous les renseignements utiles à la reconnaissance précise du patient
La Ligne magique !
Compte rendu de Mme DUPONT Marie née le 14/07/1989 (75 ans). |
LE NOM
Compte rendu de "Mme" DUPONT Marie née le 14/07/1989 (75 ans). |
- Est le plus souvent annoncé par une Balise de civilité (Mme, Mlle , Mr.)
- Précède en général le prénom
- Est normalement écrit entièrement en MAJUSCULES
Voilà une liste non exhaustive des balises facilement retrouvées pour annoncer un NOM
Un classement par Taille décroissante (du plus complexe au plus simple) montre plus de pertinence dans la mise en oeuvre de l’algorithme
Des outils de classement automatisé (et manuel) des Balises par pertinence doivent être inclus dans le programme
NOTE :
On y trouve par exemple la Balise "Mine", car il ne faut pas oublier que l’OCR est un robot semi stupide, qui tente d’interpréter ce qu’il voit, et si la première jambe du "m", est couverte par une poussière, il va interpréter un i et un n au lieu d’un m
Chaque balise doit donc pouvoir être corrigée et rajoutée en temps réel (au moment de la lecture du document), la définition de l’algorithme intelligent étant d’apprendre en même temps qu’on l’utilise.
Le Prénom
Compte rendu de Mme "DUPONT" Marie née le 14/07/1989 (75 ans). |
- Le prénom suit le Nom
- Sa casse habituelle est du type "Capitale" avec une 1ere lettre en majuscule
- Sa Balise implicite est le NOM
- Par rapport aux noms de famille dont la liste est quasi infinie, la liste des prénoms usuels peut être prédéfinie et servir de référence
Voila la liste des 700 prénoms usuels personnels collectés en 25 ans de pratique
Ils sont essentiellement féminins car il correspondent à l’activité d’un cabinet de gynécologie.
On remarque qu’on a le plus souvent supprimé les diacritiques (les accents étant parfois mal reconnus par l’OCR) Utilisation des fonctions logicielles SoundEx ...
La Date de Naissance
Compte rendu de Mme DUPONT Marie "née le" 14/07/1989 (75 ans). |
- Suit le prénom
- Termine souvent la ligne (parfois suivi de l’âge)
- Facilement balisée par des expressions de type "né(e) le
- Malheureusement formatée de façon fantaisiste, en chiffres, en lettres ou en mix des 2
14/07/1789 |
14.07.1789 |
14-07-1789 |
14 juillet 1789 |
mercredi 14 juillet 1789 |
1er décembre 1912 |
Liste des balises courantes pour DDN
Dans la gestion des algorithmes probabilistes vite faits,
En supposant que la reconnaissance des caractères soit quasi parfaite
il suffit de trouver dans un texte la ligne magique qui contient "né(e) le"
Avec à sa gauche :
- Le Nom c’est l’expression qui est toute en majuscules
- Le prénom c’est ce qui reste et dont la première lettre est une Majuscule, mais qui n’est pas une balise
Et à sa droite :
- La date de naissance
Dont la gestion est facile si elle ne contient que des chiffres)
La Date
On retrouve avec la date du courrier la même fantaisie qu’avec la date de naissance
- l’avantage est qu’on va se servir du même algorithme de débrouillage
- L’inconvénient est que la secrétaire fantaisiste dans ses dates est souvent également instable dans ses fantaisies...
Sachant que si le courrier est récent et que son traitement se fait en temps réel, on peut très bien mettre la date du jour par défaut.
if Date = ’’ then Date := DateToStr(Now) ; |
Voici les balises habituelles de date :
NB : Dans notre algorithme l’accent circonflexe,
^LE |
signifie que la Balise doit obligatoirement se trouver en début de ligne
StrLeft( ligne,3 ) = ’LE ’ |
^LE | "début" de ligne | cherche mot qui suit |
LE^ | fin de "ligne" | cherche mot qui précède |
_LE | Espace avant | mot suivant |
LE_ | espace après | mot suivant |
_LE_ | Espaces avant et après | Mot Suivant |