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"); push(@a, 2**2); # = (1, "deux", "3", 4); $b = pop(@a); # = (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 "@a\n"; # 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 (@tab) { # 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, $b)=@_; ($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

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

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

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

! 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Cours d algorithmique pour la classe de 2nde

Cours d algorithmique pour la classe de 2nde Cours d algorithmique pour la classe de 2nde F.Gaudon 10 août 2009 Table des matières 1 Avant la programmation 2 1.1 Qu est ce qu un algorithme?................................. 2 1.2 Qu est ce qu un langage

Plus en détail

Chapitre 2 Devine mon nombre!

Chapitre 2 Devine mon nombre! Python 3 : objectif jeux Chapitre 2 Chapitre 2 Devine mon nombre! 2.1. Thèmes abordés dans ce chapitre commentaires modules externes, import variables boucle while condition : if... elif... else la fonction

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

Conception. Génie Logiciel. Renaud Marlet. LaBRI / INRIA http://www.labri.fr/~marlet. (d'après A.-M. Hugues) màj 17/04/2007

Conception. Génie Logiciel. Renaud Marlet. LaBRI / INRIA http://www.labri.fr/~marlet. (d'après A.-M. Hugues) màj 17/04/2007 1 Génie Logiciel (d'après A.-M. Hugues) Conception Renaud Marlet LaBRI / INRIA http://www.labri.fr/~marlet màj 17/04/2007 2 Position dans le cycle de vie Contexte : étant donnée une spécification (ce que

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

Formula Negator, Outil de négation de formule.

Formula Negator, Outil de négation de formule. Formula Negator, Outil de négation de formule. Aymerick Savary 1,2, Mathieu Lassale 1,2, Jean-Louis Lanet 1 et Marc Frappier 2 1 Université de Limoges 2 Université de Sherbrooke Résumé. Cet article présente

Plus en détail

Les chaînes de caractères

Les chaînes de caractères Les chaînes de caractères Dans un programme informatique, les chaînes de caractères servent à stocker les informations non numériques comme par exemple une liste de nom de personne ou des adresses. Il

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

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère L'héritage et le polymorphisme en Java Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère En java, toutes les classes sont dérivée de la

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 langage et premières fonctions

Présentation du langage et premières fonctions 1 Présentation de l interface logicielle Si les langages de haut niveau sont nombreux, nous allons travaillé cette année avec le langage Python, un langage de programmation très en vue sur internet en

Plus en détail

ACCÈS SÉMANTIQUE AUX BASES DE DONNÉES DOCUMENTAIRES

ACCÈS SÉMANTIQUE AUX BASES DE DONNÉES DOCUMENTAIRES ACCÈS SÉMANTIQUE AUX BASES DE DONNÉES DOCUMENTAIRES Techniques symboliques de traitement automatique du langage pour l indexation thématique et l extraction d information temporelle Thèse Défense publique

Plus en détail

Initiation à la Programmation en Logique avec SISCtus Prolog

Initiation à la Programmation en Logique avec SISCtus Prolog Initiation à la Programmation en Logique avec SISCtus Prolog Identificateurs Ils sont représentés par une suite de caractères alphanumériques commençant par une lettre minuscule (les lettres accentuées

Plus en détail

Créer une base de données

Créer une base de données Access Créer une base de données SOMMAIRE Généralités sur les bases de données... 3 Création de la base de données... 4 A) Lancement d'access... 4 B) Enregistrement de la base de données vide... 4 Création

Plus en détail

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits Architecture des ordinateurs TD1 - Portes logiques et premiers circuits 1 Rappel : un peu de logique Exercice 1.1 Remplir la table de vérité suivante : a b a + b ab a + b ab a b 0 0 0 1 1 0 1 1 Exercice

Plus en détail

Licence Sciences et Technologies Examen janvier 2010

Licence Sciences et Technologies Examen janvier 2010 Université de Provence Introduction à l Informatique Licence Sciences et Technologies Examen janvier 2010 Année 2009-10 Aucun document n est autorisé Les exercices peuvent être traités dans le désordre.

Plus en détail

TP Bases de données réparties

TP Bases de données réparties page 1 TP Bases de données réparties requêtes réparties Version corrigée Auteur : Hubert Naacke, révision 5 mars 2003 Mots-clés: bases de données réparties, fragmentation, schéma de placement, lien, jointure

Plus en détail

Initiation à LabView : Les exemples d applications :

Initiation à LabView : Les exemples d applications : Initiation à LabView : Les exemples d applications : c) Type de variables : Créer un programme : Exemple 1 : Calcul de c= 2(a+b)(a-3b) ou a, b et c seront des réels. «Exemple1» nom du programme : «Exemple

