INDEXATION ET RECHERCHE D'INFORMATION (IRI) Cours DESS II et SCHM, Université Paris 11

Dimension: px
Commencer à balayer dès la page:

Download "INDEXATION ET RECHERCHE D'INFORMATION (IRI) Cours DESS II et SCHM, Université Paris 11"

Transcription

1 INDEXATION ET RECHERCHE D'INFORMATION (IRI) Cours DESS II et SCHM, Université Paris 11 Christian Jacquemin (Université Paris 11 et LIMSI-CNRS)

2 Introduction à la recherche d'information

3 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 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 Routage Veille technologique

4 APPROCHE FONCTIONNELLE [Salton et Mc Gill 83]

5 LE MODÈLE BOOLÉEN Une requête est une expression booléenne sur les termes des documents Un document est sélectionné si et seulement si il satisfait l'expression booléenne (Auteur="Sartre" OU Auteur="Camus") ET (Titre~"Mythe" OU Titre~"étranger")

6 LE MODÈLE VECTOR SPACE [Salton 89] Documents et requêtes sont exprimés comme des vecteurs de termes Les documents sont classés en fonction de leur proximité avec la requête (Cosinus)

7 RAPPEL, PRÉCISION ET FALLOUT Précision = R r / R Rappel = R r / 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

8 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].

9 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.

10 TERMES EN THESAURUS: AGROVOC Entrée du terme Immunisation dans AGROVOC, un thesaurus en agronomie: Code Texte Glose IMMUNISATION (immunisation spécifique d'antigène) [note d'usage] ep immunisation active [non descripteur (synonyme)] ep immunisation croisée -- ep sensibilisation immune -- TG1 immunostimulation [generic term (level +1)] TG2 immunothérapie [-- (niveau +2)] TG3 thérapeutique [-- (niveau +3)] TG4 contrôle de la maladie [-- (niveau +4)] TS1 vaccination [terme spécifique (niveau -1)] ta antigène [terme associé] ta réponse immunitaire -- ta résistance aux maladies -- ta résistance induite -- En immunization [équivalent en anglais] Es immunizaci'on [équivalent en espagnol]

11 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:

12 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.

13 INDEXATION AUTOMATIQUE : NOTIONS Index 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. On peut n'effectuer l'indexation que sur une partie du document. Fichier inverse Le fichier associant les termes aux documents.

14 INDEXATION AUTOMATIQUE : QUALITÉ DES TERMES Bons discriminateurs (médecine) [Salton et Mc Gill 83] 1. marrow 3. lymphostasis 5. hela 2. amyloidosis 4. hepathitis 6.antigen Mauvais discriminateurs (médecine) [Salton et Mc Gill 83] clinic act develop children high treat Mots stop [Salton et Mc Gill 83] 1. a 3. across 5. afterwards 2. about 4. after 6.again

15 But de la morphologie MORPHOLOGIE : INTRODUCTION L'étude de la construction des mots (leurs structures, leurs variations, leurs similitudes). Le double intérêt de la morphologie en recherche d'information 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. La morphologie mise en oeuvre en recherche d'information est très simple comparée aux études linguistiques.

16 MORPHOLOGIE: NOTIONS DE BASE Chaque mot de la langue a une catégorie morpho-syntaxique ou catégorie grammaticale Flexions, dérivations et mots composés Paradigme flexionnel: je travaille, tu travailles, elle/il travaille... Le lemme est travailler. 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. 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.

17 MORPHOLOGIE DÉRIVATIONNELLE 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.

18 MORPHOLOGIE: SCHÉMA GÉNÉRAL [Bauer 83]

19 RACINISATION: ALGORITHME DE LOVINS Désuffixage et recodage séparés (Lovins, 1968). Terminaisons (consultées par taille décroissante)

20 1 1 - a l i s t i c a l l y - a r i z a b i l i t y - i 10 -antialness -arisations -arizations -entialness 9 -al lic all y -a nta ne ou s - a n t i a l i t y

21 z a t i o n a l l y -ar isa tio n...

22 Règles de recodage des fins de racines (sont consultées dans cet ordre) 1.suppression desconsomnes répétées: bb-, dd-, gg-, ll-, mm-, nn-, pp-, rr-, dd-, tt iev- -> ief- 3.uct- -> uc- 4.umpt- -> um- 5.rpt- -> rb-... RACINISATION: ALGORITHME DE PORTER Désuffixage et recodage simultanés (Porter, 1980) Etape 1a Etape 1c -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

23 Etape 3 -ATIONAL -> -ATE -TIONAL -> -TION relational -> relate conditional -> condition Racines produites par (Lovins, 1968). RACINISATION: EXEMPLES Chaîne initiale Chaîne après désuffixage magnesia magnes magnes magnesite magnes magnes magnesian magnes magnes magnetize magnet magnet Chaîne recodée magnetometer magnetometer magnetometer magnetometric magnetometr magnetometer magnetometry magnetometr magnetometer

24

25 RACINISATION DU FRANÇAIS (Namer) 1/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è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 dans les autres cas (e.g. céd-), le désuffixage se fait régulièrement sur -èrent.

26 RACINISATION DU FRANÇAIS (Namer) 2/2 Réduction des allomorphes principe : réduction à une racine unique cèd- -> cédjett- -> jet- Règles et exceptions : le cas de tt- 26 lemmes ont leur racine qui se termine par ttpour les autres, la consonne géminée est simplifiée

27 AUTOMATES 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). Une chaîne est acceptée ssi il existe un chemin allant de l'état initial à un état final étiqueté par cette chaîne.

28 EXPRESSIONS RÉGULIÈRES ET AUTOMATES À ÉTATS FINIS 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:

29 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. 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.

30 TRANSDUCTEURS FINIS : OPÉRATIONS Trois opérations sur les transducteurs Union Si T 1 et T 2 sont deux transducteurs, il existe un transducteur T 1 U T 2 tel que l'image de toute chaîne par T 1 U T 2 soit l'union des images par T 1 et T 2. 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 T 1 et T 2 sont deux transducteurs, il existe un transducteur T 2 o T 1 tel que l'image de toute chaîne C par T 2 o T 1 soit l'image par T 2 de l'image de C par T 1. 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.

31 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)

32 ANALYSE MORPHOLOGIQUE FLEXIONNELLE (TZOUKERMANN) 1/2

33 ANALYSE MORPHOLOGIQUE FLEXIONNELLE (TZOUKERMANN) 2/2 Étiq. entrée Étiq. sortie Cha îne Traits rece v recevoir/ Fin oir verb/infinitive 226 Fin ons 1st/plural/present/indicative 226 Fin ez 2nd/plural/present/indicative 226 Fin ais 1st/singular/imperfect/indicative 226 Fin ais 2nd/singular/imperfect/indicative reç recevoir/ Fin ois 1st/singular/present/indicative 225 Fin ois 2nd/singular/present/indicative 225 Fin oit 3rd/singular/present/indicative 225 Fin oive nt 3rd/plural/present/indicative 225 Fin us 1st/singular/simple-past/indicative 225 Fin us 2nd/singular/simple-past/indicative

