etc. - Laboratoire Lattice

publicité
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)
[email protected]
CORLI, lundi 14 novembre 2016
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
2
Présentation d’Orfeo
ANNIS - Corli - 14/11/2016
3
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
4
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-e
tude-du-francais-contemporain
ANNIS - Corli - 14/11/2016
5
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
6
Orfeo : annotations
●
Départ : transcriptions (transcriber ou praat) et fichiers sons
●
Chaîne de traitement Orfeo
●
–
Segmentation (manuelle et automatique) en unités macrosyntaxiques
–
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
7
Orfeo : POS
ADJ (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
8
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
9
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
10
Orfeo : exemple
http://ortolang107.inist.fr/annis-sample/fleuro
n/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
11
TP 1 : premiers pas avec ANNIS
ANNIS - Corli - 14/11/2016
12
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
13
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
14
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
15
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
16
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
17
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
18
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
19
ANNIS et les outils de corpus-tools.org
ANNIS - Corli - 14/11/2016
20
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 (corpustools.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
21
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
22
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
23
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
24
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
25
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
26
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
27
TP 2 : Exploration de corpus avec ANNIS
ANNIS - Corli - 14/11/2016
28
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)
...
ANNIS - Corli - 14/11/2016
29
Téléchargement