Outils pour le traitement des textes Commandes Unix pour traiter les ressources linguistiques Éric Laporte Université Paris-Est Marne-la- Vallée.

Slides:



Advertisements
Présentations similaires
Tutoriel - Les Ressources du BCH
Advertisements

Les Structures.
Premier programme en C :
UTILISER JADE POUR LA CREATION DE GROUPES DE BESOIN.
Je lis, j’écris Objectif du logiciel S'entraîner à saisir précisément un mot, une expression, une phrase, un texte,
Utiliser autrement des données de Base Elèves 1) Choisir les données Base Élèves propose 3 sortes de listes, par exemple dans le menu : Elèves : Liste.
Bioinformatique et Perl
ANDRE Marine DABIN Julie WATERLOT Amandine
version Beta Marie Calberg Ninni Louhelainen SLFN7
Programmation et projet encadré
! 1 CREATION D'UNE MAQUETTE EXPORT / IMPORT
DUE PAR AUTHENTIFICATION
Autorisations Utilisation eCATT
11:16:331 Programmation Web Programmation Web : Formulaires HTML Jérôme CUTRONA
12 novembre 2012 Grégory Petit
Prise en main rapide... Ou comment commencer avec RevisAudit ?
Les feuilles de sécurité sociale
Travaux pratiques sur Nooj
Introduction à l'informatique linguistique
Les requêtes La Requête est une méthode pour afficher les enregistrements qui répondent à des conditions spécifiques. La requête est donc un filtre.
La Kessamo « » (Caisse à mots)
Cours de programmation
Concevoir un diaporama avec Power Point.
Créer un index.
VersaWorks: Impression de données variables
Version 2007Administration système Linux Francis Rogard 1 SYSTEME DEXPLOITATION LINUX La ligne de commandes.
OUTILS PRÉPARATION DE RENTRÉE La récupération de la liste des élèves présents dans lapplication SCONET.
TracenPoche Les fichiers >.
Guide d'utilisation de Microsoft Weft Il s'agit de convertir un ou des fichiers Police de caractères (font) généralement de type.ttf en un ou des fichiers.eot.
Publispostage Menu Outils / Lettres et publipostage
Introduction à la structuration des documents: les techniques M2: Gestion des connaissances.
Analyse des besoins en informatique du SRI
SEANCE 10 Python Entrée et sortie de fichiers Lycée Louis Vincent Lundi 20 janvier
INSCRIPTION AUX ELEMENTS
PROCEDURE TYPE D'AFFECTATION DES ETUDIANTS PAR PAQUETS Afficher la population d'étudiants à affecter en masse dans un ou plusieurs groupes : - Sélectionner.
Eric Laporte Institut Gaspard-Monge Université de Marne-la-Vallée France Introduction à Perl.
Outils pour le traitement des textes Levée d'ambiguïtés morpho-syntaxiques Éric Laporte Université Paris-Est Marne-la- Vallée.
Outils pour le traitement des textes Levée d'ambiguïtés morpho-syntaxiques Éric Laporte Université Paris-Est Marne-la- Vallée.
Outils pour le traitement des textes Outils Unix Éric Laporte Université Paris-Est Marne-la- Vallée.
Etiquettes lexicales, grammaires
Outils pour le traitement des textes Commandes Unix pour traiter les ressources linguistiques Éric Laporte Université Paris-Est Marne-la- Vallée.
Comment réaliser une mise en page ?. Tracer une zone de texte.
Diffusion Nationale TOULOUSE -Mai 2006 STSWEB Rattacher Services et ARE Gestion des pondérations.
Diffusion Nationale TOULOUSE -Mars 2006 Structure et Services « STS » Documentation et suivi.
Structure et Services « STS » Menu Structures : Divisions
Conversion de fichiers
Open Office Créer un graphique sous Open Office. Démarrage d' Open Office.
1 GPA435 Systèmes d’exploitation et programmation de système Copyright, 2000 © Tony Wong, Ph.D. Chapitre 8 Filtres UNIX.
Systèmes d’exploitation et programmation de systèmes -GPA435- Cours #8: Introduction aux filtres - Filtres UNIX Enseignant: Jean-Philippe.
TP n°3 Javascript Contrôle de formulaire
CAPTURER UN EXTRAIT VIDEO OU AUDIO AVEC VLC
Lancement de Microsoft Word
Maria Malek - EISTI - CPI11 Présentation d’UNIX –1969, laboratoire Bell –Systèmes multi-tâches multi-utilisateurs –Architecture Le noyau –Gestion de la.
La Kessamo « » (Caisse à mots)
Bureautique M1 Mise en forme évoluée 2.
SMIL Synchronized Multimedia Integration Language
WINWORD.. OBJECTIFS n.n. WINWORD n POURQUOI WINWORD n SAISIE n OPERATIONS AVANT IMPRESSION n CREATION DE MODELES.
eXtensible Markup Language. Généralités sur le XML.
Informatique TD 1 – Semestre 1
Modules Chapitre 1 : Système d’exploitation
1 Tutoriel SPIP Rédacteur. 2 Sommaire Connexion Interface SPIP Menu SPIP Rédiger un article Interface de création d’un article Fonctionnalités de base.
FORMATION Unix/Linux CHAPITRE 3: Commandes De Base.
GPA435 Systèmes d’exploitation et programmation de système Copyright, 2000 © Tony Wong, Ph.D. Chapitre 7 Neutralisation, redirection, décodage des paramètres,
U TILISATION DE ELAN AVEC D ’ AUTRES LOGICIELS Christophe Parisse, Inserm, Modyco/CNRS Université Paris Ouest Nanterre.
Scénario Les scénarios permettent de modifier la position, taille … des calques au cours du temps. Son fonctionnement est très proche de celui de Macromedia.
Bouton officeBarre de titre Ruban Office Espace de travail.
Dreamweaver le retour Avec Les Formulaires Les Calques
Ce logiciel vous permettra de générer les relevés 24 que vous avez à émettre. Ce logiciel permet l’entrée, la validation des données, l’impression des.
Utilisation du logiciel EduStat © Analyse de sondages Les compilations.
Formation SGA Module Saisie des Demandes d’achat Durée : 0,5 jour.
Transcription de la présentation:

