Annotations manuelles et automatiques de corpus



Documents pareils
Apprentissage Automatique

TP 1. Prise en main du langage Python

! Text Encoding Initiative

GUIDE MEMBRE ESPACE COLLABORATIF. Février 2012

Plan. Traitement de texte et PAO 4/10/06. Initiation à Word

données en connaissance et en actions?

Laboratoire 4 Développement d un système intelligent

I. Le déterminant Il détermine le nom. Le déterminant indique le genre, le

Mon aide mémoire traitement de texte (Microsoft Word)

Ecole Technique «Transformation de données documentaires» Poitiers, mars Atelier 1: Sphinx. import, conversion, export de données

LES TYPES DE DONNÉES DU LANGAGE PASCAL

De la modélisation linguistique aux applications logicielles: le rôle des Entités Nommées en Traitement Automatique des Langues

clef primaire ; clef étrangère ; projection ; restriction ; jointure ; SQL ; SELECT ; FROM ; WHERE

< Atelier 1 /> Démarrer une application web

Manuel d utilisation du site web de l ONRN

MAÎTRISE DE L ENVIRONNEMENT WINDOWS VISTA

fiche D AUTOCORRECTION Frimousse, une petite chienne qu'on a adoptée le mois dernier, est intelligente et docile.

Projet SINF2275 «Data mining and decision making» Projet classification et credit scoring

Introduction au Data-Mining

Formation Word/Excel. Présentateur: Christian Desrochers Baccalauréat en informatique Clé Informatique, 15 février 2007

TP1 : Initiation à l algorithmique (1 séance)

Utilisation du client de messagerie Thunderbird

Database Manager Guide de l utilisateur DMAN-FR-01/01/12

GUIDE Excel (version débutante) Version 2013

EXCEL TUTORIEL 2012/2013

Intelligence Artificielle et Systèmes Multi-Agents. Badr Benmammar

Rédigez efficacement vos rapports et thèses avec Word (2ième édition)

AGASC / BUREAU INFORMATION JEUNESSE Saint Laurent du Var - E mail : bij@agasc.fr / Tel : CONSIGNE N 1 :

L informatique en BCPST

FEN FICHE EMPLOIS NUISANCES

Date M.P Libellé Catégorie S.Catégorie Crédit Débit Solde S.B

KIELA CONSULTING. Microsoft Office Open Office Windows - Internet. Formation sur mesure

Manuel d utilisation du web mail Zimbra 7.1

Introduction à la B.I. Avec SQL Server 2008


Introduction au Data-Mining

L'intelligence d'affaires: la statistique dans nos vies de consommateurs

Vos outils CNED COPIES EN LIGNE GUIDE DE PRISE EN MAIN DU CORRECTEUR. 8 CODA GA WB 01 13

Aide à l Utilisation du site «Mon Monitoring»

TD3 - Facturation avec archivage automatisé

3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes

