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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

! Text Encoding Initiative

! Text Encoding Initiative Format XML: suite! le contenu d un élément est la concaténation de! texte! et d éléments (imbrication)! => structure arborescente! pas de chevauchement de balises! => exemple : une analyse syntagmatique

Plus en détail

Théorie des langages. compilation. Elise Bonzon http://web.mi.parisdescartes.fr/ bonzon/ elise.bonzon@parisdescartes.fr 1 / 59

Théorie des langages. compilation. Elise Bonzon http://web.mi.parisdescartes.fr/ bonzon/ elise.bonzon@parisdescartes.fr 1 / 59 et compilation Elise Bonzon http://web.mi.parisdescartes.fr/ bonzon/ elise.bonzon@parisdescartes.fr 1 / 59 et compilation et compilation Structure d un compilateur Analyse lexicale Analyse syntaxique Analyse

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

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

EXCEL. Chapitre 4 : Le langage Visual Basic Application. Claude Duvallet

EXCEL. Chapitre 4 : Le langage Visual Basic Application. Claude Duvallet Chapitre 4 : Le langage Visual Basic Application Claude Duvallet Université du Havre UFR des Sciences et Techniques 25 rue Philippe Lebon BP 540 76058 Le Havre Cedex Courriel : Claude.Duvallet@gmail.com

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

Cours de compilation

Cours de compilation Cours de compilation 1 Introduction Un compilateur est un logiciel de traduction d un langage source vers un langage cible. D ordinaire le langage source est un langage de programmation évolué, comme C++

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

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

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

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

ETL Extract - Transform - Load

ETL Extract - Transform - Load ETL Extract - Transform - Load Présentation générale de Datastage Rémy Choquet - Université Lyon 2 - Master 2 IIDEE - 2006-2007 Plan Introduction Définition de datastage Composants DataStage Terminologie

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

Définitions. Numéro à préciser. (Durée : )

Définitions. Numéro à préciser. (Durée : ) Numéro à préciser (Durée : ) On étudie dans ce problème l ordre lexicographique pour les mots sur un alphabet fini et plusieurs constructions des cycles de De Bruijn. Les trois parties sont largement indépendantes.

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

Détection de variantes terminologiques

Détection de variantes terminologiques Rapport de stage Université de Nantes, Master 2 Atal Détection de variantes terminologiques Étudiante : Coraline Marie Encadrants : Béatrice Daille Sebastián Peña Saldarriaga Stage réalisé du 19 janvier

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

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

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

UV Théorie de l Information. Codes à longueur variable

UV Théorie de l Information. Codes à longueur variable Cours n 5 : UV Théorie de l Information Compression de l information : Codage de source sans distorsion Ex 1 : Code de Shannon Fano Ex 2 : Code de Huffman Ex 3 : Codage par plage Ex 4 : Codage de Lempel

Plus en détail

Ch. 1 : Bases de programmation en Visual Basic

Ch. 1 : Bases de programmation en Visual Basic Ch. 1 : Bases de programmation en Visual Basic 1 1 Variables 1.1 Définition Les variables permettent de stocker en mémoire des données. Elles sont représentées par des lettres ou des groupements de lettres

Plus en détail

THÉORIE DE L'INFORMATION : RAPPELS

THÉORIE DE L'INFORMATION : RAPPELS THÉORIE DE L'INFORMATION : RAPPELS 1920 : premières tentatives de définition de mesure de l'information à partir de 1948 : travaux de Shannon Théorie de l'information discipline fondamentale qui s'applique

Plus en détail

Bernard HAMM, Évelyne LAVOISIER

Bernard HAMM, Évelyne LAVOISIER 92 MAÎTRISE DE PROGICIELS DE GESTION DE BASES DE DONNÉES ET DE TRAITEMENT DE TEXTE Compte rendu d'un stage à l'usage des professeurs de sciences sociales. Ce stage a été programmé A la demande et avec

Plus en détail

LES TYPES DE DONNÉES DU LANGAGE PASCAL

