Système de cascades de transducteurs CasEN
pour la reconnaissance des entités nommées

Laboratoire d'informatique de l'Université François-Rabelais de Tours

English version

Présentation de CasEN

Cette mise à disposition de CasEN sur la plateforme Unitex a été réalisée dans le cadre des projet ANR Variling, FEDER Région Centre Entités nommées et nommables, Ortolang et Istex.

La reconnaissance des entités nommées par la cascade d'analyse CasEN utilise des ressources lexicales et des descriptions locales de motifs, des transducteurs qui agissent sur le texte par des insertions, remplacements ou suppressions. Ces actions peuvent éventuellement être itératives. Elles peuvent aussi se faire "à la volée" sur un texte particulier en fonction des résultats des transducteurs précédents. La plateforme Unitex permet une écriture et une maintenance faciles de ces transducteurs en les présentant à l'utilisateur sous forme de graphes. Le principe d'une cascade est de pouvoir utiliser dans les descriptions suivantes les motifs déjà détectés ou, au contraire, d'éviter un étiquetage non souhaité pour un motif déjà reconnu. L'ordre de passage de ces transducteurs est donc un paramètre important.

Les graphes font éventuellement appel à des sous-graphes qui sont :

Des graphes peuvent être construits automatiquement pour le texte étudié à partir de graphes de généralisation d'étiquetage. Ces graphes permettent, par exemple, de retrouver une entité non introduite par le contexte, si cette même entité a été repérée ailleurs dans le texte par un des graphes précédents.

Un exemple de balisage avec CasEN

En lançant la cascade d'analyse de CasEN (CasEN_analyse.csc), la phrase :

Vers le sud, une jetée longue de deux mille mètres s'allongeait comme un bras sur la rade de Suez.

extraite du corpus distribué par Unitex (Le tour du monde en 80 jours, de Jules Verne) va être transformée successivement par :

pour donner (fichier 80jours_snt.raw) :

<s>Vers le sud, une jetée longue de {\{deux mille\,\.num\+type="cardinal"\+1900a2099\+1000a9999\+1a9999\+lettre\+grftoolNombreLettres\},.val} {\{mètres\,\.unit\},.measure+type="length"+grfamountLongueur} s'allongeait comme un bras sur la {\{rade\,\.w\+type="noun"\},.geogFeat+kind+grftagACoteHydronyme} de {Suez,.geogName+grfgeogRiviere}.</s>

Ce format permet l'affichage de la concordance, mais n'est guère lisible, humainement parlant. Pour cela, un autre fichier résultat est disponible dans un format XML-CasSys (fichier 80jours_snt.txt). Cet exemple est alors, aux sauts de ligne près :

<s>
   Vers le sud, une jetée longue de
   <csc>
     <form>
       <csc>
         <form>deux mille</form>
         <code>num</code>
         <code>type="cardinal"</code>
         <code>type="1900a2099"</code>
         <code>type="1000a9999"</code>
         <code>type="1a9999"</code>
         <code>type="lettre"</code>
         <code>type="grftoolNombreLettres"</code>
       </csc>
     </form>
     <code>val</code>
   </csc>
   <csc>
     <form>
       <csc>
         <form>mètres</form>
         <code>unit</code>
       </csc>
       </form>
     <code>measure</code>
     <code>type="length"</code>
     <code>grfamountLongueur</code>
   </csc>
   s'allongeait comme un bras sur la
   <csc>
     <form>
       <csc>
         <form>rade</form>
         <code>w</code>
         <code>type="noun"</code>
       </csc>
     </form>
     <code>geogFeat</code>
     <code>kind</code>
     <code>grftagACoteHydronyme</code>
   </csc>
   de
   <csc>
     <form>
       Suez
     </form>
     <code>geogName</code>
     <code>grfgeogRiviere</code>
   </csc>
   .
</s>

Une séquence reconnue est, d'une part, étiquetée et, d'autre part, figée en une expression polylexicale. Ce balisage peut ensuite être recherché dans Unitex par des masques plus ou moins spécifiques. Par exemple, pour le deuxième graphe de la phrase ci-dessus, <measure> ou <type="length">... Pour faciliter le débogage, nous ajoutons au balisage le nom du graphe qui l'a inséré, préfixé par grf, soit ici grfamountLongueur.

Si la sortie XML-CasSys ne correspond pas au balisage souhaité (ce qui est le cas en général), le fichier _csc.txt peut être ouvert sous Unitex pour le passage d'une deuxième cascade. Ainsi, CasEN est en fait composé de deux cascades, une cascade d'analyse et une cascade de synthèse. Pour notre exemple, et pour la synthèse version TEI (CasEN_synthese_TEI.csc), le résultat de cette deuxième cascade est :

