ANNIS pour l’interrogation de corpus annotés Travaux ... · ANNIS pour l’interrogation de...

Post on 10-Jan-2020

4 views 0 download

Transcript of ANNIS pour l’interrogation de corpus annotés Travaux ... · ANNIS pour l’interrogation de...

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)● ...