LES TYPES DE DONNÉES DU LANGAGE PASCAL LES TYPES DE DONNÉES DU LANGAGE PASCAL 75 LES TYPES DE DONNÉES DU LANGAGE PASCAL CHAPITRE 4 OBJECTIFS PRÉSENTER LES NOTIONS D ÉTIQUETTE, DE CONS- TANTE ET DE IABLE DANS LE CONTEXTE DU LAN- GAGE PASCAL.

Plus en détail

Exercices «Programmation récursive» Deuxième saison UPMC Cycle L Revision: 1.21

Exercices «Programmation récursive» Deuxième saison UPMC Cycle L Revision: 1.21 Exercices «Programmation récursive» Deuxième saison UPMC Cycle L Revision: 1.21 Anne Brygoo, Maryse Pelletier, Christian Queinnec, Michèle Soria Université Paris 6 Pierre et Marie Curie septembre 2005

Plus en détail

Structures de données, IMA S6

Structures de données, IMA S6 Structures de données, IMA S6 Arbres Binaires d après un cours de N. Devésa, Polytech Lille. Laure Gonnord http://laure.gonnord.org/pro/teaching/ Laure.Gonnord@polytech-lille.fr Université Lille 1 - Polytech

Plus en détail

VIII. Interrogation de documents avec XQuery

VIII. Interrogation de documents avec XQuery VIII. Interrogation de documents avec XQuery 350 XQUERY? Est un langage d interrogation de données XML N est pas un dialecte XML Est un sur-ensemble de XPath 2.0 Utilise le même modèle de données (XDM)

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

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

Algorithmique avancée en Python TDs

Algorithmique avancée en Python TDs Algorithmique avancée en Python TDs Denis Robilliard sept. 2014 1 TD 1 Révisions 1. Ecrire un programme qui saisit un entier, et détermine puis affiche si l entier est pair où impair. 2. Ecrire un programme

Plus en détail

Algorithmique et Programmation, IMA

Algorithmique et Programmation, IMA Algorithmique et Programmation, IMA Cours 2 : C Premier Niveau / Algorithmique Université Lille 1 - Polytech Lille Notations, identificateurs Variables et Types de base Expressions Constantes Instructions

Plus en détail

LIVRE BLANC Décembre 2014

LIVRE BLANC Décembre 2014 PARSING MATCHING EQUALITY SEARCH LIVRE BLANC Décembre 2014 Introduction L analyse des tendances du marché de l emploi correspond à l évidence à une nécessité, surtout en période de tension comme depuis

Plus en détail

Introduction (rapide) à Perl

Introduction (rapide) à Perl Luc Didry Julien Vaubourg LP ASRALL Année universitaire 2009-2010 Université Nancy 2 IUT Nancy-Charlemagne Table des matières Introduction (rapide) à Perl 1 Qu'est-ce que Perl? 2 2 Document de base 2 3

Plus en détail

2012/2013 Le codage en informatique

2012/2013 Le codage en informatique 2012/2013 Le codage en informatique Stéphane Fossé/ Marc Gyr Lycée Felix Faure Beauvais 2012/2013 INTRODUCTION Les appareils numériques que nous utilisons tous les jours ont tous un point commun : 2 chiffres

Plus en détail

Cours Algorithmique, 2ème partie AS IUT

Cours Algorithmique, 2ème partie AS IUT Cours Algorithmique, 2ème partie AS IUT Cours 2 : Arbres Binaires Anne Vilnat http://www.limsi.fr/individu/anne/coursalgo Plan 1 Représentations arborescentes 2 Définition d un arbre binaire récursive

Plus en détail

EXCEL TUTORIEL 2012/2013

EXCEL TUTORIEL 2012/2013 EXCEL TUTORIEL 2012/2013 Excel est un tableur, c est-à-dire un logiciel de gestion de tableaux. Il permet de réaliser des calculs avec des valeurs numériques, mais aussi avec des dates et des textes. Ainsi

Plus en détail

données en connaissance et en actions?

données en connaissance et en actions? 1 Partie 2 : Présentation de la plateforme SPSS Modeler : Comment transformer vos données en connaissance et en actions? SPSS Modeler : l atelier de data mining Large gamme de techniques d analyse (algorithmes)

Plus en détail