Plus en détail

V- Manipulations de nombres en binaire

V- Manipulations de nombres en binaire 1 V- Manipulations de nombres en binaire L ordinateur est constitué de milliards de transistors qui travaillent comme des interrupteurs électriques, soit ouverts soit fermés. Soit la ligne est activée,

Plus en détail

Recherche d information en langue arabe : influence des paramètres linguistiques et de pondération de LSA

Recherche d information en langue arabe : influence des paramètres linguistiques et de pondération de LSA RÉCITAL 2005, Dourdan, 6-10 juin 2005 Recherche d information en langue arabe : influence des paramètres linguistiques et de pondération de LSA Siham Boulaknadel (1,2), Fadoua Ataa-Allah (2) (1) LINA FRE

Plus en détail

Cours 1 : La compilation

Cours 1 : La compilation /38 Interprétation des programmes Cours 1 : La compilation Yann Régis-Gianas yrg@pps.univ-paris-diderot.fr PPS - Université Denis Diderot Paris 7 2/38 Qu est-ce que la compilation? Vous avez tous déjà

Plus en détail

Travaux pratiques. Compression en codage de Huffman. 1.3. Organisation d un projet de programmation

Travaux pratiques. Compression en codage de Huffman. 1.3. Organisation d un projet de programmation Université de Savoie Module ETRS711 Travaux pratiques Compression en codage de Huffman 1. Organisation du projet 1.1. Objectifs Le but de ce projet est d'écrire un programme permettant de compresser des

Plus en détail

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java Info0101 Intro. à l'algorithmique et à la programmation Cours 3 Le langage Java Pierre Delisle, Cyril Rabat et Christophe Jaillet Université de Reims Champagne-Ardenne Département de Mathématiques et Informatique

Plus en détail

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN Les contenues de ce document sont la propriété exclusive de la société REVER. Ils ne sont transmis qu à titre d information et ne peuvent en aucun cas

Plus en détail

GUIDE Excel (version débutante) Version 2013

GUIDE Excel (version débutante) Version 2013 Table des matières GUIDE Excel (version débutante) Version 2013 1. Créer un nouveau document Excel... 3 2. Modifier un document Excel... 3 3. La fenêtre Excel... 4 4. Les rubans... 4 5. Saisir du texte

Plus en détail

Domain Name System. F. Nolot

Domain Name System. F. Nolot Domain Name System F. Nolot 1 Domain Name System Principe F. Nolot 2 Les besoins Internet est composé de plusieurs réseaux Chaque réseau est composé de sous réseaux Les sous réseaux sont constitués de

Plus en détail

Chap III : Les tableaux

Chap III : Les tableaux Chap III : Les tableaux Dans cette partie, on va étudier quelques structures de données de base tels que : Les tableaux (vecteur et matrice) Les chaînes de caractères LA STRUCTURE DE TABLEAU Introduction

Plus en détail

Recherche d Information(RI): Fondements et illustration avec Apache Lucene. par Majirus Fansi @majirus

Recherche d Information(RI): Fondements et illustration avec Apache Lucene. par Majirus Fansi @majirus 1 Recherche d Information(RI): Fondements et illustration avec Apache Lucene par Majirus Fansi @majirus Résumé Fondements de la Recherche d Information (RI) Noyau de toute application de RI Éléments à

Plus en détail

Compléments de documentation Scilab : affichage de texte et formatage de nombres

Compléments de documentation Scilab : affichage de texte et formatage de nombres Université des Sciences et Technologies de Lille U.F.R. de Mathématiques Pures et Appliquées Agrégation externe Année 2002-2003 Compléments de documentation Scilab : affichage de texte et formatage de

Plus en détail

Sage 100 CRM - Guide de la Fusion Avancée Version 8. Mise à jour : 2015 version 8

Sage 100 CRM - Guide de la Fusion Avancée Version 8. Mise à jour : 2015 version 8 Sage 100 CRM - Guide de la Fusion Avancée Version 8 Mise à jour : 2015 version 8 Composition du progiciel Votre progiciel est composé d un boîtier de rangement comprenant : le cédérom sur lequel est enregistré

Plus en détail

1 Description générale. Résumé

1 Description générale. Résumé Station Sensunique: une plateforme Web modulaire, collaborative et évolutive d acquisition assistée de ressources terminologiques et non terminologiques (orientée Langues Contrôlées) Izabella Thomas 1,

Plus en détail

Modélisation des données

Modélisation des données Modélisation des données Le modèle Entité/Association Le MCD ou modèle Entité/Association est un modèle chargé de représenter sous forme graphique les informations manipulées par le système (l entreprise)

Plus en détail

