Partager

CasEN


Présentation de CasEN

Cette mise à disposition de CasEN sur la plateforme Unitex a été réalisée dans le cadre des projet  ANR VarilingFEDER Région Centre Entités nommées et nommablesOrtolang 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 :

  • Soit des graphes plus spécifiques pour lesquels un passage en cascade est inutile. Par exemple le graphe amount.grf appelle des sous graphes reconnaissant différentes mesures (monnaie, température, longueur, etc.).
  • Soit des graphes outils qui opèrent différentes reconnaissances ou transformations utilisées par la suite.
  • Soit des graphes comprenant :
    • des listes de mots utilisés dans un contexte particulier. Ces listes peuvent éventuellement être étiquetées.
    • des expressions régulières ou des masques Unitex pour sélectionner des mots commençant par une majuscule, des contraintes morphologiques, etc.

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 :

  • le graphe toolNombreLettres qui identifie les nombres écrits en toutes lettres ;
  • le graphe amountLongueur qui identifie les longueurs ;
  • le graphe tagACoteHydronyme qui identifie certains lieux proches d'un hydronyme ;
  • le graphe geogRiviere qui identifie les rivières ;

pour donner (fichier 80jours_snt.raw) :

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}.
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. 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 CasEN-Istex :
Vers le sud, une jetée longue de deux mille mètres s'allongeait comme un bras sur la rade de Suez.
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 :

  • timeDateCalendaireAbsolueAnnee reconnaît la séquence entière, le 29 février de l'année 2008 ;
  • timeDateCalendaire reconnaît le début de la séquence, le 29 ;
  • timeAnneee reconnaît la fin de la séquence, l'année 2008.

Ces trois graphes reconnaissent la date ou une partie de la date. Si ceux qui reconnaissent une partie de la date sont passés en premier sur le texte, les balises qu'ils auront insérées empêcheront le graphe timeDateCalendaireAbsolueAnnee de reconnaïtre la date entière. C'est pourquoi, celui-ci doit obligatoirement être passé 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.

Deux cascades spécifiques au projet Istex (pour le français et pour l'anglais) sont disponibles sur ce site.

Téléchargement

Il est recommandé de mettre à jour Unitex. Il faut obligatoirement travailler avec la version stable 3.2 ou une version ultérieure. Depuis la version 3.2, Unitex permet une utilisation efficace des scripts utilisant des programmes Unitex (voir le chapitre 13 du manuel).

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 principalement cinq fichiers (ainsi que des exemples permettant des tests) :

  • CasEN_lingpkg.zip : Un package linguistique contenant l'ensemble des fichiers nécessaires à CasEN. Ce fichier est un fichier.zip, mais ne doit pas être dézippé. Il est commun à tous les systèmes d'exploitation.
  • multiLancementDeCasEN_TEI.bat et multiLancementDeCasEN_MUC.bat : Deux scripts, à adapter à son ordinateur, pour traiter tous les fichiers d'un dossier. Résultats respectivement au format TEI ou MUC.
  • lancementDeCasEN_TEI.bat et lancementDeCasEN_MUC.bat : Deux scripts, à adapter à son ordinateur, pour traiter un fichier. Résultats respectivement au format TEI ou MUC.

Le script multiLancementDeCasEN_TEI.bat contient la ligne suivante :

"C:\Program Files (x86)\Unitex-GramLab\App\UnitexToolLogger.exe" { BatchRunScript -i .\OrigineCasEN -e -o .\ResultatsCasEN_TEI -t1 .\CasEN_CasFIN_lingpkg.zip -f -s script\CasEN_TEI.uniscript }

C:\Program Files (x86)\Unitex-GramLab\App\UnitexToolLogger.exe est l'adresse complète du chemin menant au programme UnitexToolLogger (à modifier si besoin).

Le script multiLancementDeCasEN_MUC.bat est identiques au précédent, mais lance la version MUC de CasEN. On trouvera dans la distribution d'autres synthèses pour un résultat au format CONLL et DREADING.

Remarque : l'option -e supprime l'extension d'origine. L'option -t1 précise qu'un seul cœur est utilisé et peut être remplacée par -t2, -t3... si le nombre de fichiers à traiter est important et si l'ordinateur possède plusieurs cœurs. Ces scripts sont des scripts Windows à adapter pour les autres systèmes d'exploitation (Mac, Unix...).

Les scripts lancementDeCasEN_TEI.bat et lancementDeCasEN_MUC.bat sont identiques aux deux précédents, mais ne lancent CasEN que sur un seul fichier. Ils sont en mode verbose.

Cliquez ici : Télécharger CasEN_fr.2.0 (version du 18 mars 2024).


Utilisation (et modification possible) de CasEN via l'interface d'Unitex

Il est possible d'adapter les cascades CasEN en utilisant l'interface d'Unitex. Pour cela, il faut ouvrir le fichier CasEN_lingpkg.zip, puis le dossier resource et fusionner le dossier French qui s'y trouve avec le dossier French de votre répertoire personnel Unitex. Les fichiers seront placés directement dans les bon dossiers (CasSys, Dela et Graphs).

Cette fusion ajoute dans votre répertoire French l'ensemble de notre travail concerant CasEN et CasFin.

Remarque : les chemins indiqués dans les fichiers de cascade sont à la mode Windows, c'est-à-dire qu'ils comportent des antislashs. Les utilisateurs d'un autre système d'exploitation (par exemple, un Mac), auront peut-être à remplacer les antislashs par des slashs.

Avant de débuter la cascade, il faut refuser le preprocessing et appliquer les ressources lexicales par défaut (Text/Apply lexical resources).


Hybridation de CasEN et CasFin

Le téléchargement ci-dessus contient aussi quatre scripts qui permettent le découpage en phrases, y compris imbriquées, proposé par CasFin et la reconnaissance d'entités nommées, proposée par CasEN. Ce sont, d'une part, les scripts lancementDeCasENCasFIN_texte_brut.bat et lancementDeCasENCasFIN_texte_XML.bat, et, d'autre part, les scripts multilancementDeCasENCasFIN_texte_brut.bat et multilancementDeCasENCasFIN_texte_XML.bat. Le résultat de ces scripts est au format TEI.


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.