34 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. Pour la description d'un syntagme nominal en anglais, on peut écrire une grammaire des syntagmes nominaux telle que: <SN> <PreMod> <PreMod> <PreMod> <Adj> <Nom> -> <PreMod> <Nom> -> <PreMod> and <PreMod> -> <PreMod> <PreMod> -> <Adj> <Nom> -> normal -> blood bone cell marrow

35 ARBRES D'ANALYSE Les deux arbres de dérivation associés à blood and bone marrow cell par la grammaire précédente sont:

36 ASSOCIATIONS DE MOTS 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): w 2 w'!= w 2 w 1 a = f(w 1,w 2 ) b = SOM w'!= w2 f(w 1,w') w!= w 1 c = SOM w! = w1 f(w,w 2 ) d = SOM w!= w1,w'!= w2 f(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) = log 2 (P(w 1,w 2 ) / (P(w 1 ) P(w 2 ))) = log 2 a/((a+b)(a+c))

37 Introduction à Perl

38 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.

39 Un programme simplissime Un programme d'affichage d'une chaîne : #!/usr/local/bin/perl PERL: PREMIER PROGRAMME # # 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!";

40 PERL: EXÉCUTION Deux solutions 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

41 PERL: VARIABLES SCALAIRES Exemples 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. Opération arithmétique sur une variable scalaire $x = 2; $x += 5; print $x. "\n"; donne 7

42 PERL: OPÉRATIONS ET AFFECTATIONS Opérations Perl utilise les opérateurs arithmétiques de C classiques: $a = 1 + 2; $a = 3-4; $a = 5 * 6; $a = 7 / 8; # Division rationnelle (non entière) $a = 9 ** 10; # puissance $a = 5 % 2; # Reste de la division entière ++$a; # Préincrément $a++; # Post-incrément --$a; # Prédécrément $a--; # Post-décrément et pour les chaînes: $a = $b. $c; # concaténation $a = $b x $c; # $b répété $c fois Affectations $a = $b; # Affecte $b à $a $a += $b; # Ajoute $b à $a $a -= $b; # Soustrait $b de $a $a.= $b; # Concatène $b à $a 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.

43 PERL: INTERPRÉTATION DE VARIABLES Forcer l'interprétation d'une variable dans une chaîne Il y a deux façons de définir une chaîne : avec des doubles ou des simples quotes. Seules les doubles quotes forcent l'interprétation des variables $a = "perl"; $chaine = "Je programme en $a.\n"; print $chaine; donne Je programme en perl. alors que $a = "perl"; $chaine = 'Je programme en $a.\n'; print $chaine; donne Je programme en $a.\n>

44 PERL: TABLEAUX 1/2 Définition Un tableau est une liste ordonnée de variables = (1, "deux", "3"); print $a[1]. "\n"; donne deux Affectations On peut utiliser un tableau pour en construire un autre = (1, "deux", = (2+2)); # = ("ZERO", 1, "deux", "3", 4); Ajouter ou soustraire des éléments un par un par la fin du tableau = (1, "deux", "3"); 2**2); # = (1, "deux", "3", 4); $b = # = (1, "deux", "3") et $b = 4;;

45 PERL: TABLEAUX 2/2 Affectations combinant variables scalaires et tableaux On peut directement manipuler des variables scalaires dans un tableau lors d'affectations : ($a, $b) = ($c, $d); # Équivaut à $a=$c; $b=$d; ($a, $b) # $a et $b ont pour valeurs respectives # les deux premiers éléments # $b est vide n'a qu'un élément # $a est le premier élément est la liste des éléments restants. Taille d'un tableau $#tab ou en forçant un tableau à être converti en nombre dans un contexte numérique + 0 = (1, "deux", "trois"); # 3: la taille en contexte scalaire print # 1 deux trois: la concaténation avec des séparateurs # 1deuxtrois: les éléments soudés

46 Ouverture, fermeture et lecture PERL: FICHIERS 1/2 Ouverture d'un fichier, stockage dans un tableau, puis affichage. 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'; # Nom du fichier open(info, $NomFic); # Ouverture du = <INFO>; # Stockage dans un tableau close(info); # Fermeture du fichier # Impression du fichier sur la sortie standard Différents modes d'ouverture open(info, $file); # Ouverture pour lecture open(info, "<$file"); # Alternative explicite pour lecture open(info, ">$file"); # Ouverture pour écriture open(info, ">>$file"); # Ouverture pour écriture en fin

47 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 print FILE $chaine;. En conséquence print $chaine; équivaut à print STDOUT $chaine; Pour sélectionner une sortie par défaut faire select FILE.

48 PERL: TEST BOOLÉENS Tests sur scalaires Les tests sur les valeurs scalaires : $a == $b # $a numériquement égal à $b # Attention: ne pas utiliser l'opérateur = $a!= $b # $a numériquement distinct de $b $a < $b # $a inférieur strict à $b $a <= $b # $a inférieur ou égal à $b $a > $b # $a supérieur strict à $b $a >= $b # $a supérieur ou égal à $b L'identité des chaînes est traitée séparément : $a eq $b # la chaîne de $a égale à celle de $b $a ne $b # la chaîne de $a distincte de celle de $b Opérations logiques sur les valeurs booléennes ($a && $b) # $a ET $b ($a $b) # $a OU $b!($a) # NON $a

49 PERL: EXÉCUTION CONDITIONNELLE Test if/else 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 : #!/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"; } 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

50 PERL: CONTRÔLES 1/2 Parcours des éléments d'un tableau : foreach On parcourt un à un tous les éléments du : $ind = 1; foreach $element { # parcours des éléments print "Item numéro $ind : $element\n"; # imprime l'élément $ind++; } Boucle for for (initialise; test; inc) { } action_1; action_2; etc 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"; }

51 PERL: CONTRÔLES 2/2 Boucles while et until Les boucles while et until peuvent se faire en test initial ou en test final. L'exemple suivant illustre la saisie d'un mot de passe au clavier par une boucle while à test initial : #!/usr/bin/perl print "Password:"; # Invite $a = <STDIN>; # Saisie en entrée standard chop $a; # Supprime la fin de ligne de l'entrée while ($a ne "perl") { # Tant que la saisie est fausse print "Incorrect!\nPassword:"; # Re-invite $a = <STDIN>; # Re-saisit chop $a; # Re-supprime la fin de ligne } 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:"; # Invite $a = <STDIN>; # Saisie chop $a; # Supprime la fin de ligne } until($a eq "perl");

52 PERL: EXPRESSIONS RÉGULIÈRES 1/6 Recherche d'une expression régulière dans une chaîne L'opérateur =~ m/regexp/ ou =~ /RegExp/ permet de rechercher une expression régulière dans une chaîne : $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é. 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é.

53 La chaîne par défaut $_ PERL: EXPRESSIONS RÉGULIÈRES 2/6 L'identificateur $_ désigne la chaîne par défaut. Elle est utile en analyse de fichier : while(<stdin>) { # équivaut à while( $_ = <STDIN> ) if( /Perl/ ) { # équivaut à if( $_ =~ /Perl/ ) print; # é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

