INDEXATION ET RECHERCHE D`INFORMATION

Transcription

INDEXATION ET RECHERCHE D`INFORMATION
Introduction à la recherche d'information
INDEXATION ET RECHERCHE
D'INFORMATION (IRI)
Cours DESS II et SCHM, Université Paris 11
Christian Jacquemin (Université Paris
11 et FONCTIONNELLE
LIMSI-CNRS)
APPROCHE
[Salton et Mc Gill 83]
LES RECHERCHES D'INFORMATIONS
Préparatifs
•
•
•
•
Classification et catégorisation de documents
Représentation de l'information
Bibliométrie
Segmentation de documents, indexation
Recherche d'information
•
•
•
•
http://www.limsi.fr/Individu/jacquemi/
Requêtes booléennes, par document similaire, par description de sujet, par parcours de thésaurus
Moteurs de recherche
Requêtes sur une base de données (type SQL)
Envoi d'information
•
[email protected]
Routage
Veille technologique
LE MODÈLE BOOLÉEN
LE MODÈLE VECTOR SPACE [Salton 89]
Une requête est une expression booléenne sur les termes des documents
Documents et requêtes sont exprimés comme des vecteurs de termes
Un document est sélectionné si et seulement si il satisfait l'expression booléenne
Les documents sont classés en fonction de leur proximité avec la requête (Cosinus)
(Auteur="Sartre" OU Auteur="Camus")
ET (Titre~"Mythe" OU Titre~"étranger")
RAPPEL, PRÉCISION ET FALLOUT
LA COURBE RAPPEL/PRÉCISION
La précision est une fonction décroissante du rappel.
Précision et rappel sont dans l'intervalle [0..1].
Précision = Rr / R
Rappel = Rr / P
Fallout = (R - P) / (D - R)
taux documents pertinents dans les documents rapportés
taux de documents pertinents rapportés
taux de documents non pertinents rapportés
INDEXATION AUTOMATIQUE: RÉDUCTION DE L'INFORMATION
Le but de l'indexation automatique est de transforment des documents en substituts capables de
représenter le contenu de ces documents (Salton & McGill, 1983, 3.3.A).
Les techniques basiques d'indexation automatique se font selon les étapes suivantes:
1.simplification du texte:
1.suppression des mots de fortes fréquences, généralement en référence à une stop list,
2.regroupement des formes morphologiquement liées par la racinisation,
2.sélection des meilleurs index, généralement basés sur des critères de fréquence tels que la valeur de
discrimination,
3.pondération des termes qui reflète l'importance des termes pour la recherche d'information.
Les termes utilisés traditionnellement en recherche d'information sont des mots simples. Toutefois
l'indexation sur des syntagmes est une technique complémentaire qui augmente la précision en
exploitant les termes multi-mots qui sont plus spécifiques que les termes simples.
CONCEPTS DANS UN META-THESAURUS: UMLS
La hiérarchie des fonctions biologiques dans le méta-thesaurus du Unified Medical Language System
(UMLS), un méta-thesaurus dans le domaine médical:
TERMES EN THESAURUS: AGROVOC
Entrée du terme Immunisation dans AGROVOC, un thesaurus en agronomie:
Code
ep
ep
ep
TG1
TG2
TG3
TG4
TS1
ta
ta
ta
ta
En
Es
Texte
IMMUNISATION
(immunisation spécifique
d'antigène)
immunisation active
immunisation croisée
sensibilisation immune
immunostimulation
immunothérapie
thérapeutique
contrôle de la maladie
vaccination
antigène
réponse immunitaire
résistance aux maladies
résistance induite
immunization
immunizaci'on
Glose
[note d'usage]
[non descripteur (synonyme)]
--[generic term (level +1)]
[-- (niveau +2)]
[-- (niveau +3)]
[-- (niveau +4)]
[terme spécifique (niveau -1)]
[terme associé]
---[équivalent en anglais]
[équivalent en espagnol]
TERMES DANS LES DOCUMENTS
Les termes dans les documents sont utilisés pour la communication scientifique et technique et doivent
satisfaire les trois critères suivants: économie, précision et adéquation (Sager).
Économie:
réutilisation du matériel existant en juxtaposant ou en surcomposant les termes (flux de sang
capillaire est un terme ternaire construit à partir du terme binaire flux de sang)
ou en référant à des concepts associés à des termes complexes au moyen d'expressions plus courtes
(CAPD = Continuous ambulatory peritoneal dialysis).
Précision
Ajout de modifieurs additionnels lorsqu'un terme est ambigu (glande salivaire mandibulaire est plus
précis queglande mandibulaire).
Adéquation:
Un compromis entre précision et économie en fonction du contexte courant, du focus, de la
connaissance du domaine, du niveau de technicalité du document, etc.
INDEXATION AUTOMATIQUE : NOTIONS
Index
INDEXATION AUTOMATIQUE : QUALITÉ DES TERMES
Bons discriminateurs (médecine) [Salton et Mc Gill 83]
Les documents sont indexés par des termes, des mots simples (ou composés) censés représenter le
contenu du document.
Les index ne reprentent donc qu'une partie du document.
1. marrow
3. lymphostasis
5. hela
2. amyloidosis
4. hepathitis
6.antigen
Mauvais discriminateurs (médecine) [Salton et Mc Gill 83]
On peut n'effectuer l'indexation que sur une partie du document.
Fichier inverse
Le fichier associant les termes aux documents.
4717. clinic
4719. act
4721. develop
4718. children
4720. high
4722. treat
Mots stop [Salton et Mc Gill 83]
MORPHOLOGIE : INTRODUCTION
1. a
3. across
5. afterwards
2. about
4. after
6.again
MORPHOLOGIE: NOTIONS DE BASE
But de la morphologie
Chaque mot de la langue a une catégorie morpho-syntaxique ou catégorie grammaticale
L'étude de la construction des mots (leurs structures, leurs variations, leurs similitudes).
Flexions, dérivations et mots composés
Le double intérêt de la morphologie en recherche d'information
•
Paradigme flexionnel: je travaille, tu travailles, elle/il travaille... Le lemme est travailler.
L'analyse des mots permet
(1) la simplification du texte en remplaçant les mots par leurs racines, et
(2) l'expansion des requêtes en ajoutant les mots de la même famille à une requête.
•
Paradigme dérivationnel: nation, nationalité, nationaliser... La racine est nation.
•
Les mots composés: un lave-vaisselle, un timbre poste, un centimètre, tout à fait.
La morphologie mise en oeuvre en recherche d'information est très simple comparée aux études
linguistiques.
Description d'un mot
•
•
•
Racine et lemme de nationaliseraient: lemme nationaliser et racine nation.
Catégorie morphosyntaxique (ou grammaticale) attachée au lemme: nationaliseraient est un
verbe.
Traits morphologiques distinguent les différentes flexions d'un paradigme flexionnel:
nationaliseraient est le verbe nationaliser à la 3ème personne de l'imparfait de l'indicatif.
MORPHOLOGIE DÉRIVATIONNELLE
MORPHOLOGIE: SCHÉMA GÉNÉRAL [Bauer 83]
Affixations
•
Préfixation: construire -> dé-construire.
•
Suffixation: construire -> construct-eur.
•
Allomorphies du suffixe -ion: permettre/permission, confondre/confusion, conduire/conduction.
Combinaison d'affixations sur une même racine
•
Structure d'un mot construit: déconstructeur = [ [dé [construire]V ]V eur]N.
RACINISATION: ALGORITHME DE LOVINS
a
l
i
s
t
i
c
a
l
l
y
Désuffixage et recodage séparés (Lovins, 1968).
Terminaisons (consultées par taille décroissante)
1
1
a
r
i
z
a
b
i
l
i
t
y
i
-al
lic
all
y
-antialness
-arisations
-arizations
-a
nta
ne
ou
s
10
9
-entialness
a
n
t
i
a
l
i
t
y
Règles de recodage des fins de racines (sont consultées dans cet ordre)
z
a
t
i
o
n
a
l
l
y
-ar
isa
tio
n...
1.suppression desconsomnes répétées: bb-, dd-, gg-, ll-, mm-, nn-, pp-, rr-, dd-, tt-...
2.iev- -> ief3.uct- -> uc4.umpt- -> um5.rpt- -> rb- ...
RACINISATION: ALGORITHME DE PORTER
Désuffixage et recodage simultanés (Porter, 1980)
Etape 1a
Etape 1c
Etape 3
-ATIONAL ->
-ATE
relATIONAL -> relATE
-TIONAL ->
-TION
condiTIONAL -> condiTION
RACINISATION: EXEMPLES
Racines produites par (Lovins, 1968).
Chaîne initiale
Chaîne après
désuffixage
Chaîne recodée
magnesia
magnes
magnes
magnesite
magnes
magnes
magnesian
magnes
magnes
magnetize
magnet
magnet
magnetometer
magnetometer
magnetometer
magnetometric
magnetometr
magnetometer
magnetometry
magnetometr
magnetometer
-SSES -> -SS
careSSES -> careSS
-IES -> -I
ponIES -> ponI
-SS -> -SS
careSS -> careSS
-S -> -
catS -> cat
-Y -> -I
happY -> happI
-ANT -> -
irritANT -> irrit
-EMENT -> -
replacEMENT -> replac
-MENT -> -
adjustMENT -> adjust
RACINISATION DU FRANÇAIS (Namer) 1/2
RACINISATION DU FRANÇAIS (Namer) 2/2
Analyse linguistique : le cas de -èrent
•
en général, -èrent marque les verbes du 3ème groupe au passé simple : céd-èrent
•
quelquefois, la terminaison est plus courte et -èrent marque le présent : légifèr-ent
•
très rarement, la terminaison est ambiguë : lac-èrent et lacèr-ent
Réduction des allomorphes
•
principe : réduction à une racine unique
cèd- -> cédjett- -> jet-
Règles et exceptions : le cas de -èrent
•
•
•
les partitions ambiguës sont lexicalisées car elles sont rares
la règle étant le désuffixage sur le suffixe le plus long, les verbes correspondant au suffixe -ent tels
que légifèr- sont lexicalisés
Règles et exceptions : le cas de tt•
26 lemmes ont leur racine qui se termine par tt-
•
pour les autres, la consonne géminée est simplifiée
dans les autres cas (e.g. céd-), le désuffixage se fait régulièrement sur -èrent.
AUTOMATES FINIS
EXPRESSIONS RÉGULIÈRES ET AUTOMATES À ÉTATS FINIS
Un automate fini est un graphe (arcs étiquetés sur un alphabet = transitions et noeuds = états) avec un
état distingué (1, l'état initial) et un ensemble d'états distingués (les états finaux).
Le logiciel TERMS (Justeson & Katz, 1995) d'extraction terminologique repose sur les filtres de patrons
de catégories syntaxiques au moyen de l'expressions regulière suivante:
((A | N)+ | (A | N)* (N P) (A | N)*) N
L'automate à états finis qui représente le langage défini par cette expression régulière est:
Une chaîne est acceptée ssi il existe un chemin allant de l'état initial à un état final étiqueté par cette
chaîne.
TRANSDUCTEURS FINIS
Un transducteur fini est un automate dont les transitions portent des couples d'étiquettes : une étiquette
d'entrée et une étiquette de sortie.
TRANSDUCTEURS FINIS : OPÉRATIONS
Trois opérations sur les transducteurs
Union
Si T1 et T2 sont deux transducteurs, il existe un transducteur T1 U T2 tel que l'image de toute chaîne
par T1 U T2 soit l'union des images par T1 et T2.
Inversion
Si T est un transducteur, il existe un transducteur T-1 tel que l'image de toute chaîne C par T-1 est
l'union des chaînes dont l'image par T est C.
Composition
Si T1 et T2 sont deux transducteurs, il existe un transducteur T2 o T1 tel que l'image de toute chaîne
C par T2 o T1 soit l'image par T2 de l'image de C par T1.
Une chaîne est acceptée ssi il existe un chemin Callant de l'état initial à un état final étiqueté par cette
chaîne. La chaîne émise est obtenue en concaténant les symboles émis sur les transitions du chemin C.
Inversion et composition sont les deux propriétés les plus importantes. Elles permettent (1) d'inverser un
transducteur passant, par exemple, d'analyse en génération et (2) de composer autant de transducteurs
élémentaires que l'on souhaite en une machine complexe.
Les transducteurs ne sont pas fermés pour l'intersection.
ANALYSE MORPHOLOGIQUE: APPROCHE CONCATENATIVE
Une approche concaténative de la morphologie basée sur une arc-list, une liste de toutes les formes
de base associées avec des suffixes flexionnels (Tzoukermann & Liberman, 1990)
ANALYSE MORPHOLOGIQUE FLEXIONNELLE
(TZOUKERMANN) 1/2
ANALYSE MORPHOLOGIQUE FLEXIONNELLE
(TZOUKERMANN) 2/2
Étiq. Étiq. Cha
entrée sortie îne
rece
1
226
v
226
Fin oir
226
Fin ons
226
Fin ez
226
Fin ais
226
Fin ais
1
225 reç
225
Fin ois
225
Fin ois
225
Fin oit
oive
225
Fin
nt
225
Fin us
225
Fin us
GRAMMAIRES HORS CONTEXTE
Une grammaire hors contexte est décrit par des règles avec un non-terminal en partie gauche et une
partie droite composée d'une concaténation de non-terminaux et de chaînes du langage.
Traits
recevoir/69091
Pour la description d'un syntagme nominal en anglais, on peut écrire une grammaire des syntagmes
nominaux telle que:
verb/infinitive
1st/plural/present/indicative
2nd/plural/present/indicative
1st/singular/imperfect/indicative
2nd/singular/imperfect/indicative
recevoir/69091
1st/singular/present/indicative
2nd/singular/present/indicative
3rd/singular/present/indicative
<PreMod>
3rd/plural/present/indicative
<Nom>
<SN>
<PreMod>
<PreMod>
<Adj>
->
->
->
->
->
->
<PreMod> <Nom>
<PreMod> and <PreMod>
<PreMod> <PreMod>
<Adj> | <Nom>
normal
blood | bone | cell | marrow
1st/singular/simple-past/indicative
2nd/singular/simple-past/indicative
ARBRES D'ANALYSE
ASSOCIATIONS DE MOTS
Les deux arbres de dérivation associés à blood and bone marrow cell par la grammaire précédente
sont:
Les quatre fréquences caractérisant une paire de mots dans un texte sont représentées par la table de
contingence suivante (Daille, 94, chap 4.3.2):
w2
w'!= w2
w1
a = f(w1,w2)
b = SOMw' != w2f(w1,w')
w != w1
c = SOMw! = w1f(w,w2)
d = SOMw != w1,w' != w2f(w,w')
L'Information Mutuelle est une mesure utilisée en théorie de l'information (Fano, 61, chap. 2) et
appliquée aux associations de mots:
IM(X,Y) = log2(P(w1,w2) / (P(w1) P(w2))) = log2a/((a+b)(a+c))
PERL: INTRODUCTION
Présentation
Ce tutoriel est inspiré du tutoriel en ligne de Nik Silver à l'Université de Leeds.
Il est orienté vers l'extraction d'information à partir de données textuelles et ne prétend pas présenter
toutes les facettes de ce langage.
Perl est un logiciel GNU Public Licence.
Introduction à Perl
PERL: PREMIER PROGRAMME
Un programme simplissime
Un programme d'affichage d'une chaîne :
PERL: EXÉCUTION
Deux solutions
•
#!/usr/local/bin/perl
#
# Programme d'affichage d'une chaîne
#
print "Ça marche !";
# Imprime un message
Composantes
•
Lancement du programme perl supposé localisé à /usr/local/bin
#!/usr/local/bin/perl
•
Le texte suivant un # sur une ligne est un commentaire.
#
# Programme d'affichage d'une chaîne
#
•
La dernière ligne est une instruction d'impression à l'écran.
print "Ça marche !";
Faire exécuter le programme par perl
>perl mon_prog.prl
•
Rendre le programme exécutable et le lancer directement.
>chmod +x mon_prog.prl
>mon_prog.prl
Ça marche !>
Si le message d'erreur
bash: ./mon_prog.prl: No such file or directory
s'affiche, vérifier que le chemin pour accéder à perl est correct en tapant :
which perl
PERL: VARIABLES SCALAIRES
Exemples
•
Opérations
Les variables scalaires en perl ne sont pas typées. Elles contiennent donc indifféremment des
nombres entiers, des nombres flottants ou des chaînes de caractères.
$titre = "Un titre de " . 3 . " lignes\navec un retour à\nla ligne.\n";
print $titre;
donne
Un titre de 3 lignes
avec un retour à
la ligne.
La concaténation de chaînes (donc un environnement de chaînes de caractères) convertit les
nombres en chaînes.
•
PERL: OPÉRATIONS ET AFFECTATIONS
Opération arithmétique sur une variable scalaire
$x = 2;
$x += 5;
print $x . "\n";
donne
Perl utilise les opérateurs arithmétiques de C classiques:
$a = 1
$a = 3
$a = 5
$a = 7
$a = 9
$a = 5
++$a;
$a++;
--$a;
$a--;
+ 2;
- 4;
* 6;
/ 8;
** 10;
% 2;
#
#
#
#
#
#
#
Division rationnelle (non entière)
puissance
Reste de la division entière
Préincrément
Post-incrément
Prédécrément
Post-décrément
et pour les chaînes:
$a = $b . $c;
$a = $b x $c;
# concaténation
# $b répété $c fois
Affectations
$a
$a
$a
$a
= $b;
+= $b;
-= $b;
.= $b;
#
#
#
#
Affecte $b à $a
Ajoute $b à $a
Soustrait $b de $a
Concatène $b à $a
7
Contrairement aux langages à pointeurs comme Java, l'instruction $a = $b copie le contenu de $b dans
$a. Toute modification ultérieure de $b ne changera pas la valeur de $a.
PERL: INTERPRÉTATION DE VARIABLES
PERL: TABLEAUX 1/2
Forcer l'interprétation d'une variable dans une chaîne
Définition
Il y a deux façons de définir une chaîne : avec des doubles ou des simples quotes.
Un tableau est une liste ordonnée de variables scalaires.
Seules les doubles quotes forcent l'interprétation des variables
$a = "perl";
$chaine = "Je programme en $a.\n";
print $chaine;
donne
@a = (1 , "deux" , "3");
print $a[1] . "\n";
donne
deux
Affectations
Je programme en perl.
On peut utiliser un tableau pour en construire un autre :
alors que
$a = "perl";
$chaine = 'Je programme en $a.\n';
print $chaine;
donne
@a = (1 , "deux" , "3");
@b = ("ZERO" , @a , (2+2));
# donne @b = ("ZERO" , 1 , "deux" , "3" , 4);
Ajouter ou soustraire des éléments un par un par la fin du tableau :
@a = (1 , "deux" , "3");
push(@a , 2**2);
# donne @a = (1 , "deux" , "3" , 4);
$b = pop(@a);
# donne @a = (1, "deux" , "3") et $b = 4;;
Je programme en $a.\n>
PERL: TABLEAUX 2/2
PERL: FICHIERS 1/2
Affectations combinant variables scalaires et tableaux
Ouverture, fermeture et lecture
On peut directement manipuler des variables scalaires dans un tableau lors d'affectations :
Ouverture d'un fichier, stockage dans un tableau, puis affichage.
($a, $b) = ($c, $d);
($a, $b) = @tab;
#
#
#
#
#
#
($a, @reste) = @tab;
Équivaut à $a=$c; $b=$d;
$a et $b ont pour valeurs respectives
les deux premiers éléments de @tab
$b est vide si @tab n'a qu'un élément
$a est le premier élément de @tab
@reste est la liste des éléments restants.
Attention : dans le cas de gros fichiers, cette commande peut saturer la mémoire car elle fait stocker
l'ensemble du fichier dans un tableau.
#!/usr/local/bin/perl
$NomFic = 'doc/doc.txt';
open(INFO, $NomFic);
@lignes = <INFO>;
close(INFO);
print @lignes;
Taille d'un tableau
$#tab
ou en forçant un tableau à être converti en nombre dans un contexte numérique :
#
#
#
#
#
Nom du fichier
Ouverture du fichier
Stockage dans un tableau
Fermeture du fichier
Impression du fichier sur la sortie standard
#
#
#
#
Ouverture pour lecture
Alternative explicite pour lecture
Ouverture pour écriture
Ouverture pour écriture en fin
Différents modes d'ouverture
@tab + 0
Affichages
@a = (1 , "deux" , "trois");
print @a."\n";
# 3: la taille en contexte scalaire
print "@a\n";
# 1 deux trois: la concaténation avec des séparateurs
print @a;
# 1deuxtrois: les éléments soudés
open(INFO,
open(INFO,
open(INFO,
open(INFO,
$file);
"<$file");
">$file");
">>$file");
PERL: FICHIERS 2/2
Propriétés
•
L'instruction $ligne = <INFO> ne stocke que la première ligne du fichier. Si elle est réitérée,
on lit le fichier ligne à ligne.
•
Les filehandles STDIN, STDERR, et STDOUT représentent les entrée, sortie et erreur standard.
•
Pour écrire dans un fichier faire
PERL: TEST BOOLÉENS
Tests sur scalaires
Les tests sur les valeurs scalaires :
$a == $b
!=
<
<=
>
>=
$b
$b
$b
$b
$b
#
#
#
#
#
#
#
$a numériquement égal à $b
Attention: ne pas utiliser l'opérateur =
$a numériquement distinct de $b
$a inférieur strict à $b
$a inférieur ou égal à $b
$a supérieur strict à $b
$a supérieur ou égal à $b
print FILE $chaine;.
$a
$a
$a
$a
$a
En conséquence
L'identité des chaînes est traitée séparément :
print $chaine;
$a eq $b
$a ne $b
# la chaîne de $a égale à celle de $b
# la chaîne de $a distincte de celle de $b
équivaut à
print STDOUT $chaine;
•
Pour sélectionner une sortie par défaut faire
select FILE.
Opérations logiques sur les valeurs booléennes
($a && $b)
($a || $b)
!($a)
# $a ET $b
# $a OU $b
# NON $a
PERL: EXÉCUTION CONDITIONNELLE
PERL: CONTRÔLES 1/2
Test if/else
Parcours des éléments d'un tableau : foreach
Une instruction conditionnelle peut se faire sur le test de toute valeur booléenne ou scalaire. Les valeurs
faux sont soit 0, soit la chaîne vide, soit un tableau vide :
On parcourt un à un tous les éléments du tableau @tab :
#!/usr/bin/perl
print "Entrée:";
$chaine = <STDIN>;
# Saisie en entrée standard
chop $chaine;
# Supprime la fin de ligne de l'entrée
if ($chaine) {
printf "La chaîne a pour longueur %d\n" , length($chaine);
}
else {
print "La chaîne est vide ou le nombre est nul.\n";
}
$ind = 1;
foreach $element (@tab) {
print "Item numéro $ind : $element\n";
$ind++;
}
# parcours des éléments de @tab
# imprime l'élément
Boucle for
for (initialise; test; inc) {
action_1;
action_2;
etc
En exécution, on obtient alors :
}
Entrée:
La chaîne est vide ou le scalaire est nul.
Entrée:0
La chaîne est vide ou le scalaire est nul.
Entrée:perl
La chaîne a pour longueur 4
L'instruction initialise est effectuée en début de boucle.
Tant que test est vrai le corps de l'instruction est effectué.
Après chaque exécution du bloc inc est effectué.
Exemple d'impression des nombres de 1 à 9 :
for ($i = 1; $i < 10; ++$i) {
# Commence avec $i = 1
# Poursuit tant que $i < 10
# Incrémente $i avant de répéter
print "$i\n";
}
PERL: CONTRÔLES 2/2
PERL: EXPRESSIONS RÉGULIÈRES 1/6
Boucles while et until
Recherche d'une expression régulière dans une chaîne
Les boucles while et until peuvent se faire en test initial ou en test final.
L'opérateur =~ m/RegExp/ ou =~ /RegExp/ permet de rechercher une expression régulière dans une
chaîne :
L'exemple suivant illustre la saisie d'un mot de passe au clavier par une boucle while à test initial :
#!/usr/bin/perl
print "Password:";
$a = <STDIN>;
chop $a;
while ($a ne "perl") {
print "Incorrect!\nPassword:";
$a = <STDIN>;
chop $a;
}
#
#
#
#
#
#
#
Invite
Saisie en entrée standard
Supprime la fin de ligne de l'entrée
Tant que la saisie est fausse
Re-invite
Re-saisit
Re-supprime la fin de ligne
$chaine = "Perl est interprété. Perl est optimisé pour scanner des fichiers.";
if( $chaine =~ /Perl est ([a-zÀ-ü]+)/ ) {
printf "Perl est bien %s.\n" , $1;
}
La variable $n permet de récupérer la chaîne s'appariant avec la nième expression régulière entre
parenthèses.
En exécution, on obtient alors :
Perl est bien interprété.
On aurait pu utiliser une boucle until à test initial en remplaçant le test de boucle par :
until ($a eq "perl")
Formulation alternative de la saisie du password par une boucle à test final :
#!/usr/bin/perl
do {
print "Password:";
$a = <STDIN>;
chop $a;
}
until($a eq "perl");
# Invite
# Saisie
# Supprime la fin de ligne
Vous remarquerez que la première sous-chaîne (celle la plus à gauche) à s'apparier avec l'expression
régulière est retenue.
C'est pour cela que l'on n'obtient pas optimisé.
PERL: EXPRESSIONS RÉGULIÈRES 2/6
La chaîne par défaut $_
PERL: EXPRESSIONS RÉGULIÈRES 3/6
Caractères spéciaux
L'identificateur $_ désigne la chaîne par défaut. Elle est utile en analyse de fichier :
Caractères joker ou répétition de Kleene :
while(<STDIN>) {
if( /Perl/ ) {
print;
}
}
.
^
$
*
+
?
# équivaut à while( $_ = <STDIN> )
# équivaut à if( $_ =~ /Perl/ )
# équivaut à print STDOUT $_;
Ce programme imprime toutes les lignes de l'entrée standard qui contiennent la chaîne Perl.
Le langage Perl
Le langage Perl
Introduction
Perl fait la difference
Perl fait la difference
t.i
^f
^ftp
e$
com$
mot *
.*
^$
#
#
#
#
#
#
#
#
#
t puis tout caractère puis i:
toi ou tri, pas ti ou teli
f au début d'une ligne
ftp au début d'une ligne
e à la fin d'une ligne
com à la fin d'une ligne
mot suivi de 0 ou plusieurs espaces
une chaîne de taille quelconque sans \n
Une ligne vide (attention à supprimer \n par chop)
PERL: EXPRESSIONS RÉGULIÈRES 5/6
Caractères spéciaux
Les ensembles se notent entre crochets droits :
[qjk]
[^qjk]
[a-z]
[^a-z]
[a-zA-Z]
[a-z]+
Tout caractère sauf le retour à la ligne
Le début d'une ligne ou d'une chaîne
La fin d'une ligne (\n non compris) ou d'une chaîne
Une occurrence ou plus du caractère ou de l'expr. précédente
Zéro ou plusieurs occurrences du caractère ou de l'expr. précédente
Zéro ou une occurrence du caractère ou de l'expr. précédente
Exemples d'appariements (à mettre entre /.../) :
PERL: EXPRESSIONS RÉGULIÈRES 4/6
Ensembles
#
#
#
#
#
#
#
#
#
#
#
#
Soit q, soit j, soit k
Ni q, ni j, ni k
Tout caractère dont le code est compris entre a et z
Aucun caractère dont le code est compris entre a et z
Tous les caractères alphabétiques sans diacritiques
Toute chaîne de caractères alphabétiques non vide
Disjonctions et parenthésage
Une barre verticale | représente un "OU" et les parenthèses (...) servent à construire des expressions plus
complexes :
fromage|dessert # Soit fromage, soit dessert
from(age|ent)
# Soit fromage, soit froment
(le )+
# Soit le , soit le le ...
Les caractères spéciaux, pour qu'ils ne soient pas considérés comme des caractères de commande,
doivent être précédés d'un antislash s'ils sont utilisés dans une chaîne. Par exemple : \|, \[, \),
\*, \^, \/, \\.
Les caractères suivants sont des raccourcis pour des caractères hexadécimaux ou des ensembles de
caractères :
\n
\t
\w
\W
\d
\D
\s
\S
#
#
#
#
#
#
#
#
#
#
#
Nouvelle ligne
Tabulation
Tout caractère alphanumérique (sauf diacritiques)
équivaut à [a-zA-Z0-9_] (w=word)
Tout caractère non alphanumérique
équivaut à [^a-zA-Z0-9_]
Tout chiffre, équivaut à [0-9]
Tout non chiffre. équivaut à [^0-9]
Tout caractère séparateur : espace,
tabulation, nouvelle ligne.
Tout caractère sauf les séparateurs
PERL: EXPRESSIONS RÉGULIÈRES 6/6
PERL: SUBSTITUTION 1/3
Exemples d'expressions régulières
Opérateur de substitution dans une chaîne
Quelques exemples simples :
L'opérateur s/ExprReg/Chaîne/ permet de remplacer une expression régulière par une chaîne :
[01]
\/0
\/ 0
\/\s0
$chaine = "Perl est interprété. Perl est optimisé pour scanner des fichiers.";
$chaine =~ s/scanner/analyser/; printf "$chaine\n";
$chaine =~ s/Perl est ([a-zÀ-ü]+)/Perl est compilé/; printf "$chaine\n";
\/ *0
\/\s*0
\/\s*0\.0*
#
#
#
#
#
#
#
#
#
#
#
#
#
"0" ou "1"
Une division par zéro: "/0"
Une division par zéro avec un espace: "/ 0"
Une division par zéro avec un séparateur:
"/ 0" où le blanc est un espace, une tabulation...
Une division par zéro avec des espaces
éventuels : "/0" ou "/ 0" ou "/ 0" etc.
Une division par zéro avec des séparateurs
éventuels.
Comme le précédent, mais avec une partie décimale
optionnelle nulle ou vide. Par exemple,
"/0." ou "/0.0" ou "/0.00" etc
ou "/ 0." ou "/ 0.0" ou "/
0.00" etc.
donne
Perl est interprété. Perl est optimisé pour analyser des fichiers.
Perl est compilé. Perl est optimisé pour analyser des fichiers.
Modifieurs de la substitution
•
•
Le modifieur i indique que l'appariement dans l'expression régulière se fera sans tenir compte de
la casse des caractères.
Le modifieur g indique que l'on effectue autant de substitutions que d'occurrences de
l'expression régulière.
$chaine = "un browser pour voir une page donnée sur un serveur.";
$chaine =~ s/(\bun\b)/le/gi;
# \b: frontière de mots (boundary)
printf "$chaine\n";
donne
le browser pour voir une page donnée sur le serveur.
PERL: SUBSTITUTION 2/3
PERL: SUBSTITUTION 3/3
Mémorisation de sous-chaînes dans un appariement
Mémorisations liées à l'appariement complet
Les chaînes appariées avec des sous-expressions régulières entre parenthèses sont mémorisées :
Après un appariement, les variables suivantes sont accessibles en lecture seule :
•
•
dans les chaînes par $i (une variable non modifiable et volatile par définition),
dans les expressions régulières par \i.
$chaine = "Le langage Perl est interprété. Perl est optimisé.";
if ( $chaine =~ /(.+).*\1/ ) {
print "La séquence \"$1\" est répétée !\n";
}
if ( $chaine =~ /(\b[^\s]+\b).*\1/ ) {
print "Le mot \"$1\" est répété !\n";
}
donne
La séquence "e " est répétée !
Le mot "Perl" est répété !
•
•
•
$` : ce qui était avant l'appariement,
$& : ce qui s'est apparié,
$' : ce qui était après l'appariement.
Ainsi, après l'appariement suivant :
$_ = "Le langage Perl est interprété.";
/Perl/;
les égalités suivantes sont vraies :
$` eq "Le langage Perl ";
$& eq "Perl";
$' eq " est interprété.";
PERL: TRANSLATION
PERL: split ET join
Éclatement d'une chaîne dans un tableau : split
Translation caractère à caractère
L'opérateur split(ExprReg,Chaine) place dans un tableau les sous-chaînes séparées par
ExprReg.
L'opérateur tr/ListeCarIni/ListeCarFin/ permet de substituer tous les caractères de
ListeCarIni par les caractères en même position dans ListeCarFin :
$chaine = "interpréteurs PERL pour à peu près toutes les plates-formes";
$chaine =~ tr/éèêà\-A-Z/eeea a-z/; printf "$chaine\n";
Concaténation des éléments d'un tableau : join
L'opérateur join(Chaine,Tableau) transforme un tableau en une concaténation de ses
composantes en intercalant Chaine.
désaccentue les e et les a, remplace les tirets par des blancs et transforme les majuscules en minuscules :
interpreteurs perl pour a peu pres toutes les plates formes
Exemple :
$chaine = "Bonheur intégral. Légère, la poudre - en vol - tournoie ! Tout y
est.";
@mots = split( /[\.\-!\?\, ]+/ , $chaine );
print join( '|' , @mots ) , "\n";
donne :
Bonheur|intégral|Légère|la|poudre|en|vol|tournoie|Tout|y|est
Cas d'une expression régulière vide :
$chaine = "Bonheur."; @lettres = split( // , $chaine );
print join( '|' , @lettres ) , "\n";
donne :
B|o|n|h|e|u|r|.
PERL: SOUS-CHAÎNE
PERL: TABLEAUX ASSOCIATIFS 1/2
Extraction de sous-chaînes
Saisie et lecture des tableaux associatifs
La commande substr permet d'extraire une sous-chaîne à partir d'un indice de départ et pour une taille
donnée :
Un tableau associatif indexe des éléments sur une clé unique.
Il peut se garnir de deux façons :
substr("Once upon a time", 3, 4);
substr("Once upon a time", 7);
substr("Once upon a time", -6, 5);
%naissance = ("Mick Jagger", "26.07.1943", "Agatha Christie", "15.09.1890");
# retourne "e up"
# retourne "on a time"
# retourne "a tim"
ou
$naissance{"Marilyn Monroe"} = "01.06.1926";
Les égalités suivantes sont vraies :
$naissance{"Mick Jagger"} eq "26.07.1943"
$naissance{"Marilyn Monroe"} eq "01.06.1926"
Affectation
On peut affecter un tableau dans un tableau associatif et l'inverse.
Le tableau contient aux rangs pairs les clés et aux rangs impairs les valeurs.
PERL: TABLEAUX ASSOCIATIFS 2/2
PERL: SOUS-PROGRAMMES 1/3
Énumération des éléments d'un tableau associatif
Déclaration et appel d'un sous-programme
Un tableau associatif s'énumère de deux façons.
Avec foreach pour parcourir les clés ou les valeurs :
Déclaration - Le tableau @_ contient les paramètres passés lors de l'appel :
foreach $celebrite (keys %naissance) {
print "$celebrite est né(e) le $naissance{$celebrite}\n";
}
foreach $date (values %naissance) {
print "Une célébrité est née le $date\n";
}
sub moyenne2 {
local($a, $b)=@_;
($a + $b) / 2;
}
while (($celebrite, $date) = each(%naissance)) {
print "$celebrite est né(e) le $date\n";
}
sub moyenneN {
local($somme, $valeur);
$somme = 0;
foreach $valeur (@_) {
$somme += $valeur;
}
$somme / @_;
}
On obtient :
Appel - On fait précéder le nom du sous-programme de & :
Mick Jagger est né(e) le 26.07.1943
Marilyn Monroe est né(e) le 01.06.1926
Agatha Christie est né(e) le 15.09.1890
print "Moyenne : " , &moyenneN( 14, 12, 19 ) , "\n";
ou avec each pour parcourir les couples
affiche :
Les éléments d'un tableau associatifs ne sont pas ordonnés.
On y accède rapidement par une technique de hashcode.
PERL: SOUS-PROGRAMMES 2/3
PERL: SOUS-PROGRAMMES 3/3
Différence entre my et locale
•
•
•
Moyenne : 15
Paramètres d'appel du programme principal
Les variables globales (par défaut) sont visibles dans l'ensemble du package courant.
Les paramètres d'appel sur la ligne de commande sont accessibles par le tableau @ARGV :
Les variables local ont une portée dynamique qui se limite à la durée de l'exécution du bloc où
elles sont déclarées. La valeur des variables globales de même nom est sauvegardée dans la pile et
restaurée à la fin de l'existence des variables locales.
#!/usr/bin/perl
if( @ARGV != 1 ) {
die "usage: scanneur <input-file>";
}
$NAMEInputfile = $ARGV[0];
open( INPUT , $NAMEInputfile )
|| die "Fichier $NAMEInputfile introuvable!";;
while(<INPUT>) {
# faire un traitement et afficher
}
Les variables global ont une portée lexicale (donc statique) qui se limite à la portée du bloc où
elles sont déclarées.
Leur valeur est stockée dans une table de variables my pendant la durée de leur vie.
Un exemple de Eike Grote (Université de Bayreuth)
Appel - On fait suivre le nom du programme par ses arguments sur la ligne de commande :
Code
Table de
symb. de main
$v = 42;
v = 42
{
v = 100
local $v = 100;
{
my $v = 7;
}
}
v = 100
v = 100
v = 42
Table des
Pile
variables my locale
Commentaire
$v global
v=7
v = 42
Contenu de $v est remplacé
v = 42
Variable lexicale $v
v = 42
Fin du bloc my
Fin du bloc local
>scanneur mon_fic.txt > sortie.txt
PERL: PAGES DE MANUEL
Les pages man de Perl
Quelques règles à suivre :
Elles sont très bien documentées et subdivisées en plusieurs sous-thèmes :
man
man
man
man
man
man
perldata
perlsyn
perlop
perlre
perlrun
perlfunc
PERL: PRÉCAUTIONS DE PROGRAMMATION
#
#
#
#
#
#
Perl
Perl
Perl
Perl
Perl
Perl
structures de données
syntaxe
operateurs et précédence
expressions régulières
exécution et options
fonctions prédéfinies
Les programmes Perl sont facilement illisibles, incompréhensibles, impossibles à maintenir et donc
inutilisables.
Perl = Pathologically Eclectic Rubbish Lister
Pour éviter cela, il est recommandé de :
Pour obtenir la liste des pages spécialisées, faire :
•
Commenter abondamment les programmes (autant de commentaires que de code).
man perl
•
Utiliser des noms de variables explicites
•
Aérer les programmes.
•
•
Éviter des raccourcis de programmations qui rendent les programmes incompréhensibles mais
qui font très "Perl hacker" (réussir a faire en une ligne illisible ce que d'autres font en dix lignes
claires et explicites).
Ne pas faire de programmes longs, préférer une subdivision en sous programmes.
Pour se limiter à du Perl "sûr", mettre la commande
use strict;
en tête de programme.
EXTRACTION TERMINOLOGIQUE: INTRODUCTION
But
Extraire des documents des informations linguistiques compactes et représentatives de leur contenu.
Application : indexation, résumé, contitution de thésaurus...
Extension : extraction des informations non techniques ou scientifiques, les entités nommées (dates,
noms propres, montants numériques, noms de lieux et d'institutions...)
Extraction terminologique
Deux domaines complémentaires
Reconnaissance
Un ensemble de termes contrôlés étant donné,
on cherche à reconnaître les occurrences de ces termes ou de leurs variantes dans les documents.
Acquisition
On cherche à découvrir des occurrences de termes dans les documents au moyen de techniques
symboliques (parseurs) ou statistiques (classifieurs).
SOUS-DOMAINES DE L'EXTRACTION TERMINOLOGIQUE
TERMES SIMPLES VS. COMPLEXES
Les enjeux pour un système d'extraction terminologique sont différents selon que l'on travaille sur des
termes simples ou des termes multi-mots:
Indexation
Terminologie à
partir de corpus
Avec des
Indexation
données initiales contrôlée
Enrichissement de
thesaurus
Sans données
initiales
Acquisition
terminologique
Indexation
libre
•
Les termes simples sont généralement ambigus et demandent une désambiguïsation basée sur une
analyse du contexte.
chaîne
•
Les termes multi-mots sont moins ambigus mais sont sujets aux variations en raison de leur
structure syntaxique. Leur identification requiert des analyseurs syntaxiques ou des mesures
statistiques n-aires.
chaîne des Puys
chaîne littéraire
chaîne de l'espoir
réactions en chaîne
chaîne de production
chaîne à long maillon
chaîne N-glycosylée
chaîne des amines
scie à chaîne
ACQUISITION TERMINOLOGIQUE: LEXTER 1/2
Acquistion terminologique par analyse superficielle: LEXTER (Bourigault)
•
•
•
•
Étiquetage et lemmatisation du texte.
Parenthésage du texte par la détection des frontières de syntagmes nominaux: Les clapets situés
sur les tubes d'alimentation -> clapets + tubes d'alimentation.
Décomposition des syntagmes nominaux maximaux: règles de décomposition +
désambiguïsation endogène.
rejet d'air froid -> rejet froid + air froid.
Seul air froid est conservé après recherche en corpus.
Structuration en réseau de la terminologie.
ACQUISITION TERMINOLOGIQUE: LEXTER 2/2
Structuration du réseau terminologique avec LEXTER, (Bourigault)
ACQUISITION TERMINOLOGIQUE: ACABIT 1/2
Acquistion terminologique par analyse superficielle et filtrage statistique: ACABIT,
(Daille)
•
Un analyseur hybride composé d'analyseur superficiel partiel et un filtre statistique,
•
L'analyseur regroupe les variants terminologiques et les formes de base.
ACQUISITION TERMINOLOGIQUE: ACABIT 2/2
Les variantes sont regroupées avec les structures de bases au moyen de transformations
syntaxiques:
•
•
•
Les sous-chaînes maximales de chaque phrase acceptées par l'automate sont triées en fonction de
critères statistiques tels que Phi2, le log-likehood ou la fréquence.
•
•
Plusieurs mesures statistiques sont comparées en fonction de leur capacité à distinguer les termes
des séquences non terminologiques.
ACQUISITION TERMINOLOGIQUE: TERMS
TERMS est un outil pour l'acquisition de termes multi-mots de corpus bruts (Justeson & Katz, 1995).
Repose sur 2 hypothèse issues de l'analyse de corpus techniques et de dictionnaires spécialisés:
•
((A | N)+ | (A | N)* (N P) (A | N)*) N
modifications syntaxiques des termes par l'addition d'un modifieur adjectival:
Liaison par satellites -> liaisons multiples par satellites.
Xtract (Smadja, 93) repose sur les deux hypothèses suivantes pour l'acquisition de collocations:
•
TERMS repose sur le filtrage par un patron de catégories syntaxiques décrit par l'expression regulière
suivante:
combinaisons de termes par la surcomposition:
Réseau à satellites + Réseau de transit -> réseau de transit à satellites,
ACQUISITION DE COLLOCATIONS: XTRACT
1.Les termes sont répétés dans un document technique plus fréquemment que les syntagmes non
terminologiques.
2.Les termes ont une structure et des variantes différents des structures et variantes des syntagmes
non terminologiques.
combinaisons de termes par la coordination:
Assemblage de paquets + Désassemblage de paquets -> assemblage/désassemblage de paquets,
Les mots dans une collocation apparaissent ensemble plus fréquemment que par hasard (cf.
l'utilisation de l'Information Mutuelle chez Church & Hanks, 1989),
Les mots apparaissent dans une palette limitée de positions relatives correspondant à des
contraintes syntaxiques particulières.
UN RÉSUMÉ SUR L'ACQUISITION TERMINOLOGIQUE
INDEXEUR MULTI-MOTS CLARIT 1/2
Traits comparatifs des différents termeurs
ACABIT
ANA
1
Étiquetage
X
2
Analysis morphologique
3
Racinisation
4
Patrons syntaxiques
5
Grammaire
6
Filtrage statistique
7
Simplification de texte
X
8
Incrementalité
X
9
Langue
LEXTER
TERMINO
TERMS XTract
X
X
X
X
X
X
X
X
X
X
X
En
En
X
X
X
fr/en/Mal Tous
Fr
Fr
INDEXEUR MULTI-MOTS CLARIT 2/2
Un module d'appariement flexible fournit le lien conceptuel entre un index et les termes contrôlé:
•
un appariement exact correspond à une égalité entre le NP candidat et le terme contrôlé,
•
un appariement général se produit si le candidat est une sous-chaîne du terme contrôlé,
•
un appariement spécifique se produit si le candidat contient la chaîne du terme contrôlé,
•
les appariements compositionnels et scorés sont des appariements sur des fragments de chaînes ne
correspondant pas aux cas précédents.
INDEXATION SUR DES SYNTAGMES: COPSY
L'analyseur de syntagmes nominaux COPSY (Schwarz88,Schwarz89,Schwarz90) travaille en deux
étapes:
1.Les syntagmes nominaux sont isolés, sur la base des frontières de syntagmes nominaux tels que
les verbes ou les ponctuations.
2.La structure de dépendance est calculée en appliquant des règles de syntaxe qui expicitent les
relations tête/modifieur.
Exemple: analyse des phrases scientific analysis of amino acids in cheese et problems of fresh water
storage and transport in containers or tanks.
INDEXATION SUR DES SYNTAGMES DE FAGAN ½
INDEXATION SUR DES SYNTAGMES DE FAGAN 2/2
Principaux types de structures traités par Fagan (1987):
Les descripteurs sont produits à partir de structures de syntagmes au moyen de règles d'encodage
composées d'une partie gauche qui spécifie (1) une structure de syntagme itérativement transformée
et (2) un descripteur de syntagme.
Syntagmes nominaux généraux
the efficiency of these four sorting algorithms
-> algorithm efficiency, sorting algorithm
Syntagmes nominaux conjoints
the philosophy, design, and implementation of an experimental interface
-> interface philosophy, interface design, interface implementation, experimental interface
Syntagmes adjectivaux
a system for encoding, automatically matching, and automatically drawing chemical structures
-> automatically matching, automatically drawing, structure encoding, structure matching,
structure drawing, chemical structure
Syntagmes verbaux
the machine coding these chemical structures
-> machine coding, structure coding, chemical structure
EXTRACTEUR DE SN: NPTOOL 1/2
L'architecture de NPtool (Voutilainen, 1993) repose sur la Grammaire à Constraintes et est complétée
par deux modules de filtrage des syntagmes nominaux extraits.
EXTRACTEUR DE SN: NPTOOL 2/2
Dans le cadre de la Grammaire à Contraintes, l'analyse correspond principalement aux deux modules
suivants:
1.Une consultation de dictionnaire indépendante du contexte faite lors de l'amalyse morphologique.
2.Un module de filtrage pour éliminer les alternatives inacceptables ou incompatibles avec le
contexte.
Par exemple, cylinder head dans The inlet and exhaust manifolds are mounted on opposite sides of the
cylinder headdots est ainsi analysé:
"cylinder"
"cylinder" N (@>N @NH)
"head"
"head" V (@V)
"head" N (@NH)
Cylinder a deux rôles syntaxiques possibles: soit un prémodifieur nominal (@>N), soit un nom tête
(@NH). Head est soit un verbe tête (@V) soit un nom tête (@NH).
L'analyseur favorable aux SN retient l'analyse avec le plus grand nombre de mots dans les SN les plus
longs possibles. L'analyseur défavorable aux SN retient l'analyse avec le plus petit nombre de mots
dans les SN les plus courts possibles.
LE SYSTÈME SPIRIT 1/3
Organisation du système SPIRIT complet (Andreewsky et al., 1977).
LE SYSTÈME SPIRIT 2/3
Debili (1982): le composant TAL pour l'indexation dans Spirit
L'analyseur de Debili (1982) est basés sur la notions de dépendance structurale de Tesnière (Tesniere,
1959). Dans ce modèle, les mots sont pris dans un réseau de dépendance.
LE SYSTÈME SPIRIT 3/3
Au moyen de ta technique d'acquisition sur corpus de Debili, chaque dépendance acquise est extrapolée
à la famille morphologique des mots de l'occurrence.
Par exemple, si affichage mural est rencontré dans une situation non ambigue, cette relation est acquise
ainsi que les autres relations dans le même paradigme:
affichage sur les murs, afficher sur les murs, etc.
Illustration de la double représentation d'une phrase selon les axes syntagmatique (horizontal) et
paradigmatique (vertical).
ANALYSE COMPLÈTE & INDEXATION SUR SYNTAGMES: TTP 1/2
Sortie du parseur TTP et acquisitions terminologiques correspondantes (Strzalkowski)
Phrase
The former Soviet president has been a local hero ever since a Russian tank invaded Wisconsin.
Phrase étiquetée et lemmatisée
thedt formerjj sovietjj presidentnn havevbz bevbn adt localjj heronn everrb sincein adt russianjj tanknn invadevbd wisconsinnp .per
Phrase analysée
[assert
[[perf [HAVE]] [[verb [BE]]
[subject [np [n PRESIDENT][t-pos THE]
[adj [FORMER]] [adj [SOVIET]]]]
[object [np [n HERO] pt-pas A] [adj [LOCAL]]]
[adv EVER]
[sub-ord [SINCE
[[verb [INVADE]]
[subject [np [n TANK] [t-pos A]
[adj [RUSSIAN]]]]
[object [np [name [WISCONSIN]]]]]]]]]]
Termes
president
soviet
hero
hero local
president soviet
president former
tank invade
tank russian
invade
tank
russian
wisconsin
invade wisconsin
ANALYSE COMPLÈTE & INDEXATION SUR SYNTAGMES: TTP 2/2
UN RÉSUMÉ SUR L'INDEXATION SUR DES SYNTAGMES
Traits comparatifs des différents indexeurs.
Les relations tête/modifieur sont utilisées par le termeur pour produire les termes binaires selon les
règles suivantes:
CLARI
COPSY Fagan NPtool
T
Sparck
Jones &
Tait
SPIRIT
TTP
X
?
X
X
Règles
Prob.
Un terme binaire est composé d'une des trois paires suivantes:
1
Analyse morphologique
2
Racinisation
2.la tête d'un syntagme nominal et la tête de la structure adjointe à droite, par exemple the
organization of social groups and communities produit group organization et community
organization,
3
Désambiguïsation
syntaxique
Prob.
4
Morcellement
X
3.le verbe principal et la tête de son syntagme objet, ici invade Wisconsin,
5
Relations de dépendance
1.la tête d'un syntagme nominal et son modifieur nominal ou adjectival gauche, ici president
former et president soviet,
4.le verbe principal et la tête de son syntagme sujet, ici tank invade.
X
X
X
?
Règles
?
X
X
X
6
Structures de syntagmes
X
7
Désambiguïsation
structurale
X
X
8
Génération de variantes
9
Regroupement de variantes X
X
X
10
Langue
En
En
X
X
X
X
X
X
En
X
En
En
Fr
En
NORMALISATION TERMINOLOGIQUE ET INDEXATION
Reconnaissance de termes et de leurs variantes
LA VARIATION : UN OBSTACLE POUR L'ACCES A
L'INFORMATION
Regroupement de termes multi-mots : les variantes linguistiques d'un concept
genetic disease
genetic diseases
Flexion
disease is genetic
Syntaxe
hereditary disease
Semantique
genetically determined forms
Morphologie
of the disease
Semantique +
disease is familial
Syntaxe
Semantique +
transmissible
neurodegenerative diseases Syntaxe
Variante
genetic risk factors for
incorrecte
coronary artery disease
PRINCIPES DE LA NORMALISATION TERMINOLOGIQUE
But: regrouper les occurrences d'un même terme complexe:
occurrence linguistique -> terme + relation linguistique
recognized spontaneous speech -> Speech recognition + XX,20,NtoV
Autres thèmes liés
•
•
•
Analyse morphologique : flexions
mot fléchi -> lemme + traits morphologiques
results -> result + SBC:m:p
Analyse morphologique : structures
mot morphologiquement complexe -> racine + structure morphologique
recognition -> recognize + [[recognize]V -ition]N
racinisation
mot (recognition) -> racine (recogn-)
LA VARIATION EST MASSIVE ET DIFFICILE À DÉTECTER
Par exemple sur un corpus agro-alimentaire de l'INIST (résumés scientifiques, 1.3 millions de mots):
Les variantes de termes représentent 37% des occurrences de termes.
•
Une analyse en profondeur n'est pas réaliste.
•
Il existe des techniques de TAL massives (étiquetage, lemmatisation, analyse superficielle...)
•
Il existe des grandes bases de données dans des domaines spécialisés (thesauri, dictionnaires, bases
de données lexicales...).
VARIATION TERMINOLOGIQUE EN LINGUISTIQUE
Les termes portent l'information scientifique et technique. Leur cycle de vie est fortement lié au domaine
dont ils dépendent (cf. l'étude du langage de l'aéronautique durant la deuxième moitié du 19e siècle par
(Guilbert, 1965)).
Fluidité terminologique: dénotations, orthographe, propriétés syntaxiques, et usages des termes
évoluent constamment (cf. l'analyse de la terminologie du génome humain de (Frenkel, 1991)).
La vie des termes est aussi caractérisée par leur mobilité: les termes tendent à migrer entre disciplines
ou vers le langage général. Ces migrations et la différenciation des domaines scientifiques sont visibles
par des études linguistiques (Losee, 1995; Losee & Haas, 1995)
DÉFINITION DE LA VARIATION
Une variation morphologique, syntaxique ou sémantique est une transformation d'un terme contrôlé
qui satisfait les 4 conditions suivantes:
1.Les mots pleins sont préservés ou transformés en des mots morphologiquement ou sémantiquement
liés.
1.Les variations syntaxiques ne mettent en jeu ni lien morphologique ni lien sémantique.
2.Les variations morphologiques (resp. sémantiques) mettent en jeu au moins un lien
morphologique (resp. sémantique).
2.L'ordre des mots peut être modifié mais les relations de dépendances doivent être conservées dans
les variations.
3.Les variantes ne doivent pas contenir le terme d'origine.
3 NIVEAUX DE VARIATION TERMINOLOGIQUE
Syntaxe
processing of cardiac image
->
Image processing
->
Image conversion
->
Language development
Morphologie
image converter
Semantique
speech development
TRAVAUX LIÉS
RESSOURCES POUR LA RECONNAISSANCE DES VARIANTES
Ressources morphologiques
•
Acquisition sémantique à partir de corpus: Assadi, Grefenstette, Hearst, Riloff, Srinivasan.
•
•
Acquisition terminologique à partir de corpus: Bourigault, Daille, Justeson & Katz.
•
•
Variation morphologique: Klavans, Krovetz, Tzoukermann.
•
Variation sémantique: Habert, Hamon, Sparck Jones and Tait.
•
Indexation sur les syntagmes: Arampatzis, Evans and Zhai, Fagan, Mitra et al., Pohlman and
Kraaij, Strzalkowski.
Normalisation flexionnelle (lemmatisation): un étiqueteur-lemmatiseur
Normalisation morphologique (morphologie dérivationnelle): une base de données lexicales avec
les structures de mots
Resources sémantiques
•
Normalisation sémantique au moyen de classes ou de liens sémantiques: un thesaurus avec des
classes ou des liens sémantiques
ARCHITECTURE DE FASTR 1/4: PRÉSENTATION
ARCHITECTURE DE FASTR 2/4: VUE D'ENSEMBLE
Un formalisme à trois niveaux
•
Premier niveau: mots simples + liens (morphologiques et sémantiques)
•
Deuxième niveau: termes construits sur les mots simples
•
Troisième niveau: variations qui transforment les règles et termes en règles de variantes (en
utilisant des liens morphologiques et sémantiques)
Deux dimensions dans la description du troisième niveau
•
Dimension syntagmatique: transformations structurales
•
Dimension paradigmatique: liens morphologiques et semantiques
ARCHITECTURE DE FASTR 3/4: RECONNAISSANCE DE
VARIANTES
ARCHITECTURE DE FASTR 4/4: INDEXATION
SORTIES DE FASTR
Indexation d'une phrase
Preliminary results from experiments conducted on parsing speech, which
recognized spontaneous speech, are also reported.
Document
Terme
Variante
Variation
000148
Experimental result results from experiments
XX,31,AtoN
000148
Preliminary result preliminary results
0
000148
Speech recognition recognized spontaneous speech XX,20,NtoV
000148
Spontaneous speech spontaneous speech
0
FASTR : FORMALISME POUR LES DEUX PREMIERS NIVEAUX
Grammaire d'unification : (PATR-II, Shieber 86 & 92).
Les règles de termes sont composées
•
•
d'un squelette hors contexte (constituants),
de contraintes représentées par des graphes acycliques (information).
Mots simples
Mot 'genetic':
<cat> = Adj.
Word 'disease:
<cat> = Noun.
Termes multi-mots
Règle Noun1 -> Adj2 Noun3:
<Noun1 lexicalisation> = 'Noun3'
<Noun1 label> = '203973'
<Adj2 lemma> = 'genetic'
<Noun3 lemma> = 'disease'.
FASTR: STRUCTURES DE TRAITS 1/2
Représentation d'une règle de terme par une structure de traits (un graphe)
FASTR: STRUCTURES DE TRAITS 2/2
Représentation d'une règle de terme par une structure de traits (une matrice)
FASTR : LEXIQUE ENRICHI DE LIENS
Addition de liens morphologiques et sémantiques aux mots simples
Mot 'genetic':
<cat> = Adj
<syn> = ('familial',A)|('genetic',A)|('genetical',A)|
('genic',A)|('hereditary',A)|('inherited',A)|
('transmitted',A).
Mot 'geneticist' :
<cat> = N
<root> = ('genetic',A).
Mot 'genetics' :
<cat> = N
<root> = ('genetic',A).
Mot 'familial' :
<cat> = A
<syn> = ('familial',A)|('genetic',A)|('hereditary',A)|
('inherited',A)|('transmitted',A).
Mot 'genetical' : <cat> = A
<syn> = ('genetic',A)|('genetical',A).
Mot 'genic' : <cat> = A
<syn> = ('genetic',A)|('genic',A).
Mot 'hereditary' : <cat> = A
<syn> = ('familial',A)|('genetic',A)|('hereditary',A)|
('inherited',A)|('transmitted',A).
EXPLOITATION DU THESAURUS WordNet (CLASSES) 1/2
Relations sémantiques de WordNet (wn genetic -synsv)
EXPLOITATION DE LA BASE CELEX
Famille morphologiques de CELEX
(http://www.ldc.upenn.edu/readme_files/celex.readme.html)
hysteria\N\: hysteric\N\-ic hysteric\A\-ic hysterical\A\-ical hysterically\ADV\-ical,ly hysterics\N\ic,s hysteria\N\loan\N\: loan\N\- loan\V\eradicate\V\: eradicable\A\-able eradication\N\-ion eradicator\N\-or ineradicable\A\in-able
eradicate\V\portable\A\: portability\N\-ity portable\A\mongol\N\: mongol\N\- mongolism\N\-ism
cite\V\: citation\N\-ation cite\V\- recital\N\re-al recitation\N\re-ation recitative\N\re-ation,ive
recite\V\re- reciter\N\re-er
genetic\A\: genetically\ADV\-ally geneticist\N\-s,ist genetics\N\-s genetic\A\emanate from\V\: emanation\N\-ion emanate from\V\18734\geneticist\25\C\\1\N\N\N\N\Y\genetics+ist
\Nx\SA\N\Y\N\-s#\N\N\SAA
\(((genetic)[A],(s)[N|A.])[N],(ist)[N|N.])[N]\N\Y\N
EXPLOITATION DU THESAURUS WordNet (CLASSES) 2/2
Données utilisées par Fastr pour construire des liens entre lemmes
Similarity of adj genetic
generosity\N\: generosity\N\ generousness\N\ unselfishness\N\
3 senses of genetic
generously\ADV\: liberally\ADV\ munificently\ADV\ generously\ADV\
Sense 1
familial, genetic, hereditary, inherited, transmitted, transmissible
=> inheritable (vs. noninheritable), heritable
generousness\N\: generosity\N\ generousness\N\
Sense 2
genic, genetic
Pertains to noun gene (Sense 1)
=>gene
=> protein molecule
genetic\A\: familial\A\ genetic\A\ hereditary\A\ inherited\A\
transmitted\A\ transmissible\A\ genic\A\ genetical\A\
Sense 3
genetic, genetical
Pertains to noun genetics (Sense 1)
=>genetics, genetic science
=> biology, biological science
genesis\N\: origin\N\ origination\N\ genesis\N\ inception\N\ Genesis\N\
genetical\A\: genetic\A\ genetical\A\
geneva\N\: Geneva\N\ Geneve\N\ geneva\N\ Hollands\N\
geneve\N\: Geneva\N\ Geneve\N\
ge\N\: germanium\N\ Ge\N\ Gaea\N\ Gaia\N\
genial\A\: affable\A\ amiable\A\ cordial\A\ genial\A\ mental\A\ kind\A\
geniality\N\: affability\N\ affableness\N\ amiability\N\ amiableness\N\
bonhomie\N\ geniality\N\
genially\ADV\: affably\ADV\ amiably\ADV\ genially\ADV\
genic\A\: genic\A\ genetic\A\
EXPLOITATION DU THESAURUS DE ©Microsoft Word (LIENS) 1/2
Macro-command pour extraire les synonymes de Word97 (Olivier Ferret, CEA)
test = -1
While test
WordBasic.SelectCurSentence
WordBasic.Bold
motCour$ = WordBasic.[Selection$]()
WordBasic.WordRight 1, 0
WordBasic.Bold
WordBasic.Insert " "
result = WordBasic.wdToolsGetSynonyms(synonymes__$(), motCour$, "Français")
If result <> 0 Then
For i = 0 To result - 2
WordBasic.Insert synonymes__$(i)
WordBasic.Insert ", "
Next i
WordBasic.Insert synonymes__$(result - 1)
End If
test = WordBasic.ParaDown(1, 0)
Wend
ÉTIQUETEUR-LEMMATISEUR TreeTagger 1/2
Étiquetage par le TreeTagger (http://www.ims.unistuttgart.de/Tools/DecisionTreeTagger.html) (EN, FR, IT and GE)
Mot
mammals
infected
with
scrapie
,
Creutzfeldt-Jakob
disease
,
and
related
transmissible
neurodegenerative
diseases
.
Étiquette
NNS
VBN
IN
NN
,
JJ
NN
,
CC
JJ
JJ
JJ
NNS
SENT
Lemme
mammal
infect
with
<unknown>
,
<unknown>
disease
,
and
related
<unknown>
<unknown>
disease
.
EXPLOITATION DU THESAURUS DE ©Microsoft Word (LIENS) 2/2
Données utilisées par Fastr pour construire des liens entre lemmes
aback\Adv: backward\Adv back\Adv behind\Adv rearward\Adv suddenly\Adv
abaft\Adv: aft\Adv rearward\Adv behind\Adv back\Adv astern\Adv
abandon\Noun: wantonness\Noun spontaneity\Noun impetuosity\Noun
enthusiasm\Noun desert\Noun defect\Noun leave\Noun drop\Noun
abandon\V: relinquish\V quit\V desert\V defect\V forsake\V leave\V drop\V
evacuate\V
abandoned\Adj: forlorn\Adj forsaken\Adj left\Adj corrupt\Adj amoral\Adj
dissolute\Adj immoral\Adj incorrigible\Adj
abandonment\Noun: desertion\Noun apostasy\Noun withdrawal\Noun
defection\Noun falseness\Noun tergiversation\Noun abandon\Noun
abase\V: humble\V depress\V reduce\V abash\V mortify\V debase\V mock\V
degrade\V
ÉTIQUETEUR-LEMMATISEUR TreeTagger 2/2
Corpus après transcodage dans le formalisme de FASTR
'Mammals'
<lem> = 'mammal'
<cat> = N
<agr num> = plu.
'infected'
<lem> = 'infect'
<cat> = V
<ten> =
pastParticiple.
'with'
<lem> = 'with'
<cat> = PREP.
'scrapie'
<lem> = 'scrapie'
<cat> = N
<agr num> = sin.
','
<lem> = ','
<cat> = PUNC.
'Creutzfeldt-Jakob'
<lem> = 'CreutzfeldtJakob'
<cat> = A.
'disease'
<lem> = 'disease'
<cat> = N
<agr num> = sin.
','
<lem> = ','
<cat> = PUNC.
'and'
<lem> = 'and'
<cat> = C.
'related'
<lem> = 'related'
<cat> = A.
'transmissible'
<lem> = 'transmissible'
<cat> = A.
'neurodegenerative'
<lem> =
'neurodegenerative'
<cat> = A.
'diseases'
<lem> = 'disease'
<cat> = N
<agr num> = plu.
'.'
<lem> = '.'
<cat> = Pf.
CONSULTATION LEXICALE 1/3
CONSULTATION LEXICALE 2/3
Corpus étiqueté
'speed'
<lem> = 'speed'
<cat> = N
<agr num> = sin.
Corpus après consultation lexicale
'speed'
<lem> = 'speed'
<cat> = N
<agr num> = sin
<syn +list> = 1002
- - <> = 'amphetamine'
- - <> = N
- - <> = -1
- +<list> = 1003
- - <> = 'fastness'
- - <> = N
- - <> = -1
- +<list> = 1006
- - <> = 'hastening'
- - <> = N
- - <> = -1
-
+<list> = 1008
- <> = 'hurrying'
- <> = N
- <> = -1
+<list> = 1018
- <> = 'speeding'
- <> = N
- <> = -1
+<list> = 1014
+<list> = 1021
- <> = 'swiftness'
- <> = N
- <> = -1
+<list> = 1022
- <> = 'upper'
- <> = N
- <> = -1
CONSULTATION LEXICALE 3/3
Rule
<N1
<N1
<N2
<N3
N1 -> N2 N3:
lex> = 'N2'
lab> = '00000'
lem> = 'reaction'
lem> = 'speed'.
FASTR: ANALYSE
Analyse de règles hors-contexte
•
Analyse par descente recursive,
•
avec filtrage ascendant,
•
et analyse de sous-chaînes par des expressions régulières.
Règle après consultation lexicale
Rule: Terme[X (Ref:2 Rac:-1)]
<cat> = N
<ref> = 2
Terme[X (Ref:1010
Rac:1010)]
<cat> = N
<syn +list> = 1010
- - <> = 'reaction'
- - <> = N
- - <> = -1
- +<list> = 1013
- - <> = 'response'
- - <> = N
- - <> = -1
<ref> = 1010
<self(1*) list> = 1010
- - <> = 'reaction'
- - <> = N
- - <> = -1
<root> = (1*)
- +<list> = 1023
- - <> = 'velocity'
- - <> = N
- - <> = -1
<root list> = 1015
- - <> = 'speed'
- - <> = V
- - <> = -1
<ref> = 1014
<self list> = 1014
- - <> = 'speed'
- - <> = N
- - <> = -1.
Terme[X (Ref:1015
Rac:1016)]
<cat> = N
<syn +list> = 1002
- - <> = 'amphetamine'
- - <> = N
- - <> = -1
- +<list> = 1004
- - <> = 'fastness'
- - <> = N
- - <> = -1
- +<list> = 1007
- - <> = 'hastening'
- - <> = N
- - <> = -1
- +<list> = 1009
- - <> = 'hurrying'
- - <> = N
- - <> = -1
- +<list> = 1019
- - <> = 'speeding'
- - <> = N
- - <> = -1
- +<list> = 1015
- - <> = 'speed'
- - <> = N
- - <> = -1
- +<list> = 1022
- - <> =
'swiftness'
- - <> = N
- - <> = -1
- +<list> = 1023
- - <> = 'upper'
- - <> = N
- - <> = -1
- +<list> = 1024
- - <> =
'velocity'
- - <> = N
- - <> = -1
<root list> = 1016
- - <> = 'speed'
- - <> = V
- - <> = -1
<ref> = 1015
<self list> = 1015
- - <> = 'speed'
- - <> = N
- - <> = -1
Unification
•
Unification des termes de règles seulement dans le cas de succès de l'analyse du squelette horscontexte
(seulement 1% des unifications échouent tandis que 80% des analyses hors contexte échouent).
UNE MÉTARÈGLE DE COORDINATION DANS FASTR 1/2
Règle de terme initiale
Rule N1
<N1
<A3
<A3
<N3
<N2
<N1
-> A2 N3:
lexicalization> = N3
lemma> = 'umbilical'
inflection> = 1
lemma> = 'arter'
inflection> = 2
agreement> = <N3 agreement>.
Métarègle de coordination
UNE MÉTARÈGLE DE COORDINATION DANS FASTR 2/2
Règle de terme transformée
Rule N1
<N1
<A2
<A2
<N3
<N3
<N1
-> A2 C4 A5 N3:
lexicalization> = N3
lemma> = 'umbilical'
inflection> = 1
lemma> = 'arter'
inflection> = 2
agreement> = <N3 agreement>.
Exemple de variante
Metarule Coor(N1 -> A2 N3) = N1 -> A2 C4 A5 N3: .
Umbilical or carotid artery
EXPRESSIONS RÉGULIÈRES DANS LES MÉTARÈGLES 1/3
Règle de terme initiale
Rule N1
<N1
<A3
<A3
<N3
<N2
<N1
-> A2 N3:
lexicalization> = N3
lemma> = 'umbilical'
inflection> = 1
lemma> = 'arter'
inflection> = 2
agreement> = <N3 agreement>.
Métarègle de coordination
EXPRESSIONS RÉGULIÈRES DANS LES MÉTARÈGLES 2/2
Règle de terme transformée
Rule N1
<N1
<A2
<A2
<N3
<N3
<N1
-> A2 <C {A|N|App}1-3 > N3:
lexicalization> = N3
lemma> = 'umbilical'
inflection> = 1
lemma> = 'arter'
inflection> = 2
agreement> = <N3 agreement>.
Exemple de variante
Metarule Coor(N1 -> A2 N3) = N1 -> A2 <C {A|N|App}1-3 > N3: .
Umbilical or middle cerebral artery
EXPRESSIONS RÉGULIÈRES DANS LES MÉTARÈGLES 3/3
Métarègle de coordination filtrante
La grammaire des expressions régulières dans FASTR
Reg_expr
->
`<'Seq`>'
Fact -> `{'Alt`}'
Seq
Seq
Fact_oper
Fact_oper
Fact_oper
Fact_oper
Fact_oper
->
->
->
->
->
->
->
Fact_oper Seq
Fact_oper
Fact`*'
Fact`+'
Fact`?'
Fact Nb`-'Nb
Fact
Fact
Fact
Alt
Alt
Term
Nb
Nb
->
->
->
->
->
->
->
LES CONTRAINTES DANS LES MÉTARÈGLES
Term
Reg_expr
Term `|' Alt
Term
`A' | `N' | `C'...
`0' Nb |...| `9' Nb
`0' |...| `9'
Metarule Coor(N1 -> N2 N3) = N1 -> N2 <C {A|N|App}1-3 > N3:
<N2 agreement number> != 'plural'.
Accepte ...the damage of tumorN orC nontumorousA hepaticA cellsN
et rejette ...but failed to lyse tumorsN orC K562N cellsN.
Métarègle avec des liens morphologiques
Metarule Noun-to-Adj(N1 -> N2 N3) = N1 -> A4 N3:
<N2 root> = <A4 root>.
Reconnaît des variantes adjectivales telles que enzymaticA activityN, une variante de enzyme activity,
ou enzymaticA systemN, une variante de enzyme system.
Métarègle avec des liens sémantiques
Metarule SemArg(N1 -> N2 N3) = N1 -> N4 N3:
<N2 syn> = <N4 syn>.
Reconnaît des variantes sémantiques telles que hard lens, une variante de rigid lens, à cause de la
relation de synonymie entre hard et rigid.
FONCTIONNEMENT DES MÉTARÈGLES 1/2
"genetic disease / disease is familial"
Métarègle PermSemArg( X1 -> X2 N3 ) = X1 -> N3 Adv? Vaux? V4 Adv? X4:
<V4 lem> = 'be'
<X2 syn> = <X4 syn>
<X2 cat> = <X4 cat>.
FONCTIONNEMENT DES MÉTARÈGLES 2/2
"genetic disease / disease is familial"
Métarègle PermSemArg( X1 -> X2 N3 ) = X1 -> N3 Adv? Vaux? V4 Adv? X4:
<V4 lem> = 'be'
<X2 syn> = <X4 syn>
<X2 cat> = <X4 cat>.
EXEMPLES DE MÉTARÈGLES
Structure source N1 N2.
Synt.
Coor
Morph. Sém.
---
---
Structure cible
N1[sin] ((A | N |
Part){0-3}
N
Pu[',']?
Part){0-3}
CC) N2
N Pu[',']? CC) N2
Coor
---
Arg
FS(N1)[sin] ((A | N |
Coor
---
Tête
N1[sin] ((A | N | Part){0-3} N Pu[',']? CC) FS(N2)
N->V
Tête
---
FM(N2)V (Adv? Prep? (Art (N)? Prep)? Art? (A | N | Part){0-3}) N1
N->V
Tête
Arg
FM(N2)V (Adv? Prep? (Art (N)? Prep)? Art? (A | N | Part){0-3}) FS(N1)
APPLICATION DYNAMIQUE OU PRÉLIMINAIRE DES
MÉTARÈGLES
Il y a principalement deux possibilités pour implémenter la génération des règles transformées avec
les conséquences suivantes (Weisweber et Preuss, 1992).
Application à la compilation
Les règles transformées sont calculées une fois pour toutes dans une étape de prétraitement.
-> ensemble de règles variantes important demandant des fortes capacités de stockage + techniques
d'accès rapide aux données
L'application à l'exécution
Les règles transformées sont calculées dynamiquement à la demande.
-> surcharge calculatoire à l'exécution + capacité de ne générer que dans les cas pertinents.
FASTR: génération dynamique.
ANALYSE TRANSFORMATIONNELLE
Pourquoi une analyse exhaustive est-elle inadaptée pour la reconnaissance des
variantes?
•
Intégration difficile des données telles que les liens morphologiques et sémantiques.
•
Coût en temps
Avantages d'une analyse transformationnelle
•
Analyse differentielle (lien entre une variante et un terme source)
•
Analyse implicite (paraphrase sans calcul du sens)
•
Analyse partielle (restreinte aux parties pertinentes)
•
Analyse lexico-syntaxique (exploitation des termes multi-mots)
Mise en oeuvre et applications de la
reconnaissance des variantes
PRINCIPES DE LA MISE AU POINT DES VARIATIONS
EXEMPLE DE MISE AU POINT DE VARIATION 1/2
Une approche en deux étapes
Exemple de mise au point progressive de métarègles (variations Nom à Verbe)
Variations paradigmatiques
Variation paradigmatique
Cooccurrences des mots pleins dans une fenêtre de n mots.
(Extension aux cooccurrences de mots morphologiquement ou sémantiquement liés.)
Variations filtrantes
Variations avec (1) une structure syntaxique et (2) un ensemble de contraintes.
Les contraintes sont ajoutées progressivement par ajustement empirique et analyse manuelle des
variantes.
Métarègle SingDer( X1 -> X2 PREP3 X4 ) = X1 -> X5 <X0-9> X4:
<X5 root> = <X2 root>.
Variation filtrante (syntaxe et morphologie)
Métarègle NtoV( N1 -> N2 PREP3 N4 ) =
X1 -> V2 <ADV? {PREP? ART| PREP} A?> N4:
<V2 root> = <N2 root>.
Variation filtrante (sémantique légère)
Métarègle NtoV( N1 -> N2 PREP3 N4 ) = X1 -> V2 <ADV? ART A?> N4:
<V2 root> = <N2 root>
<N2 deverbal> = processive
<PREP3 lemma> = 'de'
<V2 tense> != infinitive
<V2 tense> != presentParticiple
<V2 tense> != pastParticiple
EXEMPLE DE MISE AU POINT DE VARIATION 2/2
3 NIVEAUX DE VARIATION TERMINOLOGIQUE
Exemple de mise au point progressive de métarègles (variations de coordination)
Variation de base
Métarègle Coord(N2 P3 N4) =
N2 ((C A? N A? P) | (A C P) | (P D? A? N A? C P?)) N4:.
Modifieurs additionnels
Le syntagme prépositionnel dans le terme peut accepter un déterminant et un modifieur adjectival
(absorption des éléments minéraux et de l'eau).
N4 devient D? A? N4.
Enumérations
La conjonction de coordination peut être précédée par une virgule et suivie par un adverbe (la
production, et surtout la diffusion des semences).
C devient Po? C Av?.
Coordinations des arguments prépositionnels
Dans les coordinations des arguments prépositionnels, la conjonction peut être suivie par une
préposition et un déterminant (de l'humidité et de la vitesse de l'air).
C devient C P? D?.
Syntaxe
processing of cardiac image
Morphologie
image converter
Sémantique
speech development
->
Image processing
->
Image conversion
->
Language development
VARIANTES SYNTAXIQUES
VARIANTES MORPHOLOGIQUES
Coordination
femoral and carotid arteries
->
Femoral artery
Nom à Verbe
estimated k parameters
->
Parameter estimation
Modification
femoral cutaneous nerve
->
Femoral nerve
Nom à Adjectif
sexual partners
->
Sex partner
Permutation
comprehension of language
->
language comprehension
Nom à Nom
active immunization
->
Active immunity
Adjectif à Adjectif
fat meals
->
Fatty meal
VARIANTES SÉMANTIQUES
Synonymie
neural tissue
Méronymie
security report
Antonymie
automatic control
Hyponymie
apple juice
->
->
->
->
Nervous tissue
Security analysis
manual control
Fruit juice
VARIANTES HYBRIDES:
VARIANTES MORPHO-SYNTACTICO-SÉMANTIQUES
Morpho-syntaxiques
reduce the influence of external noise
->
Noise reduction
Sémantico-syntaxiques
modification of personality and behavior
->
Behavior change
Morpho-sémantiques
electric nerve stimulation
->
Electrical stimulus
Morpho-sémantico-syntaxiques
strength were measured
->
Force measurement
EXEMPLES DE COORDINATIONS DE TÊTES
Acceptation et rejet des coordinations de têtes
EXEMPLES DE COORDINATIONS D'ARGUMENTS
Acceptation et rejet des coordinations d'arguments
Document
000025
000039
000115
000295
000456
Terme contrôlé
Chromosome 6
Renal function
Cell differentiation
Crystal growth
Endolymphatic sac
Variante paradigmatique acceptée
chromosomes 5 and 6
renal hemodynamics and function
cell growth and differentiation
crystal nucleation and growth
endolymphatic duct and sac
Document
000074
000078
000106
000108
000265
Terme contrôlé
Apical membrane
Food intake
Neutral lipid
B-Cell
Low field
Variante paradigmatique acceptée
apical and basolateral membrane
food and water intake
neutral and acidic lipid
B and T cells
low and intermediate field
Document
003940
011901
013108
013859
015525
Terme contrôlé
Language perception
In direct
Cell surface
Gene expression
Pattern analysis
Variante paradigmatique rejetée
language, and perception
in water and direct
cells, and surface
genes, and expression
patterns, and analysis
Document
000751
000817
002347
003424
004256
Terme contrôlé
Tumor cell
Cell culture
Cell culture
Cell structure
Test method
Variante paradigmatique rejetée
tumors or K562 cells
cells or fetal cultures
cells or after culture
cells or biliary structures
tests and conventional methods
EXEMPLES DE PERMUTATIONS
Acceptation et rejet de permutations
Document
000010
000023
000160
000233
000265
Terme contrôlé
Cell fraction
Transmission mode
Distribution volume
Perception threshold
Variance analysis
Variante paradigmatique acceptée
fractions of cells
mode of transmission
volumes of distribution
thresholds for perception
analysis of variance
Document
000045
000051
000067
000163
000906
Terme contrôlé
Embryonic development
Infected cell
Electrochemical method
Dynamic response
Sequential analysis
Variante paradigmatique rejetée
development of embryonic
cells of infected
method with electrochemical
response to dynamic
analysis of sequential
SCHÉMA D'ÉVALUATION
ÉVALUATION DE LA RECONNAISSANCE DE VARIANTES 1/2
Précision des variantes syntaxiques.
Coo Mo Syn Tota
r
dif ap l
Précision des variantes syntactico-sémantiques & morpho-sémantiques.
Coor
Modif
AàN NàA NàN NàV
Total
Sém
Sém
Sém
Sém
Sém
Sém
[AGR 97.2 88.7 98.0 95.7
% % %
%
IC]
AàA
100.0%
[AGRIC]
69.6%
92.1%
76.3%
82.7%
78.1%
[AGRIC] + AGROVOC 88.9%
91.3%
91.0%
MAN PAGE PRINCIPALE DE FASTR
FASTR(1)
Fastr Programmers Reference Guide
Fastr - FASt Term Recognizer
[
[
[
[
[
[
[
[
For ease
sections:
-C
-C
-C
-C
-C
-C
-C
-C
conf-file
conf-file
conf-file
conf-file
conf-file
conf-file
conf-file
conf-file
][
][
][
][
][
][
][
][
-v
-v
-v
-v
-v
-v
-v
-v
]
]
]
]
]
]
]
]
-z
-c
-i
-p
-l
-m
-s
-V
name
-I -x -X [ name ]
-L -t [ category inflection ]*
terms column
of access, the Fastr manual has been split up into four
Fastr
Fastrconf
Fastrlang
Fastrdata
Fastr
Fastr
Fastr
Fastr
55.6%
44.9%
21.3%
0.0%
24.2% 29.4%
62.6%
87.5%
0.0%
0.0%
60.0%
44.4% 55.0%
v
v/V
v/V+T
v
v/V
Termes (T)
5325
---
63.1%
5325
---
68.2%
Var. Synt
1564
50.3% 18.5%
1564
62.9%
20.0%
overview (this section)
configuration file (computational parameters)
language file (linguistic parameters)
data (data structures)
(If you're intending to read these straight through for
the first time, the suggested order will tend to reduce
the number of forward references.)... etc.
v/V+T
Var. Mor
799
25.7% 9.5%
799
32.2%
10.2%
Var. Sém
747
24.0% 8.9%
122
4.9%
1.6%
Variantes (V)
3110
---
2485
---
31.8%
36.9%
FICHIER DE CONFIGURATION DE FASTR
FASTR(1)
NAME
SYNOPSIS
Fastr
Fastr
Fastr
Fastr
Fastr
Fastr
Fastr
Fastr
44.8%
[AGRIC] + AGROVOC
75.3% 84.6%
Précision des variantes sémantiques.
Arg
Tête
Total
[AGRIC] + Word97
[AGRIC] + Word97
Nombre de variantes (v/V = taux de variantes v/V+T = taux de termes).
[AGRIC] + Word97 [AGRIC] + AGROVOC
Précision des variantes morpho-syntaxiques.
A à N N à A N à N N à V Total
68.5%
ÉVALUATION DE LA RECONNAISSANCE DE VARIANTES 2/2
Message file
Dictionary file
Language file
Log file
External unifier
Unification file
:'${FASTRLIB}/Fastr.res'
:'${FASTRTMP}/TEST'
:'${FASTRLIB}/Fastr.lang-en'
:'${FASTRTMP}/Fastr.log'
:'${FASTRBIN}/Fastr-unif'
:'${FASTRTMP}/Fastr.unif'
Parsing trace
Break on compile errors
Agreement checking
Number preprocessing
:0
:0
:1
:0
"0/1"
"0/1"
"0/1"
"0/1"... etc.
FICHIER DE LANGUE DE FASTR
"***********************************************************************
METARULES
************************************************************************"
Default metarules :
[2]
'XX'
[3]
'XXX'
[4]
'XXXX'
"METARULE X X"
"language processing -> language automatic understanding or processing"
Metarule Coor( X1 -> X2 N3 ) =
X1 -> X2 < {A|N|Np|V} 1-3 PUNC/','? >
C4 < {A|N|Np|V}? > N3:
<X2 num> ! plu
<X1 metaLabel> = 'XX'.
Metarule CoorSemArg( X1 -> X2 N3 ) =
X1 -> X4 < {A|N|Np|V} 1-3 PUNC/','? >
C4 < {A|N|Np|V}? > N3:
<X4 num> ! plu
<X1 metaLabel> = 'XX'
<X2 syn> = <X4 syn>
<X2 cat> = <X4 cat>.... etc.
ENRICHISSEMENT TERMINOLOGIQUE
But : déconstruire les variantes mettant en jeu plusieurs termes pour acquérir
(1) de nouveaux candidats termes,
(2) des liens entre termes et candidats termes.
variante -> terme + lien sémantique
traitement thermique ou mécanique -> traitement thermique + lien de coord.
bactérie propionique lactique -> bactérie propionique + lien de modification
Principes
Extraction de sous-patrons des variations.
Acquisition incrémentale.
Construction d'un réseau de termes à partir des chaînes d'acquisition.
DÉCONSTRUCTION DE VARIANTE
EXEMPLES D'ACQUISITION
Coordination
Terme contrôlé
X2 X3
=> X2 C4 X5 X3
-> X5 X3
serum albumin
=> serum and egg albumin
-> egg albumin
À partir de coordinations
Substitution
X2 X3
=> X2 X4 X5 X3
-> X4 X5 X3
hybrid gene
=> hybrid antigen receptor gene
-> antigen receptor gene
X2 X3
=> X3 P4 X5 X6 X2
-> X5 X6 X2
flow measurement
=> measurement of cerebral blood flow
-> cerebral blood flow
Connu
abdominal aorta
Neutral lipid
acidic lipid
X
Sternoclavicular joint
acromioclavicular joint
X
Terme contrôlé
À partir de substitutions
Permutation
Terme candidat
Thoracic aorta
Terme candidat
Connu
Penetrating injury
abdominal spear injury
X
Cutting tool
ablating tool
X
Radiation dose
absorbed dose
ALGORITHME
RÉSEAU DE COORDINATIONS
Incrementalité
Étape 1: acquisition à partir de termes contrôlés
Étape n: acquisition à partir des candidats de l'étape n-1
Séquence de coordinations à partir du terme contrôlé: Normal control
Étape
Variante
Candidat
1
=> normal or disease control
-> disease control
2
=> disease or age matched control
-> age matched control
3
=> age matched or sex matched control
-> sex matched control
4
=> sex matched or age matched healthy
control
-> age matched healthy control
RÉSEAU DE SUBSTITUTIONS
ACQUISITION DE VARIANTES
But : Acquérir et désambiguïser des variantes répétées qui peuvent enrichir une base de termes en y
ajoutant des variantes qui constituent de nouveaux concepts.
Techniques
•
•
Classement statistique
•
Information Mutuelle (associations preferentielles)
•
Fréquency relative (répétition)
Désambiguïsation structurale
•
Associations statistiquement pertinentes
CLASSEMENT STATISTIQUE DES VARIANTES
DÉSAMBIGUÏSATION STATISTIQUE DES VARIANTES
Taux d'association: Une combinaison de l'Information Mutuelle et de la Fréquence
Préférence structurale: frequences relative de structures concurrentes
Exemples de candidats classés
Candidat
Exemples de candidats désambiguïsés
Assoc.
I. M.
Fréq.
Structure statistique
Sous-terme contrôlé
blood mononuclear cell
0.60
-7.45
63.0
[T cell] antigen
---
protein kinase C
0.58
-6.75
54.0
[health care] system
---
case control study
0.57
-8.76
70.0
[facial nerve] paralysis
facial nerve
inflammatory bowel disease
0.51
-6.58
44.0
[case control] study
---
trypanosoma brucei rhodesiense
0.50
-2.06
3.0
[cell volume] density
cell volume
shear elastic modulus
0.45
-2.90
3.0
thyroid [stimulating hormone]
---
sodium dodecyl sulfate
0.43
-4.30
13.0
central [retinal vein]
---
hypoxanthine guanine phosphoribosyltransferase
0.43
-3.18
3.0
hematopoietic [progenitor cell]
---
pulsed dye laser
0.39
-5.42
18.0
pulsed [dye laser]
dye laser
malignant fibrous histiocytoma
0.39
-4.49
10.0
multiple [motor system]
---
plasma [volume expansion]
plasma volume, volume expansion
APPLICATION : ENRICHISSEMENT MORPHOLOGIQUE
But : exploiter des ressemblances graphiques entre termes complexes pour acquérir des liens
morphologiques.
terme + variante graphique -> lien morphologique
dopamine transmission + dopamine-rgic transmission
-> dopamine/dopamine-rgic
Principes
Recherche par troncation de termes complexes.
Classification sur la base d'une distance morphologiquement plausible.
Morphologie à base de corpus, donc adaptée au domaine correspondant.
APPLICATION: PRÉANALYSE À BASE DE TERMES
But: utiliser les occurrences de termes et variantes pour construire une structure syntaxique.
La variation mensuelle de la [respiration du sol] et ses rapports avec l'[humidité et la [température du
sol]] ont été [analysées dans le [sol] superficiel d'une [forêt] tropicale].
APPLICATION: TRADUCTION DE REQUÊTES
BUT: traduction de requêtes à partir d'exemples par un filtrage sur corpus de traductions littérales
candidates (cf. (Dagan et Schwall 92)).
terme + liens interlangues -> traductions littérales -> variantes en corpus
muscle contraction
-> (contraction | crampe...) (de le? | à le?) (muscle | nerf...)
-> contraction musculaire
RAFFINEMENT DE LA RECHERCHE SUR LE WEB 1/2
But: combiner l'expansion de requête et le filtrage de documents pour augmenter le rappel et la
précision en recherche d'information sur le Web.
requête (sac de mots) -> décomposition et expansions morpho-syntaxiques
-> filtrage de documents
Principes
Pallier le manque d'analyse morphologique (et de racinisation) des moteurs de recherche sur le Web en
surgénérant des variantes de requêtes.
Principes
Utiliser des schémas de traduction pour un ensemble restreint de structures:
Noun2 Noun1 -> transl(Noun1) Prep Det? transl(Noun2)
Utiliser un corpus ou le Web pour sélectionner les traduction(s) correcte(s):
Éliminer les documents incorrectement ramenés par le moteur de recherche au moyen de la
reconnaissance de variantes.
Avec E. Tzoukermann, Bell Labs et J. Klavans, Columbia University.
Noun1 Prep Det? Noun2 -> Noun1 Adj2
<Noun2 root> = <Adj2 root>
RAFFINEMENT DE LA RECHERCHE SUR LE WEB 2/2
requête (sac de mots) -> décomposition et expansions morpho-syntaxiques
-> filtrage de documents
[offer [debt [consolidation] loans]]
-> ((loan|loans|loaned|loaning)
~(counteroffer|counteroffers|offer|offers|offered|offering|offertory...))
&((debt|debts|debtor|debtors|indebted|indebtedness|indebtednesses)
~(consolidate|consolidates|consolidated|consolidating|consolidation...))
&((consolidate|consolidates|consolidated|consolidating|consolidation...)
~(loan|loans|loaned|loaning))
->
XX,63,NtoV
XX,63,NtoV
XX,63,NtoV
XX,63,NtoV
XX,4,Coor
XX,63,NtoV
XX,75,NoDer
offering a fast on line real estate loan
offering real estate loans
offer all types of loan
offering conventional loans
consolidation and mortgage loans
offer debt consolidation loans
consolidation or other large short term loans
RECHERCHE D'INFORMATION INTERLANGUE :
PRÉSENTATION
VISUALISATION: INTRODUCTION
Le traitement de l'information ne se limite pas à la récuperation de documents.
Une fois les documents obtenus, il est nécessaire de les intégrer dans un espace de travail.
Le meilleur médium pour l'organisation est la visualisation.
Principes de la visualisation de l'information
Introduction à la visualisation de l'information
Représentation graphique de données numériques ou textuelles pour tirer parti des capacités visuelles
humaines.
Utiliser la vision pour aider à la réflexion.
VISUALISATION: ÉTAPES DE TRAITEMENT
Méthode
1.Transformation des données.
2.Mise en forme spatiale.
3.Rendu graphique.
4.Interaction avec l'utilisateur.
ORGANISATION POUR UN ESPACE DE TRAVAIL DE
L'INFORMATION
ENJEUX DE LA VISUALISATION
Accès à l'information augmenté (Robertson et al. 93)
Verrous technologiques
(1)
(2)
(3)
(4)
(5)
(6)
Gérer des animations complexes en environnement interactif
Gérer des interactions complexes en environnement graphique
Faire coopérer des agents avec des échelles de temps différentes
Déplacer la caméra
Déplacer les objets virtuels
Optimiser l'occupation de l'écran (rapport surface/qu. d'info)
VISUALISATION DE LIENS INTRA-DOCUMENTS: (Salton et al. 95)
1/3
VISUALISATION DE LIENS INTRA-DOCUMENTS: (Salton et al. 95)
2/3
Visualisation de liens entre passages thématiquement proches
1.Segmentation en passages (ici des paragraphes).
2.Recherche des similarités entre passages par le modèle d'espace vectoriel.
3.Affichage des liens dont la force est supéerieure à un certain seuil (première figure).
4.Regroupement de paragraphes en triangles,
remplacement des triangles par leur centre de gravité,
regroupement en sous-thèmes des triangles dont les centres de gravité sont proches (deuxième
figure).
VISUALISATION DE LIENS INTRA-DOCUMENTS: (Salton et al. 95)
3/3
VISUALISATION DE LIENS INTRA-DOCUMENTS: (Hearst et al. 96)
1/2
Tile Bars : Visualisation de segments pertinents à l'intérieur de documents
Suite à une requête, on affiche les documents en mettant en relief :
1.les segments de textes thématiquement homogènes,
2.la fréquence d'un terme à l'intérieur de ces passages
plus le segment est sombre, plus les termes de la requête sont fréquents.
Mode de mise en forme :
1.Chaque ligne correspond à un des trois ensembles de termes
(xerox, research parc, business marketing cost).
2.Chaque colonne correspond à un des segments du texte.
VISUALISATION DE LIENS INTRA-DOCUMENTS: (Hearst et al. 96)
2/2
VISUALISATION DE LIENS INTER-DOCUMENTS: CONE TREE
(Robertson et al. 91) 1/3
Visualisation de hiérarchies
La visualisation d'un arbre en 3D en perspective offre les avantages suivants :
1.Meilleure occupation de l'espace que par un arbre plan
2.Effet de distorsion sur le focus en raison de la perspective et du masquage des parties cachées.
3.Manipulations aisée.
4.Possibilité d'affichage sélectif.
VISUALISATION DE LIENS INTER-DOCUMENTS: CONE TREE
(Robertson et al. 91) 2/3
VISUALISATION DE LIENS INTER-DOCUMENTS: CONE TREE
(Robertson et al. 91) 3/3
VISUALISATION DE LIENS INTER-DOCUMENTS:
CONE TREE PLAT (U. Nottingham)
VISUALISATION DE LIENS INTER-DOCUMENTS: TIME TUBE (Chi
et al. 98) 1/2
Communications Research Group, University of Nottingham
Visualisation d'évolutions de pages Web évolutives
Représentation aplatie d'une hiérarchie importante (une arborescence Unix).
Disk tree :
1.Mise en forme circulaire d'une hiérarchie.
2.Répartition angulaire uniforme pour que chaque noeud dispose du même espace angulaire.
Time tube, une évolution des Disk trees :
1.Axe spatial pour représenter le temps.
2.Code de couleur pour les nouvelles pages (ROUGE) et les pages supprimées (JAUNE).
3.Couleurs plus claires pour les pages fréquemment visitées.
VISUALISATION DE LIENS INTER-DOCUMENTS: TIME TUBE (Chi
et al. 98) 2/2
VISUALISATION D'ESPACES DE DOCUMENTS: VR-VIBE (Benford
et al. 95) 1/9
Accès coopératif à des grandes bases documentaires
Affichage de documents en fonction de mots-clés définis par l'utilisateur.
Les documents où les mots-clés apparaissent fréquemment sont proches de ces mots-clés dans l'espace.
Les documents où l'ensemble des mots-clés apparaît plus fréquemment sont plus clairs.
Représentation graphique
Documents (=paralellépipèdes) et mots-clés (=octaèdres)
Les seuils de pertinence peuvent être définis manuellement.
Exemples
Sur la première image, on voit 1581 documents et 5 mots-clés.
Sur la deuxième image, on a un autre point de vue de la même collection.
VISUALISATION D'ESPACES DE DOCUMENTS: VR-VIBE (Benford
et al. 95) 2/9
VISUALISATION D'ESPACES DE DOCUMENTS: VR-VIBE (Benford
et al. 95) 3/9
VISUALISATION D'ESPACES DE DOCUMENTS: HyperSpace (Wood
et al. 95) 4/9
VISUALISATION D'ESPACES DE DOCUMENTS: HyperSpace (Wood
et al. 95) 5/9
Visualisation du Web
Affichage du Web organisé spatialement pour que
Les pages thématiquement proches sont proches dans l'espace.
Représentation graphique
Pages (=sphères) et liens (=segments)
Exemples
Sur la première image, on voit un cluster de pages qui correspond à des pages man avec de nombreuses
références croisées.
Sur la deuxième image, utilisation en navigation en ne montrant que les liens issus de pages
sélectionnées,
et donnant les étiquettes de page.
VISUALISATION D'ESPACES DE DOCUMENTS: HyperSpace (Wood
et al. 95) 6/9
VISUALISATION D'ESPACES DE DOCUMENTS: INFOSPHERE
(Bray 96) 7/8
Principes de visualisation du Web
VISUALISATION D'ESPACES DE DOCUMENTS: INFOSPHERE
(Bray 96) 8/9
•
Unité d'affichage : le site.
•
L'aspect du site doit refléter :
•
sa visibility (liens entrants) [sa hauteur],
•
sa taille (nombre de pages) [son diamètre],
•
sa luminosité (liens sortants) taille du globe supérieur].
•
Étiqueté par son adresse.
•
Répartition spatiale liée à la connectivité.
VISUALISATION D'ESPACES DE DOCUMENTS: INFOSPHERE
(Bray 96) 9/9
DISTORSION: MUR EN PERSPECTIVE
(Mackinlay et al. 91) 1/2
DISTORSION: MUR EN PERSPECTIVE
(Mackinlay et al. 91) 2/2
Principes
Une technique de focus+contexte 1D pour manipuler des données linéairement organisées.
1.Distorsion due à l'effet de perspective.
2.Possibilité d'afficher en parallèle des donnés comparables en raison de la hauteur du mur.
3.Changement de focus progressif par glissement des informations présentées sur le mur.
Avantages
•
Pas de nécessité de changement d'échelle sémantique.
•
Affichage optimal des données en focus
DISTORSION: ARBRE HYPERBOLIQUE
(Lamping et al. 95) 1/2
Principes
Une technique de focus+contexte 2D pour manipuler de grandes bases de données hiérarchiques.
1.Tracer la hiérarchie uniformément sur un plan hyperbolique.
2.Associer ce plan à un cercle dans le plan de visualisation.
3.Changement de focus par translation dans le plan hyperbolique.
Avantages
•
Combinaison progressive entre focus et contexte.
•
Changement de focus progressif
DISTORSION: ARBRE HYPERBOLIQUE
(Lamping et al. 95) 2/2