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