54 Caractères spéciaux Caractères joker ou répétition de Kleene : PERL: EXPRESSIONS RÉGULIÈRES 3/6. # 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 /.../) : t.i # t puis tout caractère puis i: # toi ou tri, pas ti ou teli ^f # f au début d'une ligne ^ftp # ftp au début d'une ligne e$ # e à la fin d'une ligne com$ # com à la fin d'une ligne mot * # mot suivi de 0 ou plusieurs espaces.* # une chaîne de taille quelconque sans \n ^$ # Une ligne vide (attention à supprimer \n par chop)

55 PERL: EXPRESSIONS RÉGULIÈRES 4/6 Ensembles Les ensembles se notent entre crochets droits : [qjk] # Soit q, soit j, soit k [^qjk] # Ni q, ni j, ni k [a-z] # Tout caractère dont le code est compris entre a et z [^a-z] # Aucun caractère dont le code est compris entre a et z [a-za-z] # Tous les caractères alphabétiques sans diacritiques [a-z]+ # 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 : \, \[, \), \*, \^, \/, \\.

56 Caractères spéciaux PERL: EXPRESSIONS RÉGULIÈRES 5/6 Les caractères suivants sont des raccourcis pour des caractères hexadécimaux ou des ensembles de caractères : \n # Nouvelle ligne \t # Tabulation \w # Tout caractère alphanumérique (sauf diacritiques) # équivaut à [a-za-z0-9_] (w=word) \W # Tout caractère non alphanumérique # équivaut à [^a-za-z0-9_] \d # Tout chiffre, équivaut à [0-9] \D # Tout non chiffre. équivaut à [^0-9] \s # Tout caractère séparateur : espace, # tabulation, nouvelle ligne. \S # Tout caractère sauf les séparateurs

57 Exemples d'expressions régulières Quelques exemples simples : PERL: EXPRESSIONS RÉGULIÈRES 6/6 [01] # "0" ou "1" \/0 # Une division par zéro: "/0" \/ 0 # Une division par zéro avec un espace: "/ 0" \/\s0 # Une division par zéro avec un séparateur: # "/ 0" où le blanc est un espace, une tabulation... \/ *0 # Une division par zéro avec des espaces # éventuels : "/0" ou "/ 0" ou "/ 0" etc. \/\s*0 # Une division par zéro avec des séparateurs # éventuels. \/\s*0\.0* # 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.

58 Opérateur de substitution dans une chaîne PERL: SUBSTITUTION 1/3 L'opérateur s/exprreg/chaîne/ permet de remplacer une expression régulière par une chaîne : $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"; 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.

59 PERL: SUBSTITUTION 2/3 Mémorisation de sous-chaînes dans un appariement Les chaînes appariées avec des sous-expressions régulières entre parenthèses sont mémorisées : 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é!

60 PERL: SUBSTITUTION 3/3 Mémorisations liées à l'appariement complet Après un appariement, les variables suivantes sont accessibles en lecture seule : $` : 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é.";

61 Translation caractère à caractère PERL: TRANSLATION 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"; 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