Gestion collaborative de documents

Gestion collaborative de documents Gestion collaborative de documents ANT box, le logiciel qui simplifie votre GED Les organisations (entreprises, collectivités, associations...) génèrent chaque jour des millions de documents, e-mails,

Plus en détail

Recherche dans un tableau

Recherche dans un tableau Chapitre 3 Recherche dans un tableau 3.1 Introduction 3.1.1 Tranche On appelle tranche de tableau, la donnée d'un tableau t et de deux indices a et b. On note cette tranche t.(a..b). Exemple 3.1 : 3 6

Plus en détail

Plan. Exemple: Application bancaire. Introduction. OCL Object Constraint Language Le langage de contraintes d'uml

Plan. Exemple: Application bancaire. Introduction. OCL Object Constraint Language Le langage de contraintes d'uml OCL Object Constraint Language Le langage de contraintes d'uml Plan 1. Introduction 2. Les principaux concepts d'ocl Object Constraint Language 1 Object Constraint Language 2 Exemple: une application bancaire

Plus en détail

STAGE IREM 0- Premiers pas en Python

STAGE IREM 0- Premiers pas en Python Université de Bordeaux 16-18 Février 2014/2015 STAGE IREM 0- Premiers pas en Python IREM de Bordeaux Affectation et expressions Le langage python permet tout d abord de faire des calculs. On peut évaluer

Plus en détail

en Visual Basic Premiers pas

en Visual Basic Premiers pas V0 (16-10-2009) Licence Université Lille 1 Pour toutes remarques : Alexandre.Sedoglavic@univ-lille1.fr Première année DEUST 2008-09 Ce cours est porte sur la programmation en s appuyant sur le langage

Plus en détail

Ligne de commande Linux avancée et scriptage bash (Linux 201)

Ligne de commande Linux avancée et scriptage bash (Linux 201) Ligne de commande Linux avancée et scriptage bash (Linux 201) laurent.duchesne@calculquebec.ca maxime.boissonneault@calculquebec.ca Université Laval - Septembre 2014 1 2 Se connecter à Colosse ssh colosse.calculquebec.ca

Plus en détail

Extraction de termes centrée autour de l expert

Extraction de termes centrée autour de l expert Thomas Heitz, Mathieu Roche, Yves Kodratoff Université Paris-Sud, Bât 490, 91405 Orsay Cedex France, {heitz, roche, yk}@lri.fr, http://www.lri.fr/ {heitz, roche, yk}/ Résumé. Nous développons un logiciel,

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

OCL - Object Constraint Language

OCL - Object Constraint Language OCL - Object Constraint Language Laëtitia Matignon laetitia.matignon@univ-lyon1.fr Département Informatique - Polytech Lyon Université Claude Bernard Lyon 1 2012-2013 Laëtitia Matignon SIMA - OCL - Object

Plus en détail

EXCEL PERFECTIONNEMENT SERVICE INFORMATIQUE. Version 1.0 30/11/05

EXCEL PERFECTIONNEMENT SERVICE INFORMATIQUE. Version 1.0 30/11/05 EXCEL PERFECTIONNEMENT Version 1.0 30/11/05 SERVICE INFORMATIQUE TABLE DES MATIERES 1RAPPELS...3 1.1RACCOURCIS CLAVIER & SOURIS... 3 1.2NAVIGUER DANS UNE FEUILLE ET UN CLASSEUR... 3 1.3PERSONNALISER LA

Plus en détail

Macros et langage VBA Apprendre à programmer sous Excel (3ième édition)

Macros et langage VBA Apprendre à programmer sous Excel (3ième édition) Introduction A. Introduction 15 B. À qui s'adresse ce livre? 15 C. Qu est-ce qu une macro? 15 D. Quel intérêt de faire des macros? 16 E. Contenu de ce livre 16 L'éditeur de Visual Basic A. Introduction

Plus en détail

Norme de programmation pour le cours et les travaux pratiques

Norme de programmation pour le cours et les travaux pratiques Université du Québec École de technologie supérieure Service des enseignements généraux www.seg.etsmtl.ca INF130 Ordinateurs et programmation Norme de programmation pour le cours et les travaux pratiques