<s>Vers le sud, une jetée longue de <measure type="length" quantity="deux mille" unit="mètres">deux mille mètres</measure> s'allongeait comme un bras sur la <geogName><geogFeat>rade</geogFeat> de Suez</geogName>.</s>

Remarquons qu'en suivant non plus la TEI, mais le guide Istex, le même exemple deviendrait, en changeant seulement la cascade de synthèse (CasEN_synthese_ISTEX.csc), disponible sur la page du projet Istex :

Vers le sud, une jetée longue de deux mille mètres s'allongeait comme un bras sur la rade de <geogName>Suez</geogName>.

Une aide peut vous être apportée pour vous aider à concevoir une cascade de synthèse personalisée, qui correspond à vos attentes en terme d'annotation, ou pour écrire un script qui lance la cascade en dehors de l'interface.

L'ordre des graphes

La cascade elle-même est constituée à partir des îlots de certitude qu'il est possible de trouver... Par exemple, la phrase :

Il est arrivé le 29 février de l'année 2008.

peut être analysée par plusieurs graphes de la cascade d'analyse de CasEN :

Il faut obligatoirement passer graphe timeDateCalendaireAbsolueAnnee avant les deux autres.

Parfois, il ne s'agit pas de concurrence, mais de complément. L'exemple le plus simple est sans doute le graphe des adresses postales qui contient des masques de personne (pour reconnaître rue du Général Leclerc) et de date (pour rue du 11 novembre 1918) : les graphes des dates et ceux des personnes sont donc placés avant le graphe des adresses. De nombreuses organisations comportent aussi des étiquettes de type personne, comme le Centre Georges Pompidou ou l'hôpital Henri Mondor. Ces organisations seront donc reconnues après les graphes de personnes. Ainsi, nous constatons que l'ordre des graphes est capital, mais non trivial.

Les différentes versions de CasEN

La version Ester de CasEN, présentée sur la page du projet FEDER Région Centre Entités nommées et nommables, n'est plus disponible. Il en est de même pour la version Quaero de CasEN, réalisée lors de la campagne ETAPE où CasEN a été classé premier sur la tâche de reconnaissance des entités nommées dans des textes transcrits manuellement. Ces cascades ne sont plus maintenues, suite à la création d'une nouvelle cascade respectant la norme TEI, dans le cadre du projet Ortolang et du projet Istex.

Cette version de CasEN est maintenue. Toute question, remarque ou signalement de bogue peut être envoyé à casen Arobase univ-tours Point fr.

Une discussion sur le choix des étiquettes TEI pour l'annotation des entités nommées se trouve dans :

Le Pevedic S., Maurel D. (2016), Retour sur les annotations des entités nommées dans les campagnes d’évaluation françaises et comparaison avec la TEI, Corela 14-2.

Téléchargement de CasEN

Il est recommandé de mettre à jour Unitex. Il faut obligatoirement travailler au minimum avec la version stable 3.1, mais la version 3.2 alpha (ou 3.2 stable à venir) est recommandée. Pour installer CasEN, décompressez le fichier téléchargé dans votre répertoire personnel Unitex). Les fichiers seront placés directement dans les bon dossiers (French, CasSys, Dela et Graphs).

Pour télécharger CasEN, il faut accepter les termes de la licence LGPL-LR, dont le texte est rappelé sur ce site.

Le téléchargement ci-dessous contient :

Cliquez ici : Télécharger CasEN_fr.1.1.3 (version du 9 avril 2018).

Avant de débuter la cascade, il faut refuser le preprocessing et appliquer les ressources lexicales (Text\Apply lexical resources) en sélectionnant en même temps :

Remarque : Une fois adapté à votre objectif, CasEN peut être lancé en dehors de l'interface, par des scripts qui utilisent les programmes Unitex.

Tutoriels

Des tutoriels pour la prise en main d'Unitex et de CasSys sont disponibles sur ce site.

Pour nous citer

Friburger N., Maurel D. (2004), Finite-state transducer cascade to extract named entities in texts, Theoretical Computer Science, vol. 313, 94-104.

Maurel D., Friburger N., Antoine J.-Y., Eshkol-Taravella I., Nouvel D. (2011), Cascades autour de la reconnaissance des entités nommées, TAL 52-1.

Pour nous contacter

Toute question, remarque ou signalement de bogue peut être envoyé à casen Arobase univ-tours Point fr.