62 PERL: split ET join Éclatement d'une chaîne dans un tableau : split L'opérateur split(exprreg,chaine) place dans un tableau les sous-chaînes séparées par ExprReg. 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. Exemple : $chaine = "Bonheur intégral. Légère, la poudre - en vol - tournoie! Tout y = split( /[\.\-!\?\, ]+/, $chaine ); print join( ' ), "\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 = = split( //, $chaine ); print join( ' ), "\n"; donne : B o n h e u r.

63 PERL: SOUS-CHAÎNE Extraction de sous-chaînes La commande substr permet d'extraire une sous-chaîne à partir d'un indice de départ et pour une taille donnée : substr("once upon a time", 3, 4); # retourne "e up" substr("once upon a time", 7); # retourne "on a time" substr("once upon a time", -6, 5); # retourne "a tim"

64 Saisie et lecture des tableaux associatifs PERL: TABLEAUX ASSOCIATIFS 1/2 Un tableau associatif indexe des éléments sur une clé unique. Il peut se garnir de deux façons : %naissance = ("Mick Jagger", " ", "Agatha Christie", " "); ou $naissance{"marilyn Monroe"} = " "; Les égalités suivantes sont vraies : $naissance{"mick Jagger"} eq " " $naissance{"marilyn Monroe"} eq " " 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.

65 PERL: TABLEAUX ASSOCIATIFS 2/2 Énumération des éléments d'un tableau associatif Un tableau associatif s'énumère de deux façons. Avec foreach pour parcourir les clés ou les valeurs : 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"; } ou avec each pour parcourir les couples while (($celebrite, $date) = each(%naissance)) { print "$celebrite est né(e) le $date\n"; } On obtient : Mick Jagger est né(e) le Marilyn Monroe est né(e) le Agatha Christie est né(e) le Les éléments d'un tableau associatifs ne sont pas ordonnés. On y accède rapidement par une technique de hashcode.

66 Déclaration et appel d'un sous-programme PERL: SOUS-PROGRAMMES 1/3 Déclaration - Le contient les paramètres passés lors de l'appel : sub moyenne2 { local($a, ($a + $b) / 2; } sub moyennen { local($somme, $valeur); $somme = 0; foreach $valeur { $somme += $valeur; } $somme } Appel - On fait précéder le nom du sous-programme de & : print "Moyenne : ", &moyennen( 14, 12, 19 ), "\n"; affiche : Moyenne : 15

Recherche d information textuelle

Recherche d information textuelle Recherche d information textuelle Pré-traitements & indexation B. Piwowarski CNRS / LIP6 Université Paris 6 benjamin@bpiwowar.net http://www.bpiwowar.net Master IP - 2014-15 Cours et travaux pratiques

Plus en détail

Recherche d information et repérage de termes et de leurs variantes

Recherche d information et repérage de termes et de leurs variantes Recherche d information et repérage de termes et de leurs variantes Cours de Dialogue et Analyse de Texte Aurélien Max Master Recherche en Informatique Université Paris-Sud 11 Année 2006-07 Plan du cours

Plus en détail

Marie-Claude L Homme Université de Montréal

Marie-Claude L Homme Université de Montréal Évaluation de logiciels d extraction de terminologie : examen de quelques critères Plan Marie-Claude L Homme Université de Montréal Unités recherchées et problèmes de base Catégories de critères Critères

Plus en détail

Expressions rationnelles, automates, analyse lexicale

Expressions rationnelles, automates, analyse lexicale Chapitre 2 Expressions rationnelles, automates, analyse lexicale L analyse lexicale est la première phase d un compilateur ou d un interprète : elle consiste à identifier et à catégoriser les différents

Plus en détail

Des traitements aux ressources linguistiques : le rôle d une architecture linguistique

Des traitements aux ressources linguistiques : le rôle d une architecture linguistique Des traitements aux ressources : le rôle d une architecture Frederik Cailliau Villetaneuse, le 9 décembre 2010 Sous la direction d Adeline Nazarenko 1. 2. 3. 4. 5. 6. 2 Sinequa Cifre à Sinequa Recherche

Plus en détail

Licence ST Université Claude Bernard Lyon I LIF1 : Algorithmique et Programmation C Bases du langage C 1 Conclusion de la dernière fois Introduction de l algorithmique générale pour permettre de traiter

Plus en détail

PERL POUR LA MANIPULATION DE TEXTES Une Introduction par l'exemple

PERL POUR LA MANIPULATION DE TEXTES Une Introduction par l'exemple PERL POUR LA MANIPULATION DE TEXTES Une Introduction par l'exemple Sous linux, on peut exécuter un script perl en tapant dans un terminal la ligne de commande $ perl nom_du_programme.pl Les exemples suivants,

Plus en détail

Cours Unix 5. La commande awk. 1. La commande awk. 2. La commande make. Plan du cours 5

Cours Unix 5. La commande awk. 1. La commande awk. 2. La commande make. Plan du cours 5 Cours Unix 5 Michel Mauny La commande awk ETGL Le cours 4 est disponible sur http://quincy.inria.fr/courses/unix/ Plan du cours 5 La commande awk [La commande awk 2] Similaire à sed, mais plus puissant.

Plus en détail

1. Les fondements de l informatique 13

1. Les fondements de l informatique 13 Introduction à l'algorithmique 1. Les fondements de l informatique 13 1.1 Architecture de Von Neumann 13 1.2 La machine de Turing 17 1.3 Représentation interne des instructions et des données 19 1.3.1

Plus en détail

Algorithmique - Techniques fondamentales de programmation Exemples en Python (nombreux exercices corrigés) - BTS, DUT informatique

Algorithmique - Techniques fondamentales de programmation Exemples en Python (nombreux exercices corrigés) - BTS, DUT informatique Introduction à l'algorithmique 1. Les fondements de l informatique 13 1.1 Architecture de Von Neumann 13 1.2 La machine de Turing 17 1.3 Représentation interne des instructions et des données 19 1.3.1

Plus en détail

Formation Python. Sandra Dèrozier & Franck Samson 29 Mars 2013

Formation Python. Sandra Dèrozier & Franck Samson 29 Mars 2013 Formation Python Sandra Dèrozier & Franck Samson 29 Mars 2013 Programme Présentation de Python Présentation d Eclipse Caractéristiques d un programme Python Variables Python Structures de contrôle et Boucles

Plus en détail

Perl Orienté Objet BioPerl There is more than one way to do it

Perl Orienté Objet BioPerl There is more than one way to do it Perl Orienté Objet BioPerl There is more than one way to do it Bérénice Batut, berenice.batut@udamail.fr DUT Génie Biologique Option Bioinformatique Année 2014-2015 Perl Orienté Objet - BioPerl Rappels

Plus en détail

Évaluer les liens entre codage et les données structurées (variables) Introduction au gestionnaire de rapport et au journal de commandes

Évaluer les liens entre codage et les données structurées (variables) Introduction au gestionnaire de rapport et au journal de commandes Trois approches en analyse de texte L'Analyse Qualitative L'analyse de Contenu Quantitative (par dictionnaires) Le forage de texte ("Text Mining") Introduction aux logiciels de Provalis Research QDA Miner

Plus en détail

Logiciel Statistique : SPSS

Logiciel Statistique : SPSS Faculté des Sciences Économiques et de Gestion de Tunis Logiciel Statistique : SPSS Notes du cours pour les étudiants du Master Recherche en Marketing, Management & Finance Dr. Jalila ATTAFI 2011-2012

Plus en détail

Algorithmique (M1 LTTAC UE3 du S1 & M2 LCE) Univ. Lille 3 2015-2016 15/09/15 ; page 1 N. Gasiglia

Algorithmique (M1 LTTAC UE3 du S1 & M2 LCE) Univ. Lille 3 2015-2016 15/09/15 ; page 1 N. Gasiglia 15/09/15 ; page 1 N. Gasiglia Quelques instructions de base Préambule Quand un programme a besoin d échanger des informations avec l utilisateur qui l exécute, ou avec un fichier qui en contient ou dans

Plus en détail

Présentation de la plateforme d analyse linguistique médiévale

Présentation de la plateforme d analyse linguistique médiévale Présentation de la plateforme d analyse linguistique médiévale 1. Introduction Tout au long de ce document, notre projet sera présenté à travers la méthodologie suivie pour développer la plateforme d analyse

Plus en détail

Théorie des Langages

Théorie des Langages Théorie des Langages AntLR - Générateur d analyseurs Claude Moulin Université de Technologie de Compiègne Printemps 2015 Sommaire 1 Introduction 2 AntLR ANTLR : ANother Tool for Language Recognition URL

Plus en détail

Acquisition terminologique pour identifier les mots clés d articles scientifiques

Acquisition terminologique pour identifier les mots clés d articles scientifiques Actes du huitième défi fouille de texte, DEFT2012, Grenoble, France, 8 juin 2012. Pages 29-35. Proceedings of the Eight DEFT Workshop, DEFT2012, Grenoble, France, 8th July 2012. Pages 29-35. Acquisition

Plus en détail

Université Laval Faculté des sciences et de génie Département d'informatique et de génie logiciel IFT-3101. Travail pratique #2

Université Laval Faculté des sciences et de génie Département d'informatique et de génie logiciel IFT-3101. Travail pratique #2 Université Laval Faculté des sciences et de génie Département d'informatique et de génie logiciel IFT-3101 Danny Dubé Hiver 2014 Version : 11 avril Questions Travail pratique #2 Traduction orientée-syntaxe

Plus en détail

Initiation à la programmation en Python

Initiation à la programmation en Python I-Conventions Initiation à la programmation en Python Nom : Prénom : Une commande Python sera écrite en caractère gras. Exemples : print 'Bonjour' max=input("nombre maximum autorisé :") Le résultat de

Plus en détail

Structures de données non linéaires

Structures de données non linéaires Structures de données non linéaires I. Graphes Définition Un graphe (simple) orienté G est un couple (S, A), où : S est un ensemble dont les éléments sont appelés les sommets. A est un ensemble de couples

Plus en détail

Interpréteur et langage de commandes UNIX. 2 Utilisation d un interpréteur de commande. 1 Rôle d un interpréteur de commandes (shell)

Interpréteur et langage de commandes UNIX. 2 Utilisation d un interpréteur de commande. 1 Rôle d un interpréteur de commandes (shell) !!!!!!!!!!! Interpréteur et langage de commandes UNIX Plan Introduction : rôle et fonctionnement d un interpréteur de commandes Interactivité! Divers shells! Aides à la saisie! Contrôle des tâches Langage

Plus en détail

xkcd Le langage Python La GUI tkinter Christian Nguyen Département d informatique Université de Toulon et du Var 2012-2013

xkcd Le langage Python La GUI tkinter Christian Nguyen Département d informatique Université de Toulon et du Var 2012-2013 La GUI tkinter Département d informatique Université de Toulon et du Var 2012-2013 Présentation Python est né en 1990, son concepteur est De Guido Van Rossum(Pays Bas). Il présente les caractéristiques

Plus en détail

TP Compilation Analyse lexicale

TP Compilation Analyse lexicale TP Compilation Analyse lexicale Eric Ramat ramat@lisic.univ-littoral.fr 9 mai 2014 Durée : 6 heures 1 Introduction Le but de cet TP est de vous donner les bases nécessaires afin de pouvoir écrire votre

Plus en détail

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux. UEO11 COURS/TD 1 Contenu du semestre Cours et TDs sont intégrés L objectif de ce cours équivalent a 6h de cours, 10h de TD et 8h de TP est le suivant : - initiation à l algorithmique - notions de bases

Plus en détail

CHAPITRE 5 : ANALYSE LEXICALE

CHAPITRE 5 : ANALYSE LEXICALE CHAPITRE 5 : ANALYSE LEXICALE L analyse lexicale est un autre domaine fondamental d application des automates finis. Dans la plupart des langages de programmation, les unités lexicales (identificateurs,

Plus en détail

Tableaux (introduction) et types de base

Tableaux (introduction) et types de base Tableaux (introduction) et types de base A. Motivation..................................................... 4 B. Les tableaux.................................................... 5 C. Construction des tableaux.......................................

Plus en détail

Algorithmie ISI301 TP 1 : Python et premiers algorithmes

Algorithmie ISI301 TP 1 : Python et premiers algorithmes Algorithmie ISI301 TP 1 : Python et premiers algorithmes 1 Python : apprentissage Pour avoir une vision plus large des différentes possibilités du langage Python, nous ne pouvons que vous conseiller d

Plus en détail

Initiation à la programmation en Python

Initiation à la programmation en Python I-onventions Initiation à la programmation en Python Une commande Python sera écrite en caractère gras. Exemples : print("bonjour") max=input("nombre maximum autorisé :") Le résultat de l'exécution d'un

Plus en détail

I.2: Le test fonctionnel I.2.2 : Le test fonctionnel de logiciel

I.2: Le test fonctionnel I.2.2 : Le test fonctionnel de logiciel I.2: Le test fonctionnel I.2.2 : Le test fonctionnel de logiciel Introduction Notre contexte : pas possible d exprimer toutes les combinaisons de DT. Le test fonctionnel est basé sur la spécification/interface

Plus en détail

gcc -Wall ansi o tp fichiers -lfl

gcc -Wall ansi o tp fichiers -lfl FLEX et BISON tp.l tp_l.c : - abréviations - expressions régulières et actions associées. tp.h : - définition de types - définition d étiquettes tp_y.h : codes symboliques pour les tokens FLEX Générateur

Plus en détail

Les tableaux. Chapitre 3

Les tableaux. Chapitre 3 Chapitre 3 Les tableaux 3.1 Généralités Les tableaux en PERL sont identifiés par le symbole @ à l image du $ pour les variables. Comme ces dernières, les tableaux ne sont pas typés et un même tableau peut

Plus en détail

NLTK: Corpus et Segmentation. Les corpus NLTK. Corpus et pré-traitement. Les corpus NLTK. Claire Gardent. Construire un index. Segmentation 2007/2008

NLTK: Corpus et Segmentation. Les corpus NLTK. Corpus et pré-traitement. Les corpus NLTK. Claire Gardent. Construire un index. Segmentation 2007/2008 NLTK: Corpus et Segmentation Les corpus NLTK Claire Gardent CNRS/LORIA Campus Scientifique, BP 239, F-54 506 Vandœuvre-lès-Nancy, France Construire un index Segmentation 2007/2008 1/ 26 2/ 26 Corpus et

Plus en détail

Paradigme de programmation Impératif

Paradigme de programmation Impératif Paradigme de programmation Impératif La programmation impérative est caractérisée par, la programmation avec un état et des commandes qui modifient l état : Programmation impérative Procédurale = Programmation

Plus en détail

TALN (traitement automatique du langage naturel) Eva Sassolini, 30/06/2015

TALN (traitement automatique du langage naturel) Eva Sassolini, 30/06/2015 TALN (traitement automatique du langage naturel) Eva Sassolini, 30/06/2015 Objectifs de TALN Construction de modèles et d outils capables d'effectuer des tâches spécifiques liées à la langue naturelle,

Plus en détail

Initiation à la programmation. L'essentiel de la programmation en shell, perl, php et C++

Initiation à la programmation. L'essentiel de la programmation en shell, perl, php et C++ Initiation à la programmation L'essentiel de la programmation en shell, perl, php et C++ Communiquer avec sa machine Les langages de programmation sont d'abord destinés aux humains et non aux machines.

Plus en détail

Eléments de syntaxe du langage Java

Eléments de syntaxe du langage Java c jan. 2014, v3.0 Java Eléments de syntaxe du langage Java Sébastien Jean Le but de ce document est de présenter es éléments de syntaxe du langage Java : les types primitifs, les opérateurs arithmétiques

Plus en détail

Fonctionnement du serveur Z39.50

Fonctionnement du serveur Z39.50 Fonctionnement du serveur Z39.50 Table des matières 1 Configuration du serveur...2 1.1 Comportement du serveur...2 1.2 Configuration de la traduction z39.50 -> base de données...2 1.3 Configuration du

Plus en détail

Chap 4: Analyse syntaxique. Prof. M.D. RAHMANI Compilation SMI- S5 2013/14 1

Chap 4: Analyse syntaxique. Prof. M.D. RAHMANI Compilation SMI- S5 2013/14 1 Chap 4: Analyse syntaxique 1 III- L'analyse syntaxique: 1- Le rôle d'un analyseur syntaxique 2- Grammaires non contextuelles 3- Ecriture d'une grammaire 4- Les méthodes d'analyse 5- L'analyse LL(1) 6-

Plus en détail

UFR STAPS Informatique de Gestion 2007/2008. Support de cours

UFR STAPS Informatique de Gestion 2007/2008. Support de cours UFR STAPS Informatique de Gestion 2007/2008 Support de cours Farah Benamara-Zitoune benamara@irit.fr Tel: 0561557705 SOMMAIRE Fenêtre principale du tableur Excel... 3 Mise en forme des données... 3 Validation

Plus en détail

S. Laporte C# mode console DAIGL TS1

S. Laporte C# mode console DAIGL TS1 Bases du langage C# I. C# en mode console (mode texte) Avantages par rapport au mode graphique (Application Windows): - C'est un mode plus proche de l'approche algorithmique (pas de notions de composants,

Plus en détail

Récupération automatique de la

Récupération automatique de la Récupération automatique de la mémoire 1 Plan 1. La gestion du tas. 2. Marquage et balayage. 3. Comptage de références. 4. Récupération par copie. 5. Compléments. 2 Problématique Le code exécutable généré

Plus en détail

Cours d Analyse, Algorithmique Elements de programmation

Cours d Analyse, Algorithmique Elements de programmation 1 de 33 Cours d Analyse, Algorithmique Elements de programmation Florent Hivert Mél : Florent.Hivert@lri.fr Adresse universelle : http://www.lri.fr/ hivert 2 de 33 Données et instructions Un programme

Plus en détail

Analyse syntaxique IFT-15752 Compilation et interpr etation c! Danny Dub e 2006

Analyse syntaxique IFT-15752 Compilation et interpr etation c! Danny Dub e 2006 Analyse syntaxique Introduction Les grammaires hors-contexte sont les outils que nous utiliserons pour spécifier la structure syntaxique des programmes. Les grammaires hors-contexte ont plusieurs avantages:

Plus en détail

Programmation en VBA

Programmation en VBA Programmation en VBA Présentation de Visual Basic Visual Basic : Basic : dérivé du langage Basic (Biginner s All purpose Symbolic Instruction Code) des années 60 Visual : dessin et aperçu de l interface

Plus en détail

Master Informatique Fondamentale - M1 Compilation

Master Informatique Fondamentale - M1 Compilation Master Informatique Fondamentale - M1 Compilation Analyse Statique Paul Feautrier ENS de Lyon Paul.Feautrier@ens-lyon.fr perso.ens-lyon.fr/paul.feautrier 12 mai 2007 1 / 38 Indécidabilité de la Terminaison

Plus en détail

Introduction à l'indexation fulltext

Introduction à l'indexation fulltext Introduction à l'indexation fulltext Robert VISEUR Assistant (FPMs) Guideur technologique (CETIC) robert.viseur@fpms.ac.be Solutions Linux 2008 31 janvier 2008 Objectifs de l'exposé Proposer une introduction

Plus en détail

Systèmes d'informations

Systèmes d'informations Systèmes d'informations C'est un ensemble d'outils pour stocker / gérer / diffuser des informations / des données Le stockage : Bases de données + SGDBR La gestion : Saisie, Mise à jour, Contrôle La diffusion

Plus en détail

Introduction à MATLAB R

Introduction à MATLAB R Introduction à MATLAB R Romain Tavenard 10 septembre 2009 MATLAB R est un environnement de calcul numérique propriétaire orienté vers le calcul matriciel. Il se compose d un langage de programmation, d

Plus en détail

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile Dans ce TP, vous apprendrez à définir le type abstrait Pile, à le programmer en Java à l aide d une interface

Plus en détail

Enveloppes convexes dans le plan

Enveloppes convexes dans le plan ÉCOLE POLYTECHNIQUE ÉCOLES NORMALES SUPÉRIEURES ÉCOLE SUPÉRIEURE DE PHYSIQUE ET DE CHIMIE INDUSTRIELLES CONCOURS D ADMISSION FILIÈRE MP HORS SPÉCIALITÉ INFO FILIÈRE PC COMPOSITION D INFORMATIQUE B (XECLR)

Plus en détail

TP : commande awk. D'après le cours en ligne de Isabelle Vollant http://www.shellunix.com/awk.html

TP : commande awk. D'après le cours en ligne de Isabelle Vollant http://www.shellunix.com/awk.html TP : commande awk D'après le cours en ligne de Isabelle Vollant http://www.shellunix.com/awk.html Nous reprenons dans ce TP une grande partie du cours de Isabelle Vollant en simplifiant quelques informations.

Plus en détail

CALCULS SIMPLES : LES FORMULES

CALCULS SIMPLES : LES FORMULES CALCULS SIMPLES : LES FORMULES Excel est capable d'éditer une valeur en faisant un calcul à partir de valeurs contenues dans différentes cellules. intro I - LES FORMULES A - Qu'est-ce qu'une formule C'est

Plus en détail

Parcours d un arbre Arbres de recherche CHAPITRE 6. Arbres binaires. Karelle JULLIAN. MPSI, Option Info 2014/2015. Karelle JULLIAN

Parcours d un arbre Arbres de recherche CHAPITRE 6. Arbres binaires. Karelle JULLIAN. MPSI, Option Info 2014/2015. Karelle JULLIAN CHAPITRE 6 Arbres binaires Lycée Kléber MPSI, Option Info 2014/2015 1 Définitions 2 Parcours en largeur Parcours en profondeur Parcours préfixe, infixe, postfixe Reconstitution 3 Recherche Complexité Insertion

Plus en détail

Série d exercices N 9 Arbres

Série d exercices N 9 Arbres Série d exercices N 9 Arbres Exercice 1 a) Ecrire une fonction ARBIN creerarbreentiers() qui permet de créer et de renvoyer l arbre d entiers suivant : b) Ecrire une fonction int feuilles(arbin a) qui

Plus en détail

Apprendre à développer un site web avec PHP et MySQL Exercices pratiques et corrigés (2ième édition)

Apprendre à développer un site web avec PHP et MySQL Exercices pratiques et corrigés (2ième édition) Introduction 1. Objectif de l'ouvrage 13 2. Fonctionnement d un site web 13 Installation 1. Introduction 17 2. Installation d'easyphp 13.1 18 Les bases du langage PHP 1. Les balises 23 1.1 Syntaxe de base

Plus en détail

Notion de portée locale (1)

Notion de portée locale (1) Notion de portée locale (1) Les notions de portée locale v.s. globale définies pour les blocs sont également valides dans le cadre des fonctions 1. Comme dans le cas des blocs, la portée permet de résoudre

Plus en détail

TEPZZ 74 84 A_T EP 2 743 843 A1 (19) (11) EP 2 743 843 A1 (12) DEMANDE DE BREVET EUROPEEN. (51) Int Cl.: G06F 17/30 (2006.01)

TEPZZ 74 84 A_T EP 2 743 843 A1 (19) (11) EP 2 743 843 A1 (12) DEMANDE DE BREVET EUROPEEN. (51) Int Cl.: G06F 17/30 (2006.01) (19) TEPZZ 74 84 A_T (11) EP 2 743 843 A1 (12) DEMANDE DE BREVET EUROPEEN (43) Date de publication: 18.06.14 Bulletin 14/2 (1) Int Cl.: G06F 17/ (06.01) (21) Numéro de dépôt: 1319246.7 (22) Date de dépôt:

Plus en détail

Plan. Cours 4 : Méthodes d accès aux données. Architecture système. Objectifs des SGBD (rappel)

Plan. Cours 4 : Méthodes d accès aux données. Architecture système. Objectifs des SGBD (rappel) UPMC - UFR 99 Licence d informatique 205/206 Module 3I009 Cours 4 : Méthodes d accès aux données Plan Fonctions et structure des SGBD Structures physiques Stockage des données Organisation de fichiers

Plus en détail

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP COURS PROGRAMMATION INITIATION AU LANGAGE C SUR MICROCONTROLEUR PIC page 1 / 7 INITIATION AU LANGAGE C SUR PIC DE MICROSHIP I. Historique du langage C 1972 : naissance du C dans les laboratoires BELL par

Plus en détail

Sémantique des Langages de Programmation

Sémantique des Langages de Programmation Sémantique des Langages de Programmation Introduction Stefano Guerrini stefano.guerrini@univ-paris13.fr LIPN - Institut Galilée, Université Paris Nord 13 Sup Galillée Informatique, 1ère année 2009 2010

Plus en détail

4. La commande grep (ne demandez pas pourquoi grep!)

4. La commande grep (ne demandez pas pourquoi grep!) 4. La commande grep (ne demandez pas pourquoi grep!) 4.1. Ou alors si. Grep de la commande d'édition g/re/p 'globally search for RE and print it' ou RE est un raccourci pour RegularExpression. La commande

Plus en détail

Logiciel QDA Miner. Deuxième partie Gestion du livre des codes et codage manuel

Logiciel QDA Miner. Deuxième partie Gestion du livre des codes et codage manuel PLAN DE COURS «ANALYSE DE DONNEES TEXTUELLES» Trois approches pour l analyse de textes Analyse qualitative Analyse quantitative Fouille de textes Introduction au logiciel QDA Miner Introduction et gestion

Plus en détail

variables du "shell" variables d environnement ...> rename orig dest

variables du shell variables d environnement ...> rename orig dest C. Les scripts en Unix 1 Qu'est-ce qu'un "shell"? Un "shell" est un programme permettant d'isoler l'utilisateur des commandes internes du système d'exploitation. Nous donnerons une description des principales

Plus en détail

Introduction à l algorithmique et à la programmation 2013-2014. Cyril Nicaud Cyril.Nicaud@univ-mlv.fr. Cours 1 / 5

Introduction à l algorithmique et à la programmation 2013-2014. Cyril Nicaud Cyril.Nicaud@univ-mlv.fr. Cours 1 / 5 Introduction à l algorithmique et à la programmation IUT 1ère année 2013-2014 Cyril Nicaud Cyril.Nicaud@univ-mlv.fr Cours 1 / 5 Déroulement du cours Organisation : 5 séances de 2h de cours 10 séances de

Plus en détail

TD1 : Scripts bash. I. Courrier gagnant. II. Opacification de texte. Rappels

TD1 : Scripts bash. I. Courrier gagnant. II. Opacification de texte. Rappels TD1 : Scripts bash I. Courrier gagnant 1) Écrire un script couga.sh qui lit au clavier un nom, prénom, numéro de rue, nom de la rue, code postal et ville, puis affiche sur la sortie standard l adresse