Plus en détail

Héritage en java : Calculatrice SDC

Héritage en java : Calculatrice SDC Programmation orientée objet L3 MIAGE Héritage en java : Calculatrice SDC Travail à rendre : le code complet du projet SDC sous forme d une archive tar.gz. L archive comportera trois répertoires : un répertoire

Plus en détail

Chapitre 3 Structures de données linéaires : listes, piles et files

Chapitre 3 Structures de données linéaires : listes, piles et files Chapitre 3 Structures de données linéaires : listes, piles et files 1. Introduction Le but de ce chapitre est de décrire des représentations des structures de données de base telles les listes en général

Plus en détail

Vers l'ordinateur quantique

Vers l'ordinateur quantique Cours A&G Vers l'ordinateur quantique Données innies On a vu dans les chapîtres précédents qu'un automate permet de représenter de manière nie (et même compacte) une innité de données. En eet, un automate

Plus en détail

IMPORTATION, CRÉATION, MANIPULATION, EXPORTATION DE DONNÉES STATISTIQUES

IMPORTATION, CRÉATION, MANIPULATION, EXPORTATION DE DONNÉES STATISTIQUES IMPRTATIN, CRÉATIN, MANIPULATIN, EXPRTATIN DE DNNÉES STATISTIQUES Bernard Dupont Bernard.Dupont@univ-lille1.fr ahm.bahah@yahoo.fr Bien que l'analyse et le traitement des données ne soient pas sa vocation

Plus en détail

Cours Informatique Master STEP

Cours Informatique Master STEP Cours Informatique Master STEP Bases de la programmation: Compilateurs/logiciels Algorithmique et structure d'un programme Programmation en langage structuré (Fortran 90) Variables, expressions, instructions

Plus en détail

Note de cours. Introduction à Excel 2007

Note de cours. Introduction à Excel 2007 Note de cours Introduction à Excel 2007 par Armande Pinette Cégep du Vieux Montréal Excel 2007 Page: 2 de 47 Table des matières Comment aller chercher un document sur CVMVirtuel?... 8 Souris... 8 Clavier

Plus en détail

Algorithmique Travaux Dirigés

Algorithmique Travaux Dirigés Algorithmique Travaux Dirigés Master Technologie et Handicap : Intensifs 1 Corrigé Exercice 1 Affectations 1. Considérons les algorithmes ci-dessous. (a) Quel sera le contenu des variables a, b et éventuellement

Plus en détail

Les structures de données. Rajae El Ouazzani

Les structures de données. Rajae El Ouazzani Les structures de données Rajae El Ouazzani Les arbres 2 1- Définition de l arborescence Une arborescence est une collection de nœuds reliés entre eux par des arcs. La collection peut être vide, cad l

Plus en détail

Optimisation de requêtes. I3009 Licence d informatique 2015/2016. Traitement des requêtes

Optimisation de requêtes. I3009 Licence d informatique 2015/2016. Traitement des requêtes Optimisation de requêtes I3009 Licence d informatique 2015/2016 Cours 5 - Optimisation de requêtes Stéphane.Gançarski Stephane.Gancarski@lip6.fr Traitement et exécution de requêtes Implémentation des opérateurs

Plus en détail

M Younsi Tel :0645755250 www.formation-informatiques.fr mousse.younsi@ formation-informatiques.fr

M Younsi Tel :0645755250 www.formation-informatiques.fr mousse.younsi@ formation-informatiques.fr U2 MATHÉMATIQUES POUR L INFORMATIQUE Dans ce document, on trouve toutes les notions que le référentiel du BTS SIO impose pour l epreuve U22. Les éléments en rouge sont des rappels concernant la notion

Plus en détail

SOMMAIRE. Travailler avec les requêtes... 3

SOMMAIRE. Travailler avec les requêtes... 3 Access Les requêtes SOMMAIRE Travailler avec les requêtes... 3 A) Créer une requête sélection en mode QBE... 3 B) Exécuter une requête à partir du mode Modifier (QBE)... 3 C) Passer du mode Feuille de

Plus en détail

