Outils pour utilisateurs

Outils du site


public:specs_annotation_nlp_api

Spécifications de l'annotation linguistique automatique

Expression d'un workflow

Workflow in TXM :

  • hypothesis:
    • tokenization not done by TXM?
    • sentence segmentation not done by TXM?
  • 1- use textual planes (XTZ)
    • extract raw txt between text-to-index tags (working with ELTeC level 2)
    • all text-to-index tags will be reinjected after NLP work
    • see text-to-index tags for front/body/back/etc.
    • see text-not-to-index tags for notes references (wil not be given to NLP tools)
  • 2- call UDPipe on each raw text extraction (versus per text?)
    • eg p structure content with no sub-p tags
      • exceptions: <foreign> can encode a text passage in a language different than the main language of the texte
    • new script engine, name ‘Python’, interpreter path ‘/usr…’, extension ‘.py’ (for XTZ steps)
    • help script engine package installation: package_install_instructions (to install UDPipe, http://ufal.mff.cuni.cz/udpipe)
    • use slave/master architecture (eg talismane)?
  • 3- reinject result back
    • if concurrent tokens are present in the results
      • realign pre-tokens on post-toekens
      • replace pre-tokens by post-tokens while preserving XML tags
    • other possible operations
      • convert .CoNLL-U1) parts to p (newpar?) / s@xml:id=’$sent_id ’ + w@word@pos@msd@lemma
    • reinject sub-p tags
  • 4- inject into XML-TXM

Expression d'une interface

  • on fournit soit du texte brut, soit du texte tokenisé, soit du texte où certains mots sont déjà tokenisés (je n'ai pas vu cette dernière possibilité dans cette interface)
  • on fournit soit du texte brut, soit du texte segmenté en phrases, soit du texte où certaines phrases sont déjà segmentées (je n'ai pas vu cette dernière possibilité dans cette interface)
  • on fournit une séquence de bouts de texte de taille ou de niveau linguistique variable
  • pour le premier élément de la séquence on peut attendre (une initialisation)
  • par contre entre deux bouts il faut que le temps de latence soi minimum
  • si on pouvait switcher entre langues ou avoir un flux par langue ce serait très utile (toujours plusieurs langues par texte)
  • le bout peut être de taille inférieure ou supérieure à un token/mot (il est acceptable que le cas 'taille inférieure' ne soit pas pris en compte)
  • le bout peut être de taille inférieure ou supérieure à une phrase
  • on peut préciser des propriétés comme :
  • ce bout de texte ne peut pas être dans le même mot que le bout précédent (pas grave si ce n'est pas possible)
  • ce bout de texte ne peut pas être dans la même phrase que le bout précédent (exemple des <head> TEI où il n'y a pas de marque de surface de fin de phrase)

Bien sûr si l'interface pouvait gérer du XML de façon générale on pourrait obtenir des paramétrages plus généraux que la double segmentation en mots/phrases.

Niveaux linguistiques

  • phrases
    • un segment de texte (brut ou tokenizé) peut contenir des phrases orthographiques ou des phrases syntaxiques complètes (p, head…)
    • une phrase orthographique ou syntaxique ne peut pas être à cheval sur deux segments de texte successifs
    • la relation entre des phrases orthographiques (ponctuation) et des phrases syntaxiques (parsing) est à clarifier selon les outils
    • l'impact de certains balisages peut être du même type que celui de ponctuations séparatrices de phrases orthographiques
  • mots
    • un segment de texte (brut ou tokenizé) peut contenir des mots complets
    • un mot ne peut pas être à cheval sur deux segments de texte successifs
    • l'impact de certains balisages peut être du même type que celui de ponctuations séparatrices de mots

New export macros

  • TXMText2TXT, parameters:
    • word properties to use (default ‘word’, eg ‘lemma/pos’)
    • word properties separator (default ‘/’, eg ‘\t’)
    • CQL to select words ([] by default, eg [pos!=”PUNCT”])
    • option end-of-line-at-end-of-structure (default ‘true’)
    • structure-ending (default ‘s’, eg ‘p’)
      → .txt for words, lemmas, etc.
  • TXMCorpus2TXT, call TXMText2TXT on each text (same parameters)
  • TXMText2CoNLL-U , TXMCorpus2CoNLL-U

État de l'art architectures NLP

CoNLL-U format definition

voir https://universaldependencies.org/format.html

  • # for comment lines (and metadata about following sentence), not between tokens
  • # global.columns = ID FORM UPOS HEAD DEPREL MISC PARSEME:MWE metadata (declaration of columns, optionnal)
  • # newdoc id = text1 metadata (au début de chaque texte, optionnal)
  • # newpar id = p1 metadata (au début de chaque paragraphe commençant en début de phrase, optionnal) [pour les paragraphes commençant au milieu d’une phrase, le token commençant le paragraphe reçoit la valeur NewPar=Yes dans la colonne MISC]
  • # sent_id = 1 metadata (au début de chaque phrase , identifiant treebank wide unique)
  • # text = la petite brise la glace metadata (phrase raw text)
  • éventuellement : text_fr, text_en… (traductions), translit (translittération)
  • <empty line> (= \n\n) after phrases (including last)
  • le script conllu_to_text.pl teste la présence de lignes newdoc et newpar
  • contractions dupliquées, eg. vámonos al mar :
    	1-2    vámonos   _
    	1      vamos     ir
    	2      nos       nosotros
    	3-4    al        _
    	3      a         a
    	4      el        el
    	5      mar       mar
  • on peut ajouter des colonnes, voir https://universaldependencies.org/ext-format.html.

État de l'art sur l'alignement de séquences

Principes

Algorithmes Java

Algorithmes utiles

Voir aussi

1)
voir definition plus bas
public/specs_annotation_nlp_api.txt · Dernière modification : 16/01/2020 18:54 de slh@ens-lyon.fr