Plus en détail

Informatique. Programmation en Python.

Informatique. Programmation en Python. BCPST 1 B 13 septembre 2015 Informatique. Programmation en Python. Ce document est un support de cours, il vous permet d avoir sa structure et ses éléments les plus importants. Au cours des séances en

Plus en détail

AUTOMATISER SES TÂCHES AVEC LES MACROS

AUTOMATISER SES TÂCHES AVEC LES MACROS AUTOMATISER SES TÂCHES AVEC LES MACROS U ne macro est un ensemble de commandes qui s exécute autant de fois que nécessaire simplement en les appelant par son nom. Les macros permettent d automatiser les

Plus en détail

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3. 1. Structure d un programme C Un programme est un ensemble de fonctions. La fonction "main" constitue le point d entrée pour l exécution. Un exemple simple : #include int main() { printf ( this

Plus en détail

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

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions Cours d introduction à l informatique Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions Qu est-ce qu un Une recette de cuisine algorithme? Protocole expérimental

Plus en détail

ACCESS 2013. Système de Gestion de Bases de Données Relationnelles

ACCESS 2013. Système de Gestion de Bases de Données Relationnelles Access est un logiciel permettant de gérer des données en masse : une liste de clients ou de fournisseurs, un stock de produits, des commandes, des salariés, un club de tennis, une cave à vin, une bibliothèque,