De la modélisation linguistique aux applications logicielles: le rôle des Entités Nommées en Traitement Automatique des Langues

De la modélisation linguistique aux applications logicielles: le rôle des Entités Nommées en Traitement Automatique des Langues De la modélisation linguistique aux applications logicielles: le rôle des Entités Nommées en Traitement Automatique des Langues Maud Ehrmann Joint Research Centre Ispra, Italie. Guillaume Jacquet Xerox

Plus en détail

Codage d information. Codage d information : -Définition-

Codage d information. Codage d information : -Définition- Introduction Plan Systèmes de numération et Représentation des nombres Systèmes de numération Système de numération décimale Représentation dans une base b Représentation binaire, Octale et Hexadécimale

Plus en détail

La classification automatique de données quantitatives

La classification automatique de données quantitatives La classification automatique de données quantitatives 1 Introduction Parmi les méthodes de statistique exploratoire multidimensionnelle, dont l objectif est d extraire d une masse de données des informations

Plus en détail

Perl Console. Votre compagnon pour développer en Perl. Les Journées du Perl 2007 16, 17 novembre, Lyon. Alexis Sukrieh <sukria@sukria.

Perl Console. Votre compagnon pour développer en Perl. Les Journées du Perl 2007 16, 17 novembre, Lyon. Alexis Sukrieh <sukria@sukria. Perl Console Votre compagnon pour développer en Perl Les Journées du Perl 2007 16, 17 novembre, Lyon Alexis Sukrieh Plan Pourquoi une console? Le modèle «Read-Eval-Print-Loop» Dépendances

Plus en détail

UTILISATION DU WEB COMME MEGA-BASE DE DONNÉES LINGUISTIQUE : APPLICATION À LA TRADUCTION DE COOCCURRENCES LEXICALES FRANÇAISES-ANGLAISES

UTILISATION DU WEB COMME MEGA-BASE DE DONNÉES LINGUISTIQUE : APPLICATION À LA TRADUCTION DE COOCCURRENCES LEXICALES FRANÇAISES-ANGLAISES UTILISATION DU WEB COMME MEGA-BASE DE DONNÉES LINGUISTIQUE : APPLICATION À LA TRADUCTION DE COOCCURRENCES LEXICALES FRANÇAISES-ANGLAISES Chrystel Millon & Stéphanie Léon Equipe DELIC Université de Provence

Plus en détail

BASE. Vous avez alors accès à un ensemble de fonctionnalités explicitées ci-dessous :

BASE. Vous avez alors accès à un ensemble de fonctionnalités explicitées ci-dessous : BASE BioArray Software Environment (BASE) est une base de données permettant de gérer l importante quantité de données générées par des analyses de bio-puces. BASE gère les informations biologiques, les

Plus en détail

Organigramme / Algorigramme Dossier élève 1 SI

Organigramme / Algorigramme Dossier élève 1 SI Organigramme / Algorigramme Dossier élève 1 SI CI 10, I11 ; CI 11, I10 C24 Algorithmique 8 février 2009 (13:47) 1. Introduction Un organigramme (ou algorigramme, lorsqu il est plus particulièrement appliqué

Plus en détail

Programmation Web. Madalina Croitoru IUT Montpellier

Programmation Web. Madalina Croitoru IUT Montpellier Programmation Web Madalina Croitoru IUT Montpellier Organisation du cours 4 semaines 4 ½ h / semaine: 2heures cours 3 ½ heures TP Notation: continue interrogation cours + rendu à la fin de chaque séance

Plus en détail

Cours de Génie Logiciel

Cours de Génie Logiciel Cours de Génie Logiciel Sciences-U Lyon Diagrammes UML (2) http://www.rzo.free.fr Pierre PARREND 1 Avril 2005 Sommaire Les Diagrammes UML Diagrammes de Collaboration Diagrammes d'etats-transitions Diagrammes

Plus en détail

SHERLOCK 7. Version 1.2.0 du 01/09/09 JAVASCRIPT 1.5

SHERLOCK 7. Version 1.2.0 du 01/09/09 JAVASCRIPT 1.5 SHERLOCK 7 Version 1.2.0 du 01/09/09 JAVASCRIPT 1.5 Cette note montre comment intégrer un script Java dans une investigation Sherlock et les différents aspects de Java script. S T E M M E R I M A G I N

Plus en détail

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java Langages objets Introduction M2 Pro CCI, Informatique Emmanuel Waller, LRI, Orsay présentation du module logistique 12 blocs de 4h + 1 bloc 2h = 50h 1h15 cours, 45mn exercices table, 2h TD machine page

Plus en détail

SOMMAIRE AIDE À LA CRÉATION D UN INDEX SOUS WORD. Service général des publications Université Lumière Lyon 2 Janvier 2007

SOMMAIRE AIDE À LA CRÉATION D UN INDEX SOUS WORD. Service général des publications Université Lumière Lyon 2 Janvier 2007 SOMMAIRE 1) CRÉATION D UN INDEX SIMPLE 3 a) Étape 1 : Marquage des entrées d index (à l aide d un fichier de concordance) 3 Procédure d insertion du tableau 4 Saisie des entrées d index 5 Marquage automatique

