Outils pour utilisateurs

Outils du site


public:palafra_lemmatisation_fro:lemmatisation_spec_v2

Spécification de la lemmatisation en ancien français

Objectif

  1. Apprendre un modèle linguistique d'ancien français (pos, lemme)
  2. Projeter un modèle linguistique d'ancien français (pos, lemme)

On veut pouvoir récupérer les différents candidats pos-lemme avec leur probabilité) lors de la projection des lemmes.

Méthode

On souhaite utiliser dans un premier temps TreeTagger en s'appuyant sur l'infrastructure existante d'annotation de TXM (accessible seulement depuis l'import) :

  • Faire de l'apprentissage depuis TXM
  • Projeter depuis TXM (hors ce qui se fait déjà à l'import)

Ce développement se fait hors tokenisation particulière (il dépend de la tokenisation réalisée pour les corpus servant à la création du modèle et à son application) : ceci sera fait dans une seconde étape (si nécessaire). La cohérence de la tokenisation est vérifiée au niveau du corpus et du lexique d'apprentissage (cf section 'vérifications de la tokenisation').

Solution

Manipulation de dictionnaires

Améliorer le plugin “Dictionnaire” pour implémenter les manipulations nécessaires de la recette : https://groupes.renater.fr/wiki/txm-info/public/specs_dictionnaire

Possibilités d'amélioration :

  • Lors de la création de frolex-tt.tsv que faire des entrées qui n'ont pas de lemme ou nolemme ?

Lemmatisation automatique

implémenter l'apprentissage

Appel de train-tree-tagger :

train-tree-tagger -quiet -st PON -utf8 frolex-tt.tsv openclasses.txt BFMGOLD.tt fro2.par

avec :

  • frolex-tt.tsv le résultat de la conversion du lexique frolex.tsv au format lexique de TreeTagger
  • openclasses.txt la liste des étiquettes du lexique si il est fourni, sinon la liste des étiquettes du corpus d'apprentissage
  • BFMGOLD.tt le corpus d'apprentissage construit à partir du corpus BFMGOLD

Contraintes TreeTagger :

  • ERROR: Tag “VER” replicated in lexicon entry for “(en)hastees” at line 9
    (en)hastees	VER enhanster1/enhaster2	VER enhanster	VER hasta
    • On concatène les lemmes avec “|” comme séparateur
  • l'ordre des couples pos-lemme a t'il un role ??

Possibilités d'amélioration :

  • lancer le recodage de la propriété 'word' dans une autre propriété 'word-min', en minusculisant ?
  • l'étiquette pos PONfrt est transformée en PON
    • TreeTagger n'a pas forcement besoin de l'option “-st”
    • seule une partie de BFMGOLD est équipée de balisage des phrases
    • On conserve donc les étiquettes de ponctuations fortes lors des conversions de pos (cattex → dmf, nca → dmf, .etc)

implémenter la lemmatisation

Ajouter des options pour activer les modes treetagger suivant :

	-pt-with-lemma:	pretagging with lemmata
	-pt-with-prob:	pretagging with probabilities

Le but, avoir plusieurs propositions de lemme avec leur probabilités

Vérification du lexique

le lexique doit être complet :

  • doit contenir toutes les formes du corpus d'apprentissage
  • doit contenir tous les couples : pos-lemme

Vérification de l'application du modèle sur son corpus d'apprentissage

pour 283k “no_lemma”

  • les ponctuations ont pour lemme “no_lemma” soit ~100k pour 1M tokens (30% de no_lemma actuellement)
    • elles ne sont pas dans le DMF
    • elles sont dans AFRLEX mais ont le lemme “nolem”
    • [frlemma2="<no_lemma>" & word="\p{P}+"]
  • les numérotation romaines du type .XXX. n'ont pas de lemme non plus soit ~3k pour 1M tokens
    • [frlemma2="<no_lemma>" & word="\..+\."]
  • les mots commençant par une majuscule, soit 108k “no_lemma”
    • [frlemma2="<no_lemma>" & word="\p{Lu}.*"]
  • le reste
    • [frlemma2="<no_lemma>" & word!="\..+\." & word!="\p{Lu}.*" & word!="\p{P}+"]

Tickets et cibles réalisant les solutions

Recettes

Création et application de modèle

  1. installer TXM 0.7.8 et TreeTagger
  2. fermer et rouvrir TXM pour pouvoir accéder à la fonctionnalité de mises à jour
  3. mettre à jour TXM avec l'update site Palafra :
    1. ajouter le site de mise à jour spécifique de Palafra : http://textometrie.ens-lyon.fr/dist/palafra en utilisant la commande “Fichier / Ajouter une extension tierce”, cliquer sur Ajouter et coller l'URL dans le champ “Emplacement”.
    2. lancer la mise à jour (on récupère les extensions TreeTagger et Dictionary en passant)
  4. préparer le lexique 'frolex' (frolex → lexique TreeTagger)
    1. créer le dictionnaire 'frolex'
    2. lui appliquer la commande “Dictionary > TreeTagger export” du menu principal avec les paramètres suivants :
      • name = frolex
      • pos = msd_cattex_conv2
      • lemma = lemma
      • tsvfile = …/frolex-tt.tsv
    3. Exporter le résultat dans un fichier frolex-tt.tsv à coté du fichier frolex utilisé
  5. importer BFMGOLD (comprenant les textes avec cattex2009 entièrement vérifié dans la propriété w@pos) avec le module XTZ :
    • répertoire : BFMGOLD
    • nom : BFMGOLD
    • paramètres :
      • ne pas tokenizer
        • <w> est la balise de mots
      • annoter avec : fro.par (ancien modèle)
      • plans textuels
        • hors texte à éditer : front,head,note,speaker,foreign
        • hors texte : teiHeader,facsimile
  6. sélectionner le corpus BFMGOLD
  7. lancer le Recodage de la propriété pos sur le corpus BFMGOLD (dégradation de cattex) (Commande Corpus / Recoder le corpus):
    • le “Mode avancé” doit être activé depuis la page de préférence “TXM > Avancé”
    • table de conversion (conversionFile): conv ctx9 ctx9-dmf.tsv et abandonner si un type n'a pas de conversion
    • oldType : pos
    • newType : cattexconv2
    • gestionInconnus : abandon
  8. diagnostic des tokens
    1. faire l'index de la propriété word du corpus BFMGOLD Vérifier les paramètres suivants!!!
      1. Requête CQL : []
      2. Exporter l'index dans le fichier BFM-word.tsv
    2. créer un dictionnaire vide BFM-form à partir du contenu de l'index word créé
      1. Commande Dictionary / Import from index
    3. vérifier les points sensibles suivants entre frolex et BFM-form en filtrant les lignes à l'aide de la commande “grep” en ligne commande sur le fichier de sortie :
      • regexp : “['’ \-]”
        • des apostrophes (' et ’)
        • des trait-d'unions (-)
        • des espaces blancs (par exemple “a priori”)
  9. lancer la commande “TreeTagger > Train” du menu principal et remplir le formulaire
    • model : chemin vers le fichier fro2016-lemma.par à créer
    • propriété 'pos' à utiliser : msdconv2
    • étiquette des marques de fin de phrase : PONfrt
    • propriété lemma à utiliser : lemma
    • lexique : sélectionner le fichier du lexique frolex-tt.tsv
    • options : rien
  10. lancer la commande “TreeTagger > Apply” du menu principal et renseigner les paramètres :
    • model : chemin vers le fichier que l'on vient de créer avec la commande Train : fro2016-lemma.par
    • posProperty : fro2pos
    • lemmaProperty : fro2lemma
      → le corpus est mis à jour avec les annotations
    • options : rien
  11. faire 2 index sur le corpus avec les requêtes suivantes :
    • [pos != fro2pos]
    • [fro2lemma != "<no_lemma>"]

Mise à jour de l'actuel modèle fro.par

fro.par a été construit avec le XXXXX constitué des textes A,B,C,D pour XXX millions de mots.

On peut mettre à jour le modèle avec BFMGOLD constitué de 1,14 Millions de mots pour 38 textes vérifiés.

  1. Importer BFMGOLD
  2. Sélectionner le corpus
  3. lancer la commande “TreeTagger > Train” du menu principal et remplir le formulaire
    • model : chemin vers le fichier fro2016.par à créer
    • propriété 'pos' à utiliser : type
    • étiquette des marques de fin de phrase : PONfrt
    • propriété lemma à utiliser : lemma
    • lexique : “lexique”
    • options : rien
  4. lancer la commande “TreeTagger > Apply” du menu principal et renseigner les paramètres :
    • model : chemin vers le fichier que l'on vient de créer avec la commande Train : fro2016.par
    • posProperty : fro3pos
    • lemmaProperty : fro3lemma
      → le corpus est mis à jour avec les annotations
    • options : rien
  5. faire 2 index sur le corpus avec les requêtes suivantes :
    • [type != fro2pos] → On trouve 6% d'erreur
    • [type != fro3pos] On trouve 4% d'erreur
    • [fro2pos != fro3pos]

Comparaison avec le corpus GOLD de lemme

SBATH1 contient le texte Sbath1.xml lemmatisé et vérifié : smb://ensldfs.ens-lyon.fr/services/Laboratoires/labo_ana_corpus/Projets/BFM/Projets/PaLaFra/chantiers/lemmatisation_fro/SBath

  1. Importer avec XTZ avec les même paramètres que pour BFMGOLD
    • fropos et frolemma sont créés et contiennent le résultat de l'application de fro.par
  2. Une fois l'import fini, appliquer TreeTagger sur le corpus avec 'fro2.par'
    • fro2pos et fro2lemma sont créé et contiennent le résultat de l'application de fro2.par
  3. faire le lexique de fro2lemma
  4. faire 1 index sur le corpus avec les paramètres suivants :
    • requête : [lemma != fro2lemma]
public/palafra_lemmatisation_fro/lemmatisation_spec_v2.txt · Dernière modification: 2017/10/05 14:20 par alexei.lavrentev@ens-lyon.fr