Plus en détail

Langage C. Chapitre 2. 2.1 Le langage C, un langage non interprété. 2.1.1 L écriture du programme. 2.1.2 La compilation

Langage C. Chapitre 2. 2.1 Le langage C, un langage non interprété. 2.1.1 L écriture du programme. 2.1.2 La compilation Chapitre 2 Langage C 2.1 Le langage C, un langage non interprété Le C est un langage de programmation comme il en existe beaucoup d autres (C++, Fortran, Python, Matlab, IDL, ADA...). Il existe deux grandes

Plus en détail

TP 1. Prise en main du langage Python

TP 1. Prise en main du langage Python TP. Prise en main du langage Python Cette année nous travaillerons avec le langage Python version 3. ; nous utiliserons l environnement de développement IDLE. Étape 0. Dans votre espace personnel, créer

Plus en détail

Projet de Programmation Fonctionnelle

Projet de Programmation Fonctionnelle Projet de Programmation Fonctionnelle L objectif de ce projet est de concevoir, en Objective Caml, un évaluateur pour le langage mini-ml (un sous ensemble du langage Objective Caml). Votre programme devra

Plus en détail

Les fichiers de commande

Les fichiers de commande Les fichiers de commande Fichiers ".bat" ou ".cmd" Un fichier de commande est un fichier texte contenant des commandes en mode invite de commande qui seront lues par l'interpréteur de commande COMMAND.COM