On trouvera sur le site du CCDMD un exemple d album construit avec Cantare. (

Évaluation des compétences. Identification du contenu des évaluations. Septembre 2014

Business Talk IP Centrex. guide. web utilisateur. pour. les services standards

Pas-à-pas. Créer une newsletter avec Outlook

FOIRE AUX QUESTIONS PAIEMENT PAR INTERNET. Nom de fichier : Monetico_Paiement_Foire_aux_Questions_v1.7 Numéro de version : 1.7 Date :

Débuter avec Excel. Excel

Travaux pratiques avec RapidMiner

Bases de données Cours 1 : Généralités sur les bases de données

Rédiger pour le web. Objet : Quelques conseils pour faciliter la rédaction de contenu à diffusion web

Programmation Web. Madalina Croitoru IUT Montpellier

PHP 5.4 Développez un site web dynamique et interactif

IUT BREST UN LOGICIEL SCADA : PC VUE 2010 DEP.GMP

Accès instantané aux mots et aux locutions Le dictionnaire électronique offre une traduction rapide d'un mot ou d'une locution

Manuel d utilisation de l outil collaboratif

SVP j ai besoin d aide!

Enseignement Informatique. Classe de Bac Pro SAPAT

DÉVELOPPEMENT D ACTIVITÉ Insertion sociale et professionnelle

Création, analyse de questionnaires et d'entretiens pour Windows 2008, 7, 8 et MacOs 10

Les outils de SEO (Référencement naturel) et les Sites SharePoint Public sur Office 365

Document d accompagnement pour l utilisation du Cartable en ligne Lycée des Métiers Fernand LÉGER 2013/2014

Introduction à MATLAB R

Form Designer Guide d utilisateur DOC-FD-UG-FR-01/01/12

Utiliser un tableau de données

Formation Pédagogique 3h

majuscu lettres accent voyelles paragraphe L orthographe verbe >>>, mémoire préfixe et son enseignement singulier usage écrire temps copier mot

MASTER SIS PRO : logique et sécurité DÉTECTION D INTRUSIONS. Odile PAPINI, LSIS. Université de Toulon et du Var. papini@univ-tln.

à l édition de textes

Services bancaires par Internet aux entreprises. Guide pratique pour : Transfert de fichiers Version

LE DISCOURS RAPPORTÉ

Je me familiarise avec le courrier électronique

Plan de formation des Personnels en CUI-CAE Année

Afin d accéder à votre messagerie personnelle, vous devez vous identifier par votre adresse mail et votre mot de passe :

Algorithmique et Programmation, IMA

Plug-in Verizon Collaboration pour Microsoft Outlook Guide de l utilisateur

Spécificités, Applications et Outils

Guide de l Administrateur

Document d aide au suivi scolaire

RECONNAÎTRE UN NOM. Tu vas apprendre à reconnaître un nom!!!!!!

Plateforme PAYZEN. Définition de Web-services

N SIMON Anne-Catherine

Composition d un ordinateur :

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

Créer le schéma relationnel d une base de données ACCESS

mes m est mets/met mais mets

Excel 2007 Niveau 3 Page 1

Présentation du langage et premières fonctions

: seul le dossier dossier sera cherché, tous les sousdomaines

Stéphane Tufféry DATA MINING & STATISTIQUE DÉCISIONNELLE. 25/12/2006 Stéphane Tufféry - Data Mining -

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Préparation à l examen EFA en Macro

La Clé informatique. Formation Excel XP Aide-mémoire

Première étape : créer le fichier de données - extraire les données de PMB et les transférer dans Excel

Algorithme. Table des matières

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

Généralités sur le courrier électronique

ERETES-SERIES. Support de formation. Formation ERETES ERETES-SERIE 1/58

Déroulement d un projet en DATA MINING, préparation et analyse des données. Walid AYADI

Transcription:

Annotations manuelles et automatiques de corpus Cyril Grouin cyril.grouin@limsi.fr 1 Définitions Base de données : ensemble structuré de données (feuille Excel). Id Ville Pays 01 Paris France 02 Dublin Irelande 03 Tbilissi Géorgie Données structurées : données dont les éléments sont catégorisés (valeurs d une base de données, étiquetage). Données non structurées : données présentes telles quelles (texte libre), sans traitement complémentaire. Mot : unité significative empirique de la grammaire traditionnelle. EXERCICE : souligner les mots de la phrase d exercice suivante : Le chat aime s installer derrière les fenêtres. Token : suite de caractères entre deux espaces. Tokénisation : processus qui consiste à découper un texte en tokens (séparer les ponctuations des mots). EXERCICE : découper la phrase de l exercice en tokens : Xq Lemme : forme générique des différentes formes d un mot (infinitif, forme masculin/singulier). EXERCICE : trouver les lemmes de la phrase d exercice (voir tableau 1, p. 13) : Xq Partie du discours/pos : étiquettes morpho-syntaxiques. EXERCICE : trouver les étiquettes en parties du discours de la phrase d exercice (voir tableau 1, p. 13) : Xq 2 Fouille de données vs. Fouille de textes La fouille de données (data mining) renvoie à l ensemble des méthodes et algorithmes pour l exploration et l analyse de gros volumes de données (bases de données informatiques) dans la perspective d une aide à la prise de décision. La fouille de données repose sur la mise en évidence de règles, de tendances invisibles pour un analyste humain. La fouille de données (i) repose sur des bases relationnelles et (ii) traite des données structurées. La fouille de textes (text mining) repose sur des données textuelles non structurées. Pourquoi faire de la fouille de données/textes? Les données sont disponibles et elles le sont massivement ; La production massive de données doit s accompagner d outils d exploitation de ces données ; L informatique permet de traiter toujours plus de documents : capacités de stockage, puissance de calcul, etc. 3 Quels éléments utiliser dans les textes? 3.1 Les mots mots simples : tokenization (récupération des chaînes de caractères entre deux espaces) : «chat», «fenêtre» mots composés : «pomme-de-terre» formes composées : «y a t-il?» 1

mots non fléchis : lemme (forme générique d un mot : l infinitif pour un verbe, le singulier pour les noms, le masculin singulier pour les adjectifs), lemmatisation (processus qui consiste à remplacer un mot par son lemme) : voir page 13 faut-il conserver tous les mots? Faut-il supprimer certains mots? mots fréquents (statistiques), quel seuil? mots outils (articles, conjonctions, pronoms, etc) : utiles : typage de textes, reconnaissance de la parole inutiles : indexation de documents. n-grammes : succession de n mots consécutifs : 1 mot : unigrammes de mots ; 2 mots consécutifs : bigrammes de mots ; 3 mots consécutifs : trigrammes de mots. EXERCICE : relever les unigrammes de mots dans la phrase «Le chat aime s installer derrière les fenêtres.» Xq EXERCICE : relever les bigrammes de mots dans la phrase «Le chat aime s installer derrière les fenêtres.» Xq EXERCICE : relever les trigrammes de mots dans la phrase «Le chat aime s installer derrière les fenêtres.» Xq 3.2 Les entités nommées Ce sont des éléments du texte (mots, chiffres), qu il est possible de catégoriser au niveau sémantique. Lors de la conférence MUC-6 (1995), trois catégories d entités nommées ont été définies : noms de personnes (nom, prénom) ; noms de lieux (ville, région, pays) ; noms d organisation (entreprise, organisation). Et ces catégories ont été complétées par des éléments numériques : dates (27/04/2015), montants (GEL 7). EXERCICE : souligner les entités nommées dans le texte suivant (extrait d un article 1 du journal Le Monde, 27/10/2013). En Kakhétie, région centrale de l industrie vinicole géorgienne située à 160 kilomètres au nord-est de Tbilissi, l humeur des habitants suit la courbe de la récolte. Quand la vendange est abondante et les prix d achat élevés, comme c est le cas cette année, les Kakhétiens ont le cœur léger. «On peut dire que nous avons le vin dans le sang», explique Rezo. Petit propriétaire terrien, il officie à la dégustation des crus locaux (Mukuzani, Kidzmarauli, Saperavi et d autres) dans le domaine musée des Princes Tchavtchavadze, perché sur les hauteurs du petit bourg de Tsinandali. La cuvée 2013 s annonce savoureuse, Rezo se frotte les mains. Les mauvais souvenirs sont oubliés. 3.3 Les caractères identification de la langue (environ 100 caractères nécessaires), deux étapes : 1. apprentissage : tri-grammes de caractères appris sur de gros corpus pour chaque langue à identifier ; 2. document inconnu : relevé des trigrammes de caractères et comparaison avec ceux de chaque langue (incrémentation de compteurs). typage de textes : par fréquence des caractères. EXERCICE : en fonction de vos connaissances du géorgien et du français, quelles différences voyez-vous entre ces deux langues au niveau des caractères? 1. http://www.lemonde.fr/europe/article/2013/10/27/telavi-en-georgie-du-vin-des-touristes-et-un-zest-de-stali 3503635_3214.html 2

4 Les mesures d évaluation 4.1 Quoi? Comment? Différents types d évaluation Typage (classification, recherche d information) : un document est-il bien classé (objectif/subjectif)? Une entité nommée est-elle correctement étiquetée (personne, lieu, organisation)? Frontière (repérage d entités nommées) : les frontières de l entité sont-elles correctes (début et fin de la portion à annoter dans un texte)? Différents niveaux d évaluation Mono-classe (recherche d information) : quels documents correspondent à la requête d un utilisateur? Multi-classes (classification) : catégories d entités nommées. Définitions Pour une étiquette donnée, Vrais positifs : nombre d éléments étiquetés de la même manière dans l hypothèse et la référence ; Faux positifs : nombre d éléments de l hypothèse absents de la référence ; Faux négatifs : nombre d éléments de la référence absents de l hypothèse ; Vrais négatifs : nombre d éléments absents de la référence et de l hypothèse. référence hypothèse Faux négatifs Vrais positifs Faux positifs Vrais négatifs 4.2 Mesures Rappel Le «rappel» (recall), «sensibilité» (sensitivity) ou «taux de vrais positifs», est une mesure quantitative (formule 1). Elle mesure le nombre d éléments correctement étiquetés par le système (vrais positifs) rapporté au nombre d éléments étiquetés dans la référence (vrais positifs et faux négatifs). Rappel = vrais positifs vrais positifs + faux négatifs (1) Précision La «précision» (precision), ou «valeur prédictive positive», est une mesure qualitative (formule 2). Elle mesure le nombre d éléments correctement étiquetés par le système (vrais positifs) rapporté au nombre total d éléments étiquetés par le système (vrais et faux positifs). Précision = vrais positifs vrais positifs + faux positifs (2) 3

F-mesure Moyenne harmonique pondérée du rappel et de la précision F-mesure = (1 + β2 ) Précision Rappel β 2 Précision + Rappel La valeur attribuée à β permet : soit d équilibrer les poids du rappel et de la précision (β=1) ; soit de favoriser le rappel par rapport à la précison (β=2), ou la précision par rapport au rappel (β=0.5). 4.3 Exercices 4.3.1 Recherche d information Un moteur de recherche a indexé le contenu textuel des documents suivants (i.e. le moteur de recherche a mémorisé l association entre chaque mot du texte et le numéro du document) : 1. Un projet de loi au printemps pour réformer la psychiatrie. 2. A Arbury Park, un projet immobilier moderne et séduisant paralysé par la crise économique. 3. Récession, chômage : le gouvernement prévoit que la crise sera longue. 4. Japon : un train atteint la vitesse record de 603 km/h. 5. Un champagne intact après avoir passé 170 ans sous la mer. Un utilisateur utilise ce moteur de recherche et effectue la requête suivante : Projet Le moteur de recherche renvoie les documents 1, 2 et 3 à l utilisateur. En fonction du contenu de chaque document d une part, et du contenu de la requête d autre part, calculez (i) le nombre de vrais positifs (nombre de documents renvoyés par le moteur qui correspondent à la requête), faux positifs (nombre de documents renvoyés par le moteur qui ne correspondent pas à la requête) et faux négatifs (nombre de documents non trouvés par le moteur qui correspondent à la requête), puis (ii) les valeurs de rappel, précision et F-mesure. OK Vrais positifs Faux positifs Faux négatifs Rappel Précision F-mesure 4.3.2 Repérage d entités nommées (REN), classification Pour un travail de repérage d entités nommées parmi trois catégories (personne, lieu, date), nous disposons des annotations de référence (i.e. la liste des entités qu un système doit identifier dans un texte). Nous avons lancé un système automatique de repérage d entités nommées sur ce texte. Ce système produit des annotations, certaines sont correctes, d autres sont fausses. Votre objectif est d évaluer la qualité des annotations produites par le système, en comparant les annotations du système aux annotations de référence. Annotations de référence : Le cinéaste français personne Georges Lautner, auteur des personne Tontons flingueurs, est mort, date vendredi 22 novembre à lieu Paris, à l âge de 87 ans, a annoncé l ancien cascadeur personne Rémy Julienne, citant son entourage proche. Le metteur en scène s est éteint à la suite d une «longue maladie», a précisé personne Rémy Julienne, qui avait effectué les cascades dans nombre de ses films. Avec une quarantaine de films à son actif en soixante ans de carrière, lieu Georges Lautner aura tourné avec les plus grands. Annotations du système : Le cinéaste français personne Georges Lautner, auteur des personne Tontons flingueurs, est mort, date vendredi 22 novembre à lieu Paris, à l âge de date 87 ans, a annoncé l ancien cascadeur Rémy Julienne, citant 4

son entourage proche. Le metteur en scène s est éteint à la suite d une «longue maladie», a précisé Rémy Julienne, qui avait effectué les cascades dans nombre de ses films. Avec une quarantaine de films à son actif en soixante ans de carrière, lieu Georges Lautner aura tourné avec les plus grands. Exercice Comparez les annotations de référence avec les annotations produites par le système, et calculez en complétant le tableau suivant : (i) le nombre de vrais positifs, faux positifs et faux négatifs pour chaque catégorie, puis (ii) les valeurs de rappel, précision et F-mesure pour chaque catégorie. Vrais positifs Faux positifs Faux négatifs Rappel Précision F-mesure Date Lieu Personne 5 Corpus 5.1 Définitions Corpus : ensemble de documents (audios, vidéos, textes) contenant des données à exploiter. corpus enrichi/annoté : corpus dont les documents ont bénéficié de traitements complémentaires (étiquetage morphosyntaxique, sémantique, méta-informations, etc.) ; corpus alignés/parallèles : alignement de deux corpus (deux langues : français/anglais, spécialité/générale) à un/plusieurs niveaux (paragraphe, phrase, mot) ; corpus comparables : corpus non parallèles mais traitant du même sujet de manière différente ; corpus de référence : corpus que le responsable considère comme étant la version à atteindre par des moyens automatiques (version alignée/annotée de référence). 5.2 Annotation de corpus Annotation : processus qui consiste à apporter des informations supplémentaires à un corpus (informations syntaxiques, morphologiques, sémantiques). Pour annoter des documents, il est nécessaire de disposer d un guide d annotation : document qui indique quoi/comment annoter (définitions, exemples, contre-exemples), dans quel objectif. Le résultat de l annotation de documents peut servir, soit directement (repérage d entités nommées), soit être réutilisé par d autres systèmes (dans ce cas, les annotations apportent des informations utiles pour d autres traitements). De manière plus spécifique, le résultat de l annotation manuelle peut être utilisé pour évaluer la qualité des annotations automatiques. documents annotation manuelle (outil BRAT) documents annotés annotation automatique (outil WAPITI) documents annotés lexiques annotation automatique (outil DARK) documents annotés repérage d'entités nommées liste d'entités nommées règles FIGURE 1 Annotations manuelles et automatiques de corpus 5

5.2.1 Représentation des annotations annotations embarquées : annotations reportées directement sur le corpus (balises XML) < v i l l e > Paris< / v i l l e > est en <pays>france< / pays>. annotations débarquées : annotations renseignées dans un fichier extérieur au fichier de données (référence au texte par des indices de position de ligne, de caractère/de token) Fichier textuel Fichier d annotations Paris est en France. T1 ville 1 6 Paris Paris est du 1er au 6e caractère T2 pays 14 20 France France est du 14e au 20e caractère 5.2.2 Modalités d annotation annotation manuelle : processus d annotation réalisé par un humain annotation automatique : processus d annotation réalisé par une machine pré-annotation : processus d annotations grossières (base de travail) devant être repris/complété par un annotateur humain < v i l l e prénom> Paris< / v i l l e prénom> est en < v i l l e prénom>france< / v i l l e prénom>. 5.3 Annotation manuelle Guide d annotation On cherche à annoter tous les noms de lieux présents dans un corpus d extraits d articles Wikipédia sur les différents pays du monde, rédigés en français. Quatre catégories de lieux sont utilisées, du plus générique au plus spécifique (cf. figure 2) : régions (régions du monde qui regroupent plusieurs pays) : Asie, Caucase, Europe ; pays (forme courte des pays, correspondant à une dénomination officielle, pour un pays reconnu comme tel au niveau international) : États-Unis, France, Géorgie ; territoires (partie d un pays, plus ou moins autonome, mais pas indépendant) : Californie, Floride ; villes : Paris, Tbilissi, Washington. Régions Pays Territoires Villes FIGURE 2 Hiérarchisation des catégories utilisées pour l annotation de corpus Annoter les noms de lieux relevant des quatre catégories précédentes en respectant les règles d annotation suivantes : annoter toutes les occurrences de lieux dans un document, y compris si la même occurrence revient plusieurs fois ; annoter les formes courtes, pas les formes longues : on annote «Finlande» mais pas «République de Finlande» ; annoter uniquement les noms écrits en français : on annote «Finlande» (version française) mais pas «Suomi» ou «Suomen» (versions finnoises) ; annoter les noms de lieux actuels, pas les anciens noms : on annote «Géorgie» mais pas «Colchide» et «Ibérie» (anciens royaumes disparus). Consignes 1. Télécharger l archive suivante : https://perso.limsi.fr/grouin/tbilissi/exercices.tar.gz 2. Copier le répertoire corpus/brat/ dans le répertoire brat-v1.3_crunchy_frog/data/ 3. Lancer le serveur depuis les lignes de commandes : cd brat-v1.3_crunchy_frog/ python standalone.py 4. Ouvrir un navigateur à l adresse : http://127.0.0.1:8001 6

5. Se connecter (nom d utilisateur et mot de passe) puis sélectionner le corpus corpus/brat/ 6. Annoter toutes les noms de régions, pays, territoires et villes contenus dans les documents textuels de ce corpus en respectant le guide d annotation ci-dessus. 5.4 Annotation automatique 5.4.1 Méthodes symboliques Méthodes qui reposent sur des connaissances d expert formalisées en listes/expressions régulières listes : fichier contenant des données relevant d une seule catégorie (adjectifs, noms de ville) ; dictionnaire : ensemble des mots (lemmes) d une langue classés par ordre alphabétique (mot, définition, exemple, information morphologique, prononciation) ; thesaurus : ensemble des mots (lemmes) d une langue organisés par thématiques en distingant les différents sens ; expressions régulières : séquences de caractères qui définissent un patron de recherche : [A-Z][a-z]+ patron syntaxique/motif : motif particulier cherché dans un texte (un mot commençant par une majuscule suivie de minuscules non accentuées) : Paris, France 5.4.2 Méthodes par apprentissage Méthodes qui reposent sur des observations statistiques ; l utilisateur fournit à la machine des exemples de sorties attendues (supposent un corpus annoté). formalismes : CRF (champs aléatoires conditionnels), SVM (séparateurs à vaste marge), arbres de décision outils : CRF++, Wapiti, LibSVM, SVMLight, Weka caractéristiques : ensemble des informations associées à chaque token permettant de construire des modèles : caractéristiques de surface : propriétés inférées du token (capitalisation, taille) caractéristiques profondes : informations morpho-syntaxiques, syntaxiques, sémantiques caractéristiques externes : position dans le document, fréquence globale, cluster 6 Les expressions régulières 6.1 Présentation Une expression régulière est une suite de caractères qui décrit, de manière générique, un motif qu on souhaite identifier dans un texte, dans le but d appliquer un traitement sur la chaîne de caractères identifiée par le motif : ajout, remplacement ou suppression. Plusieurs langages de script et commandes permettent d appliquer des expressions régulières (grep, perl). Les expressions régulières sont généralement indiquées entre 2 barres obliques (/regex/), sauf pour les substitutions pour lesquelles 3 barres obliques sont utilisées (s/ancien/nouveau/). Des caractères spéciaux utilisés avant et après ces barres obliques permettent de préciser la portée de ces expressions : Avant : s/motif/remplacement/ (le «s» indique une substitution du motif par le remplacement ; dans ce cas, la règle contient 3 barres obliques) Après : /motif/i (le «i» indique que le motif peut s appliquer aussi bien sur un texte en majuscules qu en minuscules ; le motif est insensible à la casse typographique) Après : /motif/g (le «g» indique que le motif sera généralisé sur l ensemble du texte ; le motif sera appliqué sur le texte tant qu il est possible de le faire) Après : /motif/gi (combinaison des deux options précédentes) Entre barres obliques : /^motif/ (le caractère «^» après la 1e barre oblique indique que le motif doit être trouvé au début du contenu de la variable) Entre barres obliques : /motif$/ (le caractère «$» avant la 2e barre oblique indique que le motif doit être trouvé à la fin du contenu de la variable) Exemples (perl) 7

Ajout : $mot="dé".$mot; (on ajoute «dé» devant le contenu de la variable $mot et on enreigstre le résultat dans la variable $mot ; permet de générer de modifier le sens des mots : construire déconstruire) Remplacement : $texte=~s/é/e/g; (on remplace toutes les lettres «é» par la lettre «e» ; permet de désaccentuer un mot : éléphant elephant) Suppression : $mot=~s/s$//; (on supprime le caractère «s» dans la variable $mot s il s agit du dernier caractère ; permet de transformer un mot du pluriel vers le singulier : ordinateurs ordinateur) Test : if ($fichier=~/\.txt/) { print "Fichier texte"; } (on teste si la variable $fichier contient l extension «.txt») Il est possible de regrouper plusieurs caractères, soit en définissant un intervalle, soit en utilisant des classes de caractères. Intervalles [0-9] (tous les chiffres de 0 à 9) [0-3] (tous les chiffres de 0 à 3) [a-z] (toutes les lettres non accentuées en minuscules de «a» à «z») [a-zàçéèêëîïôûù] (toutes les lettres en minuscules de «a» à «z» plus les lettres accentuées utilisées en français) [A-Za-z] (toutes les lettres de «a» à «z», en majuscules et en minuscules) Classes de caractères (lua) Les classes de caractères permettent de regrouper des caractères de même valeur :. (n importe quel caractère) %a (n importe quelle lettre) %c (caractère de contrôle) %d (chiffres) %l (lettre en minuscule) %p (ponctuations) %s (caractère d espace ou de tabulation) %u (lettre en majuscule) %w (caractère alphanumérique) %x (chiffres hexadécimaux) %z (the character with representation 0). Quantifieurs (perl, lua) Ils permettent de fixer le nombre de caractères qu on cherche à faire correspondre dans un motif : + (1 caractère ou plus) * (0 caractères ou plus, chaîne de caractères la plus longue) - (0 caractères ou plus, chaîne de caractères la plus courte)? (0 ou 1 caractère). Exemples (lua) /%u?%l+/ (0 ou 1 caractère en majuscule, au moins 1 caractère en minuscule ; ce motif permet d identifier «Paris» ou «Tbilissi» dans un texte) /(19 20)%d%d/ (soit «19», soit «20» suivi de deux chiffres ; permet d identifier des années : «1995», «2015») 6.2 Exercices Dans le tableau suivant, indiquer le résultat de l application des expressions régulières sur le contenu textuel présenté. Texte Expression régulière Résultat 1995 /%a/ mars 1995 /^%a+/ le chat boit le lait s/chat/chien/ Pour le contenu textuel présenté ci-dessous, en fonction du résultat qu on souhaite obtenir, indiquer quelle expression régulière permet d atteindre ce résultat. Texte Résultat voulu Expression régulière 1995 1996 mars 1995 Extraire le mois le chat boit le lait mon chat boit le lait 8

7 Annotation automatique à base de règles : outil DARK 7.1 Présentation Ce travail repose sur l outil DARK (Direct Annotation using Rules and Knowledge), Thomas Lavergne (LIMSI-CNRS). L ajout, la modification et la suppression de règles et de lexiques se font dans le fichier «regles.lua». Syntaxe Les lignes ne se terminent pas par un point-virgule «;», le symbole pourcentage «%» sert à déspécialiser ou pour les classes de caractères Les étiquettes sont précédées d une esperluette «&» : &chemical &disorder &sosy Les captures se font au moyen des crochets (énorme avantage par rapport à PERL qui emploie les parenthèses aussi bien pour les captures que pour la disjonction), et le premier élément qui suit le crochet ouvrant est l étiquette qui sera apposée si la règle s applique : [&weight /%d+/ kg] Les commentaires se font avec deux tirets, on ne met pas de commentaire en fin de ligne : -- Ceci est un commentaire Les opérateurs habituels des expressions régulières sont disponibles : début, fin, quantifieurs "greedy" (capture la plus longue) et "lazy" (capture la plus courte), classes de caractères, disjonction, etc. : ^ $ * +? *? +??? [0-9] [a-z] %d %a %l %u (un deux) Les éléments atomiques sont les tokens, pas les caractères! Initialisation (création d un pipeline, objet dans lequel DARK va réaliser les différentes étapes) : local main = dark.pipeline() Lexiques Chargement d un lexique depuis un fichier (un mot par ligne) : main:lexicon("&objet", "objets.txt") tous les mots du corpus identifiés dans le lexique contenu dans le fichier objets.txt recevront l étiquette «objet». Création d un lexique dans le fichier *.lua : main:lexicon("&animaux", {"chien", "chat"}) les mots chien et chat du corpus recevront l étiquette «animaux». Règles (reposent sur les expressions régulières) : Sur une ligne : Exemple 1 : main:pattern( [&ponct /%p/ ] ) tous les signes de ponctuation du corpus recevront l étiquette "ponct" Exemple 2 : main:pattern( [&weight /%d+/ kg] ) les séquences constituées de chiffres suivis du token kg recevront l étiquette «weight» Exemple 3 : main:pattern( [&weight /%d+/ /kg/] ) les séquences constituées de chiffres suivis d un token contenant la chaîne kg recevront l étiquette «weight» Sur plusieurs lignes (ne change rien, améliore la lisibilité) : main:pattern([[ [&info &animaux &VRB ] ]]) les séquences constituées d un premier token déjà porteur de l étiquette «animaux» et d un deuxième token porteur de l étiquette «VRB» recevront l étiquette «info» Affichage à l écran 9

On définit la liste des étiquettes qu on souhaite afficher, et la couleur associée à chaque étiquette : local tags = { animal = "red", objet = "blue", } On peut décider : soit d afficher toutes les étiquettes produites par les différentes règles, projections de lexiques, et autre étiquetage (utile pour débugguer) : print(main(line)) soit d afficher uniquement les étiquettes listées ci-dessus (plus lisible pour un humain) : print(main(line):tostring(tags)) Modèles DARK est fourni avec un modèle d étiquetage en parties du discours pour le français et l anglais. Chaque token est donc étiqueté avec l une des 13 étiquettes suivantes (taux d erreur de 5 % sur du texte journalistique) : ADJ (adjectifs), ADP (pré/post-positions), ADV (adverbes), CON (conjonctions), DET (déterminants), NNC (noms communs), NNP (noms propres), NUM (numéraux et cardinaux), OTH (autres), PCT (ponctuations), PRO (pronoms), PRT (particules), VRB (verbes). Il est donc possible d écrire des règles fondées sur l étiquetage en POS. 7.2 Fichier «regles.lua» -- Création d un pipeline pour DARK local main = dark.pipeline() -- Chargement d un modèle existant (.mdl) ou création du modèle à -- partir de données annotées (*.dat) au moyen des MaxEnt main:model("model/postag-fr") -- Création d un lexique ou chargement d un lexique existant main:lexicon("&animal", {"chien", "chat"}) main:lexicon("&objet", "objets.txt") -- Création de patterns en LUA. La capture se fait avec les crochets, -- l étiquette à afficher est précédée de &~: &word main:pattern( [&weight /%d+/ kg] ) main:pattern("[&np ( &ADJ &DET )* &NNC ( &ADJ &DET )* ]") -- Sélection des étiquettes voulues, attribution d une couleur (black, -- blue, cyan, green, magenta, red, white, yellow) pour affichage sur -- le terminal ou valeur "true" si redirection vers un fichier de -- sortie (obligatoire pour éviter de copier les caractères de -- contrôle) local tags = { animal = "red", NP = "yellow", objet = "blue", weight = "magenta", } -- Traitement des lignes du fichier for line in io.lines() do -- Toutes les étiquettes print(main(line)) 10

end -- Uniquement les étiquettes voulues --print(main(line):tostring(tags)) 7.3 Exercice EXERCICE : télécharger et copier les fichiers «regles.lua» et «objets.txt» dans votre répertoire de travail. echo "Le petit chat dort sur la table de 80 kg."./dark regles.lua doit produire ceci à l écran : <NP>Le p e t i t < animal>chat< / a nimal>< / NP> d o r t sur <NP> l a < o b j e t > t a b l e < / o b j e t >< / NP> de < w e i g h t >80 <NP>kg< / NP>< / weight>. 8 Annotation automatique par apprentissage statistique : outil WAPITI 8.1 L apprentissage statistique Modèles génératifs (en haut du schéma 2 ) : bayésiens naïfs, chaînes de Markov cachées (HMM). Ils modélisent la probabilité jointe P (y, x) c est-à-dire la probabilité de l étiquette y compte tenu du vecteur de caractéristiques x. Pour décider de l étiquette à apposer sur un token, il est nécessaire de modéliser la probabilité conditionnelle P (y x) et de calculer la probabilité d un vecteur de caractéristiques P (x) : P (y, x) = P (y x)/p (x) Bayésien naïf (Naïve Bayes) : prédiction d un label sur la base d observations. Chaînes de Markov cachées (HMMs) : prise en compte des transitions au niveau local, entre la position courante et la position précédente. Modèles discriminants (en bas du schéma) : régression logistique (Logistic Regression) = entropie maximale, champs aléatoires conditionnels (CRF) de chaîne linéaire (Linear-chain CRFs). Ils modélisent directement la probabilité conditionnelle P (y x) c est-à-dire la séquence de labels la plus probable pour une séquence donnée de tokens. 2. Source : http://www.quora.com/can-hidden-markov-models-be-used-as-binary-classifiers-if-yes-how 11

8.2 WAPITI 8.2.1 Présentation L outil Wapiti repose sur le formalisme des champs aléatoires conditionnels (CRF Conditional Random Fields). Il implémente plusieurs alogirthmes (bcd, l-bfgs, rprop, sgd-l1). Il prend deux fichiers en entrée : Corpus avec annotations de référence format tabulaire (i.e., plusieurs colonnes séparées par une tabulation) ; un token par ligne (nécessite de réaliser une tokénisation) ; autant de colonnes que souhaité (même nombre de colonnes sur chaque ligne) ; la dernière colonne contient l annotation de référence. fichier.txt Le Mm 2 NUL DET O fichier.txt petit mm 5 NUL ADJ O fichier.txt chat mm 4 NUL NOM B-animal fichier.txt boit mm 4 NUL VRB O fichier.txt 2 NUL 1 DIGIT NUM B-quantite fichier.txt litres mm 6 NUL NOM I-quantite fichier.txt lait mm 4 NUL NOM O fichier.txt. NUL 1 NUL PCT O Ce fichier tabulaire contient, pour chaque token, des informations que l on espère utiles pour réaliser des prédictions. On distingue plusieurs types de caractéristiques : Caractéristiques de surface : informations qu il est possible d inférer directement depuis le token (nombre de caractères, casse typographique, présence de chiffres, présence de ponctuation, présence d affixes particulier, appartenance du token à une liste) ; Caractéristiques profondes : informations «riches» obtenues au moyen d outils externes (étiquetage en parties du discours, dépendances syntaxiques, appartenance du token dans un lexique) ; Caractéristiques externes : informations obtenues par rapport aux autres tokens, aux autres documents du corpus (fréquence du token en corpus, position du token dans le document, clustering non supervisé). Fichier de configuration pour préciser comment «lire» le corpus annoté. Système de coordonnées entre crochets [position:colonne] (avec position = 0 pour la ligne courante et colonne = 0 pour la première colonne). Pour les CRF : # Unigramme et bigrammes de tokens U10:%x[0,1] U11:%x[-1,1]/%x[0,1] U12:%x[0,1]/%x[1,1] # Unigramme de la casse typographique, de la taille U20:%x[0,2] U30:%x[0,3] # Bigram of output * 8.2.2 Utilisation Création d un modèle : wapiti train -a rprop -p config.tpl corpus-appr.tab modele.wap (avec -a le nom de l algorithme utilisé l-bfgs/owl-qn/sgd-l1/bcd/rprop et -p le fichier de configuration). 12

Application d un modèle : wapiti label -m modele.wap corpus-test.tab >sortie.tab (avec -m le nom du modèle précédemment créé, et éventuellement -c pour contrôler les prédictions produites par label, et -s pour ajouter les scores en sortie, utile pour un post-traitement correcteur). A Étiquettes en partie du discours (POS) et lemmes Catégorie (POS) Mots Lemme Forme générique Articles (ART) la, le, les le un, une, des un Adjectifs (ADJ) petit, petite, petits, petites petit géorgien, géorgienne, géorgiens, géorgiennes géorgien masculin singulier chat, chatte, chats, chattes chat Substantifs (SUB) fenêtre, fenêtres fenêtre table, tables table suis, es, est, sommes, êtes, sont être ai, as, a, avons, avez, ont avoir Verbes (VB) vais, vas, va, allons, allez, vont aller infinitif aime, aimes, aimons, aimez, aiment aimer installe, installes, installons, installez, installent installer Adverbes (ADV) ici ici Conjonctions (CONJ) et et mais mais à à au, aux à+le Prépositions (PREP) de de en en sur sur je je Pronoms (PRO) tu tu il, ils il ( cas nominatif) elle, elles elle nous nous sans changement vous vous me, m me Pronoms (PRO) te, t te ( cas accusatif) se, s se France France Noms propres (NOM) Géorgie Géorgie Paris Paris Tbilissi Tbilissi TABLE 1 Exemples d étiquettes en partie du discours (POS) et de lemmes pour quelques mots B Architecture Scripts PERL pour l annotation automatique avec l outil DARK application de DARK sur les fichiers *.txt d un répertoire, en utilisant un fichier de règles : perl 01_appliqueDARK.pl repertoire/ regles.lua conversion du format balisé au format tabulaire des fichiers d une extension donnée présents dans un répertoire : perl 02_tag2tab.pl repertoire/ extension fusion de deux versions de fichiers tabulaires en un seul tabulaire au format BIO (format BIO mal géré) : perl 03_fusionne.pl repertoire/hypothese/ repertoire/reference/ >sortie 13

évaluation des prédictions réalisées par l outil DARK d après la référence manuelle : perl conlleval.pl -d \t <sortie corpus/dark/*txt 00_creeFichiersAnn.pl 01_appliqueDARK.pl corpus/brat/*ann BRAT corpus/dark/*dark corpus/ref/*ann 02_tag2tab.pl 00_brat2xml.pl corpus/dark/*tab corpus/ref/*tag 02_tag2tab.pl 03_fusionne.pl corpus/ref/*tab sortie conlleval.pl FIGURE 3 Chaîne de traitements pour l application de DARK sur le corpus Corpus corpus/ brat/ fichiers *.txt, *.ann et *.conf pour l annotation manuelle avec l outil BRAT (voir section 5.3, page 6) ; dark/ fichiers *.txt pour l annotation automatique à base de règles et de lexiques avec l outil DARK (page 9) ; ref/ fichiers *.txt, *.ann et *.tag contenant les annotations manuelles de référence pour lancer les évaluations ; wapiti/ deux sous-répertoires pour l annotation par apprentissage statistique avec l outil WAPITI (page 11) : train/ fichiers tabulaires pour la construction du modèle CRF (apprentissage) test/ fichiers tabulaires pour l application du modèle (décodage) 14