Grammaires d unification

Grammaires d unification Cours sur le traitement automatique des langues (IV) Violaine Prince Université de Montpellier 2 LIRMM-CNRS Grammaires d unification Grammaire catégorielle Grammaire syntagmatique généralisée (GPSG) Les

Plus en détail

Intelligence Artificielle et Systèmes Multi-Agents. Badr Benmammar bbm@badr-benmammar.com

Intelligence Artificielle et Systèmes Multi-Agents. Badr Benmammar bbm@badr-benmammar.com Intelligence Artificielle et Systèmes Multi-Agents Badr Benmammar bbm@badr-benmammar.com Plan La première partie : L intelligence artificielle (IA) Définition de l intelligence artificielle (IA) Domaines

Plus en détail

Introduction à Visual Basic

Introduction à Visual Basic La fenêtre (form) principale: Zone de titre Points d attraction pour le dessin des contrôles Menu Système Fenêtre s affichant lors de l exécution du programme 15 Raccourci F4 Propriétés de la fenêtre principale

Plus en détail

LE MODELE CONCEPTUEL DE DONNEES

LE MODELE CONCEPTUEL DE DONNEES LE MODELE CONCEPTUEL DE DONNEES Principe : A partir d'un cahier des charges, concevoir de manière visuelle les différents liens qui existent entre les différentes données. Les différentes étapes de réalisation.

Plus en détail

EPREUVE OPTIONNELLE d INFORMATIQUE

EPREUVE OPTIONNELLE d INFORMATIQUE EPREUVE OPTIONNELLE d INFORMATIQUE A) QCM Les réponses au QCM doivent être portées directement sur la feuille de sujet de QCM. Ne pas omettre de faire figurer votre numéro de candidat sur cette feuille

Plus en détail

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation impérative et structures de données simples Introduction au langage C Sandrine Blazy - 1ère année 24 octobre 2007 Cours d Algorithmique-Programmation

Plus en détail

Algorithmique P2. La complexité Ulg, 2009-2010 R.Dumont

Algorithmique P2. La complexité Ulg, 2009-2010 R.Dumont Algorithmique P2 La complexité Ulg, 2009-2010 R.Dumont Sources supplémentaires Ouvrages Data Structures in Java, T. Standish, 1998 Data Structures and Algorithms in Java (4th ed), Michael T. Goodrich &

Plus en détail

1. Cliquez sur dans le coin supérieur gauche de l'écran 2. Sélectionnez la Langue de l'interface désirée 3. Cliquez sur

1. Cliquez sur dans le coin supérieur gauche de l'écran 2. Sélectionnez la Langue de l'interface désirée 3. Cliquez sur NOTIFICATIONS GUIDE Le module Notifications permet de retrouver des notifications en utilisant les champs spécifiques de la base de données du Registre central des notifications (RCN). Il comporte une

Plus en détail

Codage de l'information

Codage de l'information Organisation des ordinateurs et assembleur Codage de l information Chapitre 3 Codage de l'information Les cellules de mémoire ne contiennent pas vraiment des valeurs décimales : elles contiennent en fait

Plus en détail

Instructions assembleur

Instructions assembleur Instructions assembleur 0001011011110110 0001011101101101 10001001 Instruction vue par le programmeur assembleur ou instruction élémentaire cible d'un compilateur Réalise une modification de l'état interne

Plus en détail

λ-calcul et typage Qu est-ce qu une fonction?

λ-calcul et typage Qu est-ce qu une fonction? λ-calcul et typage Nicolas Barnier, Pascal Brisset ENAC Avril 2009 Nicolas Barnier, Pascal Brisset (ENAC) λ-calcul et typage Avril 2009 1 / 1 Qu est-ce qu une fonction? Classiquement Pas de notation uniforme/standard

Plus en détail

Cours 7 : fonctions recursives, arithmétique binaire, flottants 1

Cours 7 : fonctions recursives, arithmétique binaire, flottants 1 Cours 7 : fonctions recursives, arithmétique binaire, flottants 1 Les types énumérés On peut aussi définir des types qui ont un nombre fini de valeurs (ex: jours de la semaine, couleurs primaires, etc.)