Plus en détail

Arbres binaires de recherche

Arbres binaires de recherche Chapitre 1 Arbres binaires de recherche 1 Les arbre sont très utilisés en informatique, d une part parce que les informations sont souvent hiérarchisées, et peuvent être représentées naturellement sous

Plus en détail

Le langage PHP. Walid Belkhir Université de Provence belkhir@cmi.univ-mrs.fr http://www.lif.univ-mrs.fr/ belkhir/

Le langage PHP. Walid Belkhir Université de Provence belkhir@cmi.univ-mrs.fr http://www.lif.univ-mrs.fr/ belkhir/ Le langage PHP Walid Belkhir Université de Provence belkhir@cmi.univ-mrs.fr http://www.lif.univ-mrs.fr/ belkhir/ 1 / 38 Plan 1 Introduction au langage PHP 2 2 / 38 Qu est ce que PHP? langage interprété

Plus en détail

Introduction 2 Environnement de travail... 2 Groupement de commandes... 2 Caractères spéciaux... 2

Introduction 2 Environnement de travail... 2 Groupement de commandes... 2 Caractères spéciaux... 2 TP OS n 5 2012 tv - v.1.0 Sommaire Introduction 2 Environnement de travail....................................... 2 Groupement de commandes..................................... 2 Caractères

Plus en détail

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles) 1/4 Objectif de ce cours /4 Objectifs de ce cours Introduction au langage C - Cours Girardot/Roelens Septembre 013 Du problème au programme I passer d un problème exprimé en français à la réalisation d

Plus en détail

Machines composées de (depuis 1940 env.) : http://cui.unige.ch/isi/cours/std/

Machines composées de (depuis 1940 env.) : http://cui.unige.ch/isi/cours/std/ données pr ogramme 11111101 11001101 01000101 b us disque ma gnétique processeur écran Structures de données et algorithmes Ordinateurs Gilles Falquet, printemps-été 2002 Machines composées de (depuis

Plus en détail

Théorie des Langages

Théorie des Langages Théorie des Langages Automates Claude Moulin Université de Technologie de Compiègne Printemps 2013 Sommaire 1 Automate fini 2 Automate et langages réguliers 3 Automate à pile Automate fini déterministe

Plus en détail

IN 102 - Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

IN 102 - Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C IN 102 - Cours 1 Qu on le veuille ou non, les systèmes informatisés sont désormais omniprésents. Même si ne vous destinez pas à l informatique, vous avez de très grandes chances d y être confrontés en

Plus en détail

TD : Petits exercices pour la reprise

TD : Petits exercices pour la reprise TD : Petits exercices pour la reprise 1) Environnement de travail a) Qu est-ce qu un IDE? Lorsqu on fait de la programmation, il est agréable d avoir à sa disposition différents outils qui permettent de

Plus en détail

Informatique UE 102. Jean-Yves Antoine. Architecture des ordinateurs et Algorithmique de base. UFR Sciences et Techniques Licence S&T 1ère année

Informatique UE 102. Jean-Yves Antoine. Architecture des ordinateurs et Algorithmique de base. UFR Sciences et Techniques Licence S&T 1ère année UFR Sciences et Techniques Licence S&T 1ère année Informatique UE 102 Architecture des ordinateurs et Algorithmique de base Jean-Yves Antoine http://www.info.univ-tours.fr/~antoine/ UFR Sciences et Techniques

