Composant de tokenisation

Objectif

Améliorer la tokenisation et la lemmatisation.

Améliorer la compatibilité entre la tokenisation et la lemmatisation dans le cas de TreeTagger.

Améliorer la relation entre la tokenisation et le formatage des mots dans les éditions.

Spécification

Gestion des tirets

Il faut gérer les clitiques :

  • avez-vous : OK
  • est-t-il : ???

Il faut gérer des caractères avec espaces avant et après dans l'édition :

  • 'GP de visages de prisonniers- Pano sur un libéré marchant sur une route de campagne' → 'GP de visages de prisonniers - Pano sur un libéré marchant sur une route de campagne'

Il faudrait gérer des caractères dont la gestion typographique dans la source est différente de cette réalisée dans l'édition par défaut :

  • 'GP de visages de prisonniers- Pano sur un libéré marchant sur une route de campagne' → 'GP de visages de prisonniers- Pano sur un libéré marchant sur une route de campagne'

État de la plateforme

Il existe plusieurs Tokenizers :

  • SimpleTokenizerXml* : utilisé par tous les modules sauf XML-TEI-BFM
  • TeiTokenizer : réécriture plus générique du tokenizer (filtre) de la BFM pour la TEI.
  • TokenizerXML : règles de Tokenisation (avant,après, …)
  • TTTokenizer : réécriture non-terminée du tokenizer TreeTagger (tokenize.pl)
  • TranscriberTokenizer* : Tokenize les entités nommées (Event=XXX) et les marques spéciale d'oralité (ex : !)
  • Tokeniser* (et OneTagPerLine) : filtre de tokenisation utilisé par l'import BFM

* : tokenizer couramment utilisé par les modules d'import

Avancement dans l'élaboration de la solution

Solution

État de l'art

  • Lucene
  • OpenNLP
  • Flex ou JavaCC
  • Unitex
  • … à compléter

Solution 1 : SimpleTokenizerXml

Gestion de la langue

Pour améliorer la lemmatisation TreeTagger pour les langues (en, fr, ga et it).

Faire évoluer le tokenizer XML de TXM en intégrant les règles de tokenization des clitiques des langues (en, fr, ga et it) du script Perl de tokenisation TreeTagger.

La langue de tokenisation est réglée dans le formulaire d'import (fichier import.xml).

Le tokenizer utilise les 2 premières lettres de la langue indiquée (ex : fro → fr) pour pouvoir déclencher la tokenisation propre à une langue tout en ayant des variantes de fichiers paramètres TreeTagger pour une même langue (eg tous les fichiers paramètres du français - partageant les mêmes règles de segmentation du français - doivent avoir un nom commençant par 'fr').

Gestion des classes de caractères

On découpe le flux de caractères par les classes suivantes pour obtenir les mots :

  • Caractères séparateurs
    • Espaces
    • Ponctuations
  • Caractères d'élision
  • Caractères de fin de phrase

Il faut au moins qu'une classe de séparateur soit définie.

Si une classe n'est pas défini, on ne l'utilise pas pour découper le flux (ticket #1878).

Corpus de test

Établir un corpus de test stable qui contient tous les cas que l'on souhaite :

  • plans textuels : hors texte
  • ponctuations
  • nombres
  • mot pré-balisés
  • blancs séparateurs de mots
  • clitiques : it, fr et en

le résultat de la tokenisation du corpus stable doivent être sauvegardés pour pouvoir être comparés quand le code du tokenizer changera.

Prototypes

Version finale

Documentation

Utilisateur

Développeur

Recette

Recette de la solution 1

  • Vérifier que les enclitiques fr et en de TreeTagger sont bien tokenisés :
    • EN (en priorité) avec le corpus NYSAMPLE (import XML/w+CSV, sources et binaire déposés dans SpUV/NY) :
      • FClitic = '(s|re|ve|d|m|em|ll)|n\'t

Plus tard :

  • FR (ensuite) avec le corpus GRAAL (import XML/w) :
    • FClitic = '-t-elles?|-t-ils?|-t-on|-ce|-elles?|-ils?|-je|-la|-les?|-leur|-lui|-mmes?|-m\'|-moi|-nous|-on|-toi|-tu|-t\'|-vous|-en|-y|-ci|-l'

Protocole de test

Alpha

Beta

État courant

public/composant_de_tokenisation.txt · Dernière modification: 2018/04/05 14:27 par slh@ens-lyon.fr