View
3
Download
0
Category
Preview:
Citation preview
ANNIS pour l’interrogation de corpus annotés
Travaux pratiques sur les corpus oraux du projet Orfeo
Clément Plancq, LaTTiCe (CNRS, ENS, Paris 3)clement.plancq@ens.fr
CORLI, lundi 14 novembre 2016
ANNIS - Corli - 14/11/2016 2
Plan
● Présentation d’Orfeo– Les corpus
– Les métadonnées, les annotations
● TP 1 : Premiers pas avec ANNIS– Présentation de l’interface et des fonctionnalités
– AQL : Annis Query Language
● ANNIS et les outils de corpus-tools.org– Modèle de données SALT
– Installation et importation de données (outil de conversion Pepper)
● TP 2 : Exploration de corpus avec ANNIS
ANNIS - Corli - 14/11/2016 3
Présentation d’Orfeo
ANNIS - Corli - 14/11/2016 4
Orfeo
● Projet ANR (appel corpus) http://www.projet-orfeo.fr/● 7 laboratoires partenaires, coord. Jeanne-Marie Debaisieux
(LaTTiCe)● Objectifs :
– Constituer un corpus d’étude pour le français contemporain
– Rassembler des données secondaires à partir de corpus existants (méta-données, transcriptions harmonisées, alignement texte / signal, annotations)
● Résultats :– Plate-forme d’interrogation des données
– Diffusion des corpus annotés sous licence libre
ANNIS - Corli - 14/11/2016 5
Orfeo : les corpus
● Oral : 3 millions de mots Écrit : 15 millions● Focus sur les corpus oraux pendant la
formation● Liste des corpus oraux :
http://www.projet-orfeo.fr/corpus/corpus2● Description :
http://www.projet-orfeo.fr/corpus/le-corpus-d-etude-du-francais-contemporain
ANNIS - Corli - 14/11/2016 6
Orfeo : méta-données
● Corpus oraux hétérogènes (taille, variétés de français, type de textes, date d’enregistrement, domaine, nombre de locuteurs, qualité du signal)
● Méta-données indispensables pour la description des données et aussi pour leur interrogation
● Travail d’élaboration d’un jeu de méta-données communes aux différents corpus
● Utilisation du standard tei (teiHeader) pour l’encodage
ANNIS - Corli - 14/11/2016 7
Orfeo : annotations
● Départ : transcriptions (transcriber ou praat) et fichiers sons● Chaîne de traitement Orfeo
– Segmentation (manuelle et automatique) en unités macro-syntaxiques
– Tokenisation (macaon, LIF)
– Alignement texte / signal (JTrans, LORIA)
– Étiquetage POS, lemmatisation (macaon, LIF)
– Analyse syntaxique (macaon, LIF)
● Résultat : fichier conll (conll-X + 2 colonnes d’estampilles temporelles)
ANNIS - Corli - 14/11/2016 8
Orfeo : POSADJ (adjectifs qualificatifs) : méchant, petit, long, gigantesque, drôle, rouge, etc.
ADN (adverbes de négation) : pas, jamais, nullement, guère, plus, etc.
ADV (adverbes) : savamment, peut-être, in extremis, très, environ, etc.
CLI (autres clitiques) : te, lui, -le, -y, en, -leur, nous, etc.
CLN (clitique de négation) : ne
CLS (clitiques sujets) : tu, elles, vous, -vous, c, etc.
COO (conjonctions de coordination) : et, ou, alias, mais encore, voire, puis, etc.
CSU (conjonctions de subordination) : au fur et à mesure qu, tandis que, lorsque, etc.
DET (déterminants) : cette, certains, quelques, un, etc.
INT (interjections) : hein, ben, allô, pfff, no comment, niark, okidoki, parbleu, etc.
NOM (noms) : diplodocus, Montastruc-la-Conseillère, topinambour, Google, etc.
NUM (nombres) : six, treize, milliard, quatorze, mille, billion, etc.
PCT (signes de ponctuation) : !, ?, !, etc., (, », etc.
PRE (prépositions) : des, nonobstant, parmi, pour cause de, par delà, outre, etc.
PRO (pronoms) : moi, celles, les tiens, plusieurs, vous-mêmes, nul, pas grand-chose, etc.
PRQ (pronoms interrogatifs-relatifs) : combien est-ce que, lequel, pourquoi, que, etc.
VNF (verbes à l'infinitif) : tenir, poindre, jouer, entendre, etc.
VPP (verbes au participe passé) : tenu, point, joué, entendu, etc.
VPR (verbes au participe présent) : tenant, poignant, jouant, entendant, etc.
VRB (verbes à la forme finie) : tiens, poignent, joueraient, entendissions, etc.
X (mot inconnu, étranger ou tronqué de catégorie indécidable) : El Paìs, fuck you, etc.
ANNIS - Corli - 14/11/2016 9
Orfeo : lemmes
Les lemmes sont la forme pour les lexèmes invariables, la forme infinitive pour les verbes, le singulier pour les noms et le masculin singulier pour les adjectifs.
● Le lemme pour les articles (DET) et les pronoms clitiques (CLI) le, la, l, les est le
● le lemme pour du et des est de+le.
● Le lemme pour les pronoms de 1ère et 2ème personne je, tu, nous, vous, me, te … est la forme.
● Le lemme pour les clitiques sujet (CLS) de 3ème personne (il, ils, elle, elles) est la forme masc.sing. il.
● Le lemme pour les pronoms sujet (PRO) de 3ème personne (lui, eux, elle, elles) est la forme du masculin singulier lui.
● Le lemme pour les déterminants possessifs (mon, ma, mes, ton, ta, tes …) est toujours son.
ANNIS - Corli - 14/11/2016 10
Orfeo : dépendances
ROOT (racine) : verbe, nom, adjectif, adverbe, préposition, coordination
subj (sujet)
aux (auxiliaire): seuls être et avoir
dep (complément) de verbe, de nom, d’adjectif, de préposition, d’adverbe, de coordination
spe (spécifieur)
periph (complément à droite du verbe)
para (éléments de même fonction coordonnés ou énumérés)
disflink (segment non analysable, disfluences)
dm (éléments flottants)
ANNIS - Corli - 14/11/2016 11
Orfeo : exemple
http://ortolang107.inist.fr/annis-sample/fleuron/V_Scol_endo_02_P4.html
Accès réservé le temps de la formation
identifiant : corli
mot de passe : orfeo
ANNIS - Corli - 14/11/2016 12
TP 1 : premiers pas avec ANNIS
ANNIS - Corli - 14/11/2016 13
ANNIS : premiers pas
http://ortolang107.inist.fr/annis-gui/● Composition de l’interface utilisateur● Accès à la documentation, aux méta-données● Sélection des corpus, des options● Requête et visualisation des résultats● Partage d’un résultat ● Fonctionnalités d’export
ANNIS - Corli - 14/11/2016 14
ANNIS : premiers pas
● Annis Query Language (AQL) : http://corpus-tools.org/annis/aql.html● Recherche par formes
– "vous" (équivalent à tok="vous")
– Disjonction : "vous" | "Vous"
– Expressions régulières : /[Vv]ous/
● Recherche de tokens successifs– . opérateur de "précédence"
● Ex : "vous" . "le" ("vous" directement suivi de "le")
(équivalent à "vous" & "le" & #1 . #2)● "vous" .* "le" ("vous" directement ou indirectement suivi de "le" (50 tokens
max.))● "vous" .1,5 "le" ("vous" séparé de "le" par 1 à 5 tokens)
ANNIS - Corli - 14/11/2016 15
Annis : premiers pas
● Méta-données– "vous" . "le" & meta::nombreLocuteurs="2" ("vous"
directement suivi de "le" dans un texte avec deux locuteurs)
● Annotations– annotation_name = value
– POS = "CLS"
– POS!= "CLS" (négation)
– POS /CL./ (regex : tous les clitiques)
– "pour" . POS = "ADV" ("pour" directement suivi d’un adverbe)
– LEMMA = /.+ment/ . POS = "ADJ" (token dont le lemme se termine par "ment" directement suivi d’un adjectif)
ANNIS - Corli - 14/11/2016 16
Annis : premiers pas
● Deux conditions sur le même token– LEMMA = /.+ment/ _=_ POS!= "ADV" (un lemme se terminant
par "ment" qui n’est pas un adverbe)
(équivalent à LEMMA = /.+ment/ & POS!= "ADV" & #1 _=_ #2)
● Noeuds nommés– name# permet permet de nommer un nœud recherché, à la manière
d’une variable
– ment# LEMMA = /.+ment/ _=_ POS != "ADV" &
adj# POS = "ADJ" &
#ment . #adj
ANNIS - Corli - 14/11/2016 17
Annis : premiers pas
● Dépendance– nœud →dep[deprel="dep_type"] noeud
– "avec" →dep[deprel="dep"] node ("avec" gouverne un nœud quelconque avec une relation ‘dep’)
– POS = "VPP" & #1:root (un participe passé est ‘root’)
– "avec" →dep[deprel!= "dep"] node &
#1 .2,5 #2
("avec" gouverne un nœud avec une relation non ‘dep’. Les deux nœuds sont séparés d’au moins un token)
ANNIS - Corli - 14/11/2016 18
Annis : premiers pas
● Ce n’est qu’une vue partielle d’AQL– Opérateurs sur les relations de dominance
(treebank)
– Espace de noms permet d’interroger des annotations concurrentielles
● Documentation : http://corpus-tools.org/annis/aql.html
ANNIS - Corli - 14/11/2016 19
Annis : premiers pas
● Travaux pratiques. Trouvez les requêtes correspondant aux demandes suivantes :– Les noms en "-eur"
– Pronoms interrogatifs relatifs ne commençant pas par ‘qu’
– Idem mais suivi d’un verbe à l’infinitif
– "juste" suivi d’un adjectif
– Les suites NOM NOM
– Les spécifieurs qui ne sont pas des articles
ANNIS - Corli - 14/11/2016 20
ANNIS et les outils de corpus-tools.org
ANNIS - Corli - 14/11/2016 21
ANNIS et corpus-tools.org
● Projet open source (CC BY-NC-SA, github) soutenu par– Humboldt-Universität zu Berlin
– Georgetown university
– Universität Potsdam
● ANNIS fait partie d’un ensemble logiciel (corpus-tools.org) composé de :– Salt : méta modèle de données linguistiques
– Pepper : outil de conversion de données linguistiques
– Atomic : logiciel d’annotation de corpus
ANNIS - Corli - 14/11/2016 22
ANNIS : installation
● ANNIS est écrit en Java● ANNIS fonctionne avec PostgreSQL● ANNIS est un outil web, deux installations possibles :
– Serveur : déploiement dans un serveur d’applications (tomcat)
– Local : kickstarter
● Multiplateforme (Windows, Mac, Linux), 2 prérequis : java, PostgreSQL
● http://corpus-tools.org/annis/download.html
ANNIS - Corli - 14/11/2016 23
ANNIS et Salt
● ANNIS est un outil web de recherche et de visualisation de données annotées à plusieurs niveaux, quelque soit le type d’annotation
● Possible grâce à Salt, méta modèle de données annotées– Indépendant de la langue
– Indépendant du jeu d’étiquette
– Pas lié à une théorie
– Mutli-niveaux
– Multimédia (support audio et vidéo)
ANNIS - Corli - 14/11/2016 24
ANNIS et Salt
● Pour être aussi générique Salt a adopté volontairement une sémantique pauvre
● Salt repose sur des graphes– Pas une structure linguistique mais plutôt utilisé en mathématiques et
en informatique
● Un graphe est formé de nœuds reliés par des arcs– Les arcs peuvent avoir une direction (graphe orienté)
– Les nœuds peuvent recevoir des labels
● Salt utilise des graphes orientés– Les tokens sont les nœuds
– Les annotations sont les étiquettes
– Les relations sont les arcs
ANNIS - Corli - 14/11/2016 25
ANNIS et Salt
● La souplesse de Salt permet d’intégrer de nombreux types d’annotations :– Plusieurs variétés de transcriptions pour un même token
– Pos (même plusieurs tagsets concurrents)
– Lemme
– Entités nommées
– Arbres syntaxiques et constituants
– Relations de dépendance
– Coréférence
– Structures de discours
– ...
● La condition est que les données puissent être modélisées sous forme de graphe
ANNIS - Corli - 14/11/2016 26
ANNIS et Pepper
● Salt est un modèle, implémenté en classes Java, accessible par une API
● Il existe un format SaltXML mais il est peu utilisé
● Comment importer des données dans ANNIS ?– relANNIS, le format ANNIS est un jeu de tables en
relation composées de données et d’identifiants numériques
– Proche de Salt mais peu lisible, doit être généré
ANNIS - Corli - 14/11/2016 27
ANNIS et Pepper
● Pepper : outil de conversion de données linguistiques● Salt comme modèle pivot● Import / export de nombreux formats
– Elan
– Exmeralda
– TigerXML
– Conll
– ANNIS
– RST
– MMAX2
– Gate
– PTB
– ...
ANNIS - Corli - 14/11/2016 28
TP 2 : Exploration de corpus avec ANNIS
ANNIS - Corli - 14/11/2016 29
TP 2 ANNIS
● Sujets inversés● Distribution par POS des relations ‘disflink’● Sujets non pronominaux● Compléments adjectivaux du verbe "trouver"● Double marquage sujet (un verbe avec deux
sujets)● ...
Recommended