Plus en détail

Apprendre à développer un site web

Apprendre à développer un site web Ce livre s adresse à un public de développeurs débutants connaissant déjà le HTML et les CSS et qui souhaitent bien comprendre le fonctionnement d une application web pour créer leurs propres sites web

Plus en détail

PRODIGE V3. Manuel utilisateurs. Consultation des métadonnées

PRODIGE V3. Manuel utilisateurs. Consultation des métadonnées PRODIGE V3 Manuel utilisateurs Consultation des métadonnées Pour plus d'information sur le dispositif : à remplir par chaque site éventuellement 2 PRODIGE V3 : Consultation des métadonnées SOMMAIRE 1.

Plus en détail

Introduction à la Programmation 1

Introduction à la Programmation 1 Introduction à la Programmation 1 Séance de cours/td Université Paris-Diderot Objectifs: Découverte du type String. Comprendre qu il y a des types différents. Maîtriser les expressions booléennes dans

Plus en détail

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

3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes PLAN CYCLE DE VIE D'UN LOGICIEL EXPRESSION DES BESOINS SPÉCIFICATIONS DU LOGICIEL CONCEPTION DU LOGICIEL LA PROGRAMMATION TESTS ET MISE AU POINT DOCUMENTATION CONCLUSION C.Crochepeyre Génie Logiciel Diapason

Plus en détail

Ricco Rakotomalala http://eric.univ-lyon2.fr/~ricco/cours/cours_programmation_r.html. R.R. Université Lyon 2

Ricco Rakotomalala http://eric.univ-lyon2.fr/~ricco/cours/cours_programmation_r.html. R.R. Université Lyon 2 Ricco Rakotomalala http://eric.univ-lyon2.fr/~ricco/cours/cours_programmation_r.html 1 Mode de fonctionnement sous R TRAVAILLER SOUS R 2 R est un interpréteur, il permet de programmer avec le langage S

Plus en détail

Grammaires formelles, Automates

Grammaires formelles, Automates 1/39 Grammaires formelles, Automates Pierre Zweigenbaum LIMSI, CNRS pz@limsi.fr http://www.limsi.fr/~pz/ 2/39 1 Syntaxe : grammaire, analyse 2 Grammaires formelles Langage et grammaire Grammaires régulières

Plus en détail

GUIDE Excel (version intermédiaire) Version 2007 Table des matières

GUIDE Excel (version intermédiaire) Version 2007 Table des matières GUIDE Excel (version intermédiaire) Version 2007 Table des matières 1. Les rubans... 2 2. Recherchez des données... 5 3. Trier et filtrer.... 6 Trier... 6 Filtre... 7 4. Plage... 9 Attribuer un nom...

Plus en détail

MS-DOS UTILISATION DES POSSIBILITÉS DE PROGRAMMATION POUR LA CRÉATION DE PROCÉDURES BAT

MS-DOS UTILISATION DES POSSIBILITÉS DE PROGRAMMATION POUR LA CRÉATION DE PROCÉDURES BAT 202 MS-DOS UTILISATION DES POSSIBILITÉS DE PROGRAMMATION POUR LA CRÉATION DE PROCÉDURES BAT I. INSTRUCTIONS SPÉCIFIQUES 1) Instructions COMMAND EXIT Permet d'appeler depuis une procédure BAT une autre

Plus en détail

Quelques exemples d utilisation de Lexique avec Awk

Quelques exemples d utilisation de Lexique avec Awk Quelques exemples d utilisation de Lexique avec Awk Christophe Pallier 9 Octobre 2001 (dernière mise à jour: 16 mai 2004) Lexique est une base de données lexicale disponible sur le site www.lexique.org.

Plus en détail

Table des matières. 4. INSTRUCTIONS RÉPÉTITIVES... 25 Réaffectation 25 Répétitions en boucle L instruction while 26 Commentaires 26 Remarques 27

Table des matières. 4. INSTRUCTIONS RÉPÉTITIVES... 25 Réaffectation 25 Répétitions en boucle L instruction while 26 Commentaires 26 Remarques 27 Gérard Swinnen Apprendre à programmer avec Python 3 Avec 60 pages d exercices corrigés! Objet Multithreading Bases de données Événements Programmation web Programmation réseau Unicode Impression PDF Python

Plus en détail

Abstraction: introduction. Abstraction et liaison dans les langages de programmation. Abstraction: principe. Abstraction: terminologie. N.

Abstraction: introduction. Abstraction et liaison dans les langages de programmation. Abstraction: principe. Abstraction: terminologie. N. Abstraction et liaison dans les langages de programmation LIN2: Paradigmes de programmation N. Hameurlain Abstraction: introduction L'importance de l abstraction découle de sa capacité de cacher les détails

Plus en détail

Résumé du document «Programmes des classes préparatoires aux Grandes Écoles ; Discipline : Informatique ; Première et seconde années - 2013»

Résumé du document «Programmes des classes préparatoires aux Grandes Écoles ; Discipline : Informatique ; Première et seconde années - 2013» Résumé du document «Programmes des classes préparatoires aux Grandes Écoles ; Discipline : Informatique ; Première et seconde années - 2013» I Objectifs Niveau fondamental : «on se fixe pour objectif la

Plus en détail

Compilateurs : Analyse lexicale. Vous êtes ici 2. Analyse lexicale 4. Matthieu Amiguet. En entrée d un compilateur, on a généralement un fichier

Compilateurs : Analyse lexicale. Vous êtes ici 2. Analyse lexicale 4. Matthieu Amiguet. En entrée d un compilateur, on a généralement un fichier Compilateurs : Matthieu Amiguet 2009 2010 Vous êtes ici 2 Partie Avant Analyse syntaxique Analyse sémantique Arbre syntaxique abstrait (AST) Partie Arrière Optimisation de l AST Génération de code Optimisation

Plus en détail

Cours 1 : Introduction Générale + Objet I

Cours 1 : Introduction Générale + Objet I Organisation du cours Équipe pédagogique DUT Informatique S3 - Programmation Java Jean-Claude MARTIN MARTIN@LIMSI.FR Cours 1 : Introduction Générale + Objet I Jean-Claude MARTIN (Responsable, Cours, TD

Plus en détail

Épreuve d informatique 2011

Épreuve d informatique 2011 A 2011 INFO. MP ÉCOLE NATIONALE DES PONTS ET CHAUSSÉES, ÉCOLES NATIONALES SUPÉRIEURES DE L AÉRONAUTIQUE ET DE L ESPACE, DE TECHNIQUES AVANCÉES, DES TÉLÉCOMMUNICATIONS, DES MINES DE PARIS, DES MINES DE

Plus en détail

B) Outils d'analyse et composants du langage. deux points de vues complémentaires : outils d'analyse ; composants du langage

B) Outils d'analyse et composants du langage. deux points de vues complémentaires : outils d'analyse ; composants du langage 1 deux points de vues complémentaires : outils d'analyse ; composants du langage B.I) Briques de base ; les expressions bien typées B.II) Simplification de l'analyse ; nommer une expression B.III) Analyse

Plus en détail