Plus en détail

Apprentissage Automatique

Apprentissage Automatique Apprentissage Automatique Introduction-I jean-francois.bonastre@univ-avignon.fr www.lia.univ-avignon.fr Définition? (Wikipedia) L'apprentissage automatique (machine-learning en anglais) est un des champs

Plus en détail

Informatique / Programmation

Informatique / Programmation Informatique / Programmation Programmation orientée objet avec Java 02 : Expressions et opérateurs Jacques Bapst jacques.bapst@hefr.ch Expressions [1] Les expressions sont des entités composées de littéraux,

Plus en détail

Le Thesaurus Linguae Graecae est un centre de recherche de l Université de la Californie, Irvine. Le projet a débuté en 1972.

Le Thesaurus Linguae Graecae est un centre de recherche de l Université de la Californie, Irvine. Le projet a débuté en 1972. Description Le Thesaurus Linguae Graecae est une base de données textuelles qui présente, dans la langue originale, les œuvres des auteurs grecs anciens dans l ensemble des disciplines. Elle est disponible

Plus en détail

Unix/Linux I. 1 ere année DUT. Université marne la vallée

Unix/Linux I. 1 ere année DUT. Université marne la vallée Unix/Linux I 1 ere année DUT Université marne la vallée 1 Introduction 2 Fonctions et spécifité d Unix Architecture 3 4 5 Fichier Unix Arborescence de fichiers Quelques commandes sur les fichiers Chemins

Plus en détail

Présentation du PL/SQL

Présentation du PL/SQL I Présentation du PL/ Copyright Oracle Corporation, 1998. All rights reserved. Objectifs du Cours A la fin de ce chapitre, vous saurez : Décrire l intéret du PL/ Décrire l utilisation du PL/ pour le développeur

Plus en détail

@promt Expert 8.0. Description abrégée. Avantages. PROMT Translation Software

@promt Expert 8.0. Description abrégée. Avantages. PROMT Translation Software @promt Expert 8.0 Description abrégée Conçu pour les utilisateurs experts et les agences de traduction, @promt Expert 8.0 offre toutes les caractéristiques de @promt Professional avec en plus : Intégration

Plus en détail

Génie Logiciel avec Ada. 4 février 2013

Génie Logiciel avec Ada. 4 février 2013 Génie Logiciel 4 février 2013 Plan I. Généralités II. Structures linéaires III. Exceptions IV. Structures arborescentes V. Dictionnaires I. Principes II. Notions propres à la POO I. Principes Chapitre

Plus en détail

BAZIN Danil et PRIEZ Jean-Baptiste. LEX & YACC : Calculatrice Évoluée

BAZIN Danil et PRIEZ Jean-Baptiste. LEX & YACC : Calculatrice Évoluée BAZIN Danil et PRIEZ Jean-Baptiste LEX & YACC : Calculatrice Évoluée Table des matières 1 Introduction 3 2 Description 4 3 La grammaire utilisée 6 4 Lexèmes et FLEX 8 5 Analyse syntaxique et YACC 8 5.1

Plus en détail

Reconstruction de bâtiments en 3D à partir de nuages de points LIDAR

Reconstruction de bâtiments en 3D à partir de nuages de points LIDAR Reconstruction de bâtiments en 3D à partir de nuages de points LIDAR Mickaël Bergem 25 juin 2014 Maillages et applications 1 Table des matières Introduction 3 1 La modélisation numérique de milieux urbains

Plus en détail

Rappels sur les suites - Algorithme

Rappels sur les suites - Algorithme DERNIÈRE IMPRESSION LE 14 septembre 2015 à 12:36 Rappels sur les suites - Algorithme Table des matières 1 Suite : généralités 2 1.1 Déition................................. 2 1.2 Exemples de suites............................

Plus en détail

Programmation Visual Basic sous Excel

Programmation Visual Basic sous Excel 1 Programmation Visual Basic sous Excel Version provisoire Septembre 06 1 Introduction Excel était avant tout un tableur. Au fil des versions, il a su évoluer et intégrer des fonctionnalités qui le rendent

Plus en détail