Plus en détail

Structuration des décisions de jurisprudence basée sur une ontologie juridique en langue arabe

Structuration des décisions de jurisprudence basée sur une ontologie juridique en langue arabe Structuration des décisions de jurisprudence basée sur une ontologie juridique en langue arabe Karima Dhouib, Sylvie Després Faiez Gargouri ISET - Sfax Tunisie, BP : 88A Elbustan ; Sfax karima.dhouib@isets.rnu.tn,

Plus en détail

Conception de circuits numériques et architecture des ordinateurs

Conception de circuits numériques et architecture des ordinateurs Conception de circuits numériques et architecture des ordinateurs Frédéric Pétrot Année universitaire 2014-2015 Structure du cours C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 Codage des nombres en base 2, logique

Plus en détail

Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa www.degenio.com Novembre 2008

Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa www.degenio.com Novembre 2008 Introduction Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa www.degenio.com Novembre 2008 Forms 10g permet l utilisation du JAVA côté client et côté application

Plus en détail

I. Introduction aux fonctions : les fonctions standards

I. Introduction aux fonctions : les fonctions standards Chapitre 3 : Les fonctions en C++ I. Introduction aux fonctions : les fonctions standards A. Notion de Fonction Imaginons que dans un programme, vous ayez besoin de calculer une racine carrée. Rappelons

Plus en détail

Architecture N-Tier. Ces données peuvent être saisies interactivement via l interface ou lues depuis un disque. Application

Architecture N-Tier. Ces données peuvent être saisies interactivement via l interface ou lues depuis un disque. Application Architecture Multi-Tier Traditionnellement une application informatique est un programme exécutable sur une machine qui représente la logique de traitement des données manipulées par l application. Ces

Plus en détail

Évaluation et implémentation des langages

Évaluation et implémentation des langages Évaluation et implémentation des langages Les langages de programmation et le processus de programmation Critères de conception et d évaluation des langages de programmation Les fondations de l implémentation

Plus en détail

Du 10 Fév. au 14 Mars 2014

Du 10 Fév. au 14 Mars 2014 Interconnexion des Sites - Design et Implémentation des Réseaux informatiques - Sécurité et Audit des systèmes - IT CATALOGUE DE FORMATION SIS 2014 1 FORMATION ORACLE 10G 11G 10 FEV 2014 DOUALA CAMEROUN

Plus en détail

Access 2007 FF Access FR FR Base

Access 2007 FF Access FR FR Base ACCESS Basic Albertlaan 88 Avenue Albert Brussel B-1190 Bruxelles T +32 2 340 05 70 F +32 2 340 05 75 E-mail info@keyjob-training.com Website www.keyjob-training.com BTW TVA BE 0425 439 228 Access 2007

Plus en détail

Les structures. Chapitre 3

Les structures. Chapitre 3 Chapitre 3 Les structures Nous continuons notre étude des structures de données qui sont prédéfinies dans la plupart des langages informatiques. La structure de tableau permet de regrouper un certain nombre

Plus en détail

Bases de programmation. Cours 5. Structurer les données

Bases de programmation. Cours 5. Structurer les données Bases de programmation. Cours 5. Structurer les données Pierre Boudes 1 er décembre 2014 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License. Types char et

Plus en détail

Langage SQL (1) 4 septembre 2007. IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

Langage SQL (1) 4 septembre 2007. IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes Langage SQL (1) Sébastien Limet Denys Duchier IUT Orléans 4 septembre 2007 Notions de base qu est-ce qu une base de données? SGBD différents type de bases de données quelques systèmes existants Définition

Plus en détail

Algorithme. Table des matières

Algorithme. Table des matières 1 Algorithme Table des matières 1 Codage 2 1.1 Système binaire.............................. 2 1.2 La numérotation de position en base décimale............ 2 1.3 La numérotation de position en base binaire..............

Plus en détail

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

INTRODUCTION A JAVA. Fichier en langage machine Exécutable INTRODUCTION A JAVA JAVA est un langage orienté-objet pur. Il ressemble beaucoup à C++ au niveau de la syntaxe. En revanche, ces deux langages sont très différents dans leur structure (organisation du

Plus en détail