Outils pour le traitement des textes Commandes Unix pour traiter les ressources linguistiques Éric Laporte Université Paris-Est Marne-la- Vallée

Sommaire Objectifs Visualiser un échantillon head, tail, less, iconv, sed Extraire des entrées grep Changer de format sed

Commandes Unix pour traiter les ressources linguistiques Avantages Disponibles sur tout environnement Unix Simples : scripts sans déclaration de structures de données, sinon mieux vaut utiliser perl, python, java... Inconvénients Toutes les versions ne font pas la même chose, donc faire des tests... Parfois incompatibles avec UTF-16 (Unitex) Seule structure de données : la ligne ; donc incompatible avec XML

Objectifs Visualiser un échantillon Extraire des entrées d'un lexique Traitement de certaines entrées Changer de format Corpus étiqueté par TreeTagger --> Unitex Construire l'index d'un ensemble de tables Index pour les linguistes Construire une table de classes

Visualiser un échantillon head -30 lexique.lst extraire les 30 premières lignes tail -30 lexique.lst extraire les 30 dernières lignes less -20 lexique.lst visualiser 20 lignes par 20 Vérifier le codage des caractères, le format des entrées... sur quelques exemples

Transcoder La plupart des commandes Unix fonctionnent bien en UTF-8 iconv -f UTF-16LE -t UTF-8 lex16.lst > lex8.lst Dans quel codage sont les caractères d'un fichier texte ? - Ouvrir le fichier avec Notepad++ et observer dans le menu Encodage quelle ligne est cochée : elle indique le codage utilisé. - Ou bien ouvrir le fichier avec MSWord ou Open Office, cliquer sur des lignes de la liste de codages, et vérifier à chaque fois dans l'aperçu si la visualisation correspondante est correcte.

Transcoder iconv -f UTF-16LE -t UTF-8 lex16.lst > lex8.lst Liste des codages disponibles : iconv -l Codage utilisé par Unitex : UTF16-LE Codages particuliers : script sed sed -f accents.sed corpus8.txt > corpus-latex.txt Commande de substitution sed : s///g

sed s+''\([^']\)+{''}\1+g s+à+\\`{a}+g s+à+\\`{a}+g s+â+\\^{a}+g s+é+\\'{e}+g s+è+\\`{e}+g s+ê+\\^{e}+g s+ë+\\"{e}+g s+î+\\^{\\i}+g s+ï+\\"{\\i}+g s+ô+\\^{o}+g s+ù+\\`{u}+g s+û+\\^{u}+g s+ü+\\"{u}+g s+ç+\\c{c}+g s+oe+{\\oe}+g

sed Séparateur de champs : n'importe quel caractère qui n'apparaît pas dans les champs s+é+\\'{e}+g s/é/\\'{e}/g s:é:\\'{e}:g s!é!\\'{e}!g Si on omet le g à la fin, la substitution est faite au plus une fois par ligne, à la première occurrence

Extraire des entrées Extraire des entrées d'un lexique egrep "+hum" lexique.lst > hum.lst extraire les entrées de noms marqués comme désignant des personnes egrep -c "+hum" lexique.lst compter ces entrées egrep -v "+hum" lexique.lst > non-hum.lst extraire les entrées non marquées comme désignant des personnes

grep, egrep Vérifier le format des entrées egrep -v "^[^,.]*,[^,.]*\.[^,.]*$" lexique.lst Syntaxe interne aux lignes Rechercher des contre-exemples Entrées qui n'ont pas exactement les deux délimiteurs attendus dans l'ordre attendu Expressions rationnelles possibles

fgrep Extraire les entrées de certains mots fgrep voici lex.lst fgrep -f liste-nue.lst lex.lst > sous-lex.lst Aucune expression rationnelle possible

Extraire une intersection Extraire les participes passés pour lesquels il existe aussi une entrée comme adjectif (poli) fgrep :Kms delaf.lst > Kms-0.lst abaissé,abaisser.V+z1:Kms abalourdi,abalourdir.V+z3:Kms abandonné,abandonner.V+z1:Kms abasourdi,abasourdir.V+z2:Kms cut -d, -f 1 Kms-0.lst > Kms.lst abaissé abalourdi abandonné abasourdi egrep "\.A.*:ms" delaf.lst > A.lst fgrep -f Kms.lst A.lst > Kms-inter-A.lst

cut Extraire de chaque ligne un ou plusieurs champs abaissé,abaisser.V+z1:Kms abalourdi,abalourdir.V+z3:Kms abandonné,abandonner.V+z1:Kms abasourdi,abasourdir.V+z2:Kms cut -d, -f 1 Kms-0.lst > Kms.lst abaissé abalourdi abandonné abasourdi Les champs sont numérotés à partir de 1 fgrep :Kms delaf.lst | cut -d, -f 1 > Kms.lst

fgrep Extraire les participes passés pour lesquels il existe aussi une entrée comme adjectif (poli) fgrep :Kms delaf.lst | cut -d, -f 1 > Kms.lst abaissé abalourdi abandonné abasourdi egrep "\.A.*:ms" delaf.lst > A.lst fgrep -f Kms.lst A.lst > Kms-inter-A.lst Ce script extrait abolitionniste car aboli est un participe passé

fgrep fgrep -f Kms.lst A.lst > Kms-inter-A.lst Le script extrait abolitionniste car aboli est un participe passé Kms.lst ablutionné aboli abominé abondé A.lst ablatif,.A+z2:ms aboli,.A+z3:ms abolitionniste,.A+z1:ms:fs abominable,.A+z1:ms:fs Kms-inter-A.lst abîmé,.A+z1:ms aboli,.A+z3:ms abolitionniste,.A+z1:ms:fs abonné,.A+z1:ms

fgrep fgrep -f Kms-1.lst A-0.lst > Kms-inter-A-1.lst Le script n'extrait pas abolitionniste Kms-1.lst {ablutionné, {aboli, {abominé, {abondé, A-0.lst {ablatif,.A+z2:ms} {aboli,.A+z3:ms} {abolitionniste,.A+z1:ms:fs} {abominable,.A+z1:ms:fs} Kms-inter-A-1.lst {abîmé,.A+z1:ms} {aboli,.A+z3:ms} {abonné,.A+z1:ms} {abordé,.A+z3:ms}

sed Extraire les participes passés pour lesquels il existe aussi une entrée comme adjectif (poli) Délimiter les champs sed -e "s/.*/{&}/" A.lst > A-0.lst {aalénien,.A+z3:ms} {abactérien,.A+z3:ms} {abaissable,.A+z2:ms:fs} {abaissant,.A+z2:ms} sed -e "s/.*/{&,/" Kms.lst > Kms-1.lst {abaissé, {abalourdi, {abandonné, {abasourdi, fgrep -f Kms-1.lst A-0.lst > Kms-inter-A-1.lst Ce script n'extrait pas abolitionniste

sed sed -e "s/.*/{&}/" A.lst > A-0.lst {aalénien,.A+z3:ms} {abactérien,.A+z3:ms} {abaissable,.A+z2:ms:fs} {abaissant,.A+z2:ms} Expressions rationnelles dans le premier champ de s/// & dans le deuxième champ : la séquence reconnue par le premier champ s/// si on veut reconnaître un seul motif par ligne

Extraire une différence Extraire les participes passés pour lesquels il n'existe pas d'entrée comme adjectif (fallu) egrep "\.A.*:ms" delaf.lst | cut -d, -f1 | sed -e "s/.*/{&,/" > A.lst fgrep :Kms delaf.lst | sed -e "s/.*/{&}/" > Kms.lst {abaissé,abaisser.V+z1:Kms} {abalourdi,abalourdir.V+z3:Kms} {abandonné,abandonner.V+z1:Kms} {abasourdi,abasourdir.V+z2:Kms} fgrep -v -f A.lst Kms.lst > K-sauf-A.lst {abalourdi,abalourdir.V+z3:Kms} {abcédé,abcéder.V+z3:Kms} {abdiqué,abdiquer.V+z1:Kms} {abeausi,abeausir.V+z3:Kms}

Changer de format Changer de format par des substitutions sed -f treetagger2unitex.sed treetagger.txt > unitex.txt Passer du format de sortie de TreeTagger au format d'entrée d'Unitex (tagged text) FranceNAMFrance :PUN: laDET:ARTle nouvelleADJnouveau générationNOMgénération {France,France.N+PR} : {la,le.DET} {nouvelle,nouveau.A} {génération,génération.N}

sed treetagger.txt : laDET:ARTle unitex.txt : {la,le.DET} Scripts sed sed -f treetagger2unitex.sed treetagger.txt > unitex.txt # treetagger2unitex.sed s/DET:ART/.DET/ # remplacer DET:ART par.DET avant : laDET:ARTle après : la.DETle

sed Reconnaître des séquences ambiguës treetagger.txt : ?SENT? unitex.txt : ?{S} SENT : code (sentence) ou mot (sentir) ? Utiliser les délimiteurs de champs s/\tSENT\t/{S}\t/ avant : ?SENT? après : ?{S}? Le délimiteur peut être différent pour chaque champ S'il le faut, introduire des délimiteurs de champs

sed Séquences ambiguës treetagger.txt : ?SENT? unitex.txt : ?{S} SENT : code (sentence) ou mot (sentir) ? Rechercher des exemples de la séquence pour voir si le problème se pose réellement egrep "SENT" treetagger.txt > auxiliaire.lst

sed Changer de délimiteurs treetagger.txt : générationNOMgénération unitex.txt : {génération,génération.N} s/\t/,/ avant : génération.Ngénération après : génération.N,génération Dans les substitutions qui viennent ensuite, les tabulations ont déjà été remplacées par des virgules Le fait d'avoir des substitutions successives introduit une confusion entre niveaux : - virgule du texte ? - virgule-délimiteur ?

sed Substitutions successives treetagger.txt : générationNOMgénération unitex.txt : {génération,génération.N} Utiliser des délimiteurs de champs non ambigus s/\t/\t,/ avant : génération.Ngénération après : génération.N,génération Le délimiteur "\t," est moins ambigu que ","

sed Déplacer, intervertir des champs treetagger.txt : laDET:ARTle unitex.txt : {la,le.DET} Utiliser les délimiteurs de champs s/\.\([^.,\t]\+\)\t,\([^.,\t]\+\)$/,\2.\1/ avant : la.DET,le après : la,le.DET Reconnaître les fins de lignes $ fin de ligne

sed Reconnaître les débuts et fins de lignes.* toute la ligne ^ début de ligne $ fin de ligne

sed Copier un champ treetagger.txt : laDET:ARTle unitex.txt : {la,le.DET} Utiliser les délimiteurs de champs s/.*/{&}/ avant : la,le.DET après : { la,le.DET } Copier & (dans la zone sortie, copie de la zone reconnue)

sed Caractères spéciaux dans le premier champ mais pas dans le deuxième * ^ $ [. s/\.\([^.,\t]\+\)\t,\([^.,\t]\+\)$/,\2.\1/ Séquences spéciales dans le premier champ \+ \? \{ \} \( \)