Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
public:composant_de_tokenisation [2015/05/06 17:18] matthieu.decorde@ens-lyon.fr |
public:composant_de_tokenisation [2019/02/26 10:30] (Version actuelle) slh@ens-lyon.fr |
||
---|---|---|---|
Ligne 3: | Ligne 3: | ||
===== Objectif ===== | ===== Objectif ===== | ||
- | Améliorer la relation entre la tokenisation et la lemmatisation. | + | Améliorer la tokenisation et la lemmatisation. |
- | ===== Méthode ===== | + | Améliorer la compatibilité entre la tokenisation et la lemmatisation dans le cas de TreeTagger. |
- | Description de la méthode de travail pour atteindre l'objectif. | + | 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' | ||
- | ==== Solution 1 ==== | ||
- | Faire évoluer le tokenizer XML de TXM en intégrant des règles de clitiques (en, fr et it) du script de tokenisation TreeTagger : | ||
- | * Savoir qu'est-ce-qu'une langue | ||
- | * Modifier le script Groovy | ||
==== État de la plateforme ==== | ==== État de la plateforme ==== | ||
Ligne 38: | Ligne 48: | ||
* Unitex | * Unitex | ||
* ... à compléter | * ... à compléter | ||
+ | |||
+ | ==== Solution 1 : SimpleTokenizerXml ==== | ||
+ | |||
+ | === Formats === | ||
+ | |||
+ | == Entrée == | ||
+ | |||
+ | * fichier XML | ||
+ | * pas de w ou w pré-encode certains ou tous les mots; | ||
+ | * quand w : | ||
+ | * les attributs w@PP deviennent des propriétés de mots | ||
+ | * attention, si existant, l’attribut @id doit être conforme au format XML-TXM | ||
+ | |||
+ | == Sortie == | ||
+ | |||
+ | * fichier XML | ||
+ | * w encode tous les mots (pour indexation) | ||
+ | * les attributs encodent les propriétés de mots | ||
+ | * l’attribut @id des w créés est forgé (cf format XML-TXM). | ||
+ | |||
+ | === 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 ==== | ==== Prototypes ==== | ||
Ligne 47: | Ligne 111: | ||
===== Recette ===== | ===== 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 ==== | ==== Protocole de test ==== | ||
=== Alpha === | === Alpha === |