Spécification de l'annotation lexicale automatique

Objectif

Améliorer l'annotation lexicale automatique.

Cela concerne :

  • la tokenisation : composant de tokenisation (format des sources - dont TEI, interférence avec la segmentation en phrases orthographiques, mots simples ou composés, gestion des clitiques, des contractions “du” = “de le”, des segments disjoints “ne … pas”, des cas particuliers “parce que”, “aujourd'hui”…)
  • l'étiquetage morphosyntaxique
    • améliorer les performances
    • améliorer l'intégration des outils externes (eg TreeTagger)
      • pouvoir déléguer la tokenisation à l'outil externe (pour qu'il étiquette sur sa propre tokenisation)
      • catalogue de modèles linguistiques utilisés par ces outils associant langue et modèle
      • création d'extensions par outils externes (pouvoir choisir son étiqueteur et l'installer facilement)
      • gestion des dépendances entre outils d'annotation externes, jeux d'étiquettes et commandes TXM
    • améliorer l'intégration des systèmes d'étiquettes : interfacer les commandes avec un jeu uniforme
      • possibilité d'importer la description du jeu d'étiquettes utilisé par un corpus au moment de l'import (pour construire des interfaces adaptées : UI ou API). Voir par exemple la définition formelle très simple (plate) du jeu CATTEX http://bfm.ens-lyon.fr/IMG/xml/cattex2009.xml
      • possibilité de conversion d'étiquettes entre jeux importés et un jeu uniforme (comme Multext) (voir la table de conversion CATTEX→Multext par exemple)
      • possibilité d'interfaces entre commandes et jeux : par exemple expressions CQL des mots-outils par jeu d'étiquette
  • la lemmatisation : composant de lemmatisation
  • la relation à d'autres annotations (syntaxe, entités nommées…)
  • les stratégies de configuration de surfaces variables (absence de la ponctuation pour certains moteurs)
  • les possibilités de correction de tokenisation-étiquetage-lemmatisation
  • les possibilités de mutualisation d'outils externes, de lexiques ou de corpus d'apprentissage
    • pour les lexiques, TXM pourrait se comporter comme un client SVN de lexiques mutualisés (toute nouvelle forme graphique détectée par un import peut faire l'objet d'un ajout au lexique commun, possibilité d'associer forme+partie du discours pour décider de la nouveauté, etc.)
  • les langues concernées : Français, Arabe…

Méthode

Description de la méthode de travail pour atteindre l'objectif

État de la plateforme

Avancement dans l'élaboration de la solution

Solution

État de l'art général et pour le Français

Analyse de l'hétérographie (analyse morphologique)

Analyse morphologique et lemmatisation par apprentissage sur corpus

Analyse morphologique par projection de lexique

Analyse morphologique et étiquetage par projection de graphes/FST et lexiques

Étiquetage désambiguisé statistiquement reposant sur Unitex

Étiquetage désambiguisé statistiquement ou par règles

Liste supplémentaire de taggers (état de l'art) de l'Association for Computational Linguistics

Exemples de scripts Perl de transformation d'étiquettes POS

de TreeTagger vers Multext et assistance à la correction de lemmes : http://www.ims.uni-stuttgart.de/institut/mitarbeiter/gojunaa [voir le lien “Ressourcen” / “Lemma-Korrektur”]

Transformation de jeux d'étiquettes morpho-syntaxiques

Lexiques morphologiques open-source

Corpus étiquetés libres pour l'apprentissage de modèles morpho-syntaxiques

jeux d'étiquette standard

État de l'art pour l'Arabe

Stanford Log-linear Part-Of-Speech Tagger

http://nlp.stanford.edu/downloads/tagger.shtml

Cette technologie est distribuée avec un modèle Arabe appelé 'arabic.tagger'. Il a été construit à partir de l'intégralité de l'Arabic TreeBank parties 1 à 3.

Performances : When trained on the train part of the ATB p1-3 split done for the 2005 JHU Summer Workshop (Diab split), using (augmented) Bies tags, it gets the following performance:

  • 96.26% on test portion according to Diab split
  • (80.14% on unknown words)

Corpus d'apprentissage : Arabic TreeBank parties 1 à 3 :

    • publié November 30, 2004
    • Arabe moderne standard
    • 734 dépêches de l'AFP de juillet à novembre 2000
    • 140 265 mots (168,123 tokens after clitic segmentation in the Treebank)
  • Penn Arabic Treebank partie 2 (Part 2 v 2.0 1/13/04)
    • publié 1/13/04
    • 501 articles d'Al-Hayat publiés par le site Ummah
    • 144 199 mots (counting non-Arabic tokens such as numbers and punctuation)
    • 125 698 Arabic-only word tokens (prior to the separation of clitics)
    • publié 2004
    • 600 dépêches de l'agence An Nahar
    • dated on the 15th day of each month ranging from Jan to Dec in 2002
    • 340 281 words/tokens
    • 400 213 (after clitics separation)

Tokenization

Le format précis du texte arabe en entrée n'est pas indiqué, mais j'ai trouvé ce mail de Christopher Manning dans java-nlp-user : “everything that appears on the Stanford Arabic Parser IAQ page also applies to the POS tagger (required tokenization, normalization, POS tag set used, etc.)”. Ce mail contient un fichier texte exemple en Arabe et le fichier résultat du tagger.

On trouve donc beaucoup plus de détails dans la documentation de l'autre outil apparenté, l'analyseur syntaxique de Stanford :

Résultat :

  • il faut tokenizer d'abord avec le Stanford Word Segmenter pour l'Arabe
  • puis le tagger peut prendre la tokenization calculée par l'outil amont avec l'option ”-tokenize false”

Jeu d'étiquettes

Voir http://www.ircs.upenn.edu/arabic/Jan03release/arabic-POStags-collapse-to-PennPOStags.txt

Autres références à regarder

AraMorph

AraMorph est un implémentation Java open-source de l'algorithme Buckwalter.

Il tokenise et propose toutes les analyses de décomposition en préfixe-racine-suffixe.

Il gère l'UTF-8.

Il comprend des classes d'intégration dans Lucene pour l'analyse, l'indexation et l'interrogation.

MorphTagger

État de l'art pour l'Akkadien

Il y a un lemmatiseur en ligne http://oracc.museum.upenn.edu/util/atfproc.html.

Du projet http://oracc.museum.upenn.edu qui comprend les langues :

  • Sumérien
  • Akkadien
  • Proto-Cunéiforme
  • Proto-Élamite

Autres ressources à exploiter

État de l'art pour le Chinois

ZPar

Stanford Log-linear Part-Of-Speech Tagger

http://nlp.stanford.edu/downloads/tagger.shtml

Cette technologie est distribuée avec deux modèles pour le Chinois appelés 'chinese-distsim.tagger' et 'chinese-nodistsim.tagger'.

Ils utilisent le jeu d'étiquettes de la Penn Chinese Treebank.

Performances

  • chinese-nodistsim.tagger
    • Trained on a combination of CTB7 texts from Chinese and Hong Kong sources.
    • Performance:
      • 93.46% on a combination of Chinese and Hong Kong texts (79.40% on unknown words)
  • chinese-distsim.tagger
    • Trained on a combination of CTB7 texts from Chinese and Hong Kong sources with distributional similarity clusters.
    • Performance:
      • 93.99% on a combination of Chinese and Hong Kong texts (84.60% on unknown words)

Le segmenteur et le tagger pour le chinois sont téléchargeable ici.

Mecab

from Ministry of Education Institut of Applied Linguistics

Fudan University NLP

MMSEG

LTP-Cloud

Jieba, in Python

TreeTagger

Note: one bad report on this one.

Prototype d'intégration du segmenteur et tagger de Stanford pour l'Arabe

Sites

http://nlp.stanford.edu/software/segmenter.shtml#Download

http://nlp.stanford.edu/downloads/tagger.shtml

packages utiles :

  • edu.stanford.nlp.international.arabic.pipeline
  • edu.stanford.nlp.international.arabic.process

Pour l'instant

2 Macros :

  • StanfordSegmenter : segmente les mots de l'arabe (ou du chinois) des textes d'un dossier source
  • StanfordTagger : étiquete les textes d'un dossier source et les convertit au format XML/w

StanfordSegmenter

Il faut copier :

  • seg.jar dans $TXMHOME/scripts/lib
  • StanfordSegmenterMacro.groovy dans $TXMHOME/scripts/macro

Lien de téléchargement des modèles (250Mo) : http://nlp.stanford.edu/software/stanford-segmenter-2014-01-04.zip

Paramètres de la macro :

  • dossier d'entrée
  • dossier de sortie
  • fichier modèle (.ser.gz dans le dossier “data” de l'archive stanford-segmenter-2014-01-04.zip)
  • extension des fichiers à traiter

StanfordTagger

Il faut copier

  • stanford-postagger.jar dans $TXMHOME/scripts/lib
  • StanfordTaggerMacro.groovy dans $TXMHOME/scripts/macro

Lien de download des modèles (110Mo) : http://nlp.stanford.edu/downloads/stanford-postagger-full-2014-01-04.zip

Paramètres de la macro :

  • dossier d'entrée
  • dossier de sortie
  • fichier modèle (.tagger dans le dossier “models” de l'archive stanford-postagger-full-2014-01-04.zip)
  • extension des fichiers à traiter

Version finale

Recette

Protocole de test

Alpha

Beta

État courant

public/specs_import_annotation_lexicale_auto.txt · Dernière modification: 2016/05/30 12:31 par slh@ens-lyon.fr