Secteur TAL Informatique
ILPGA Université Paris 3
Parcours TAL : step 2
Ce TP est organisé en deux parties. la première est consacrée aux expressions régulières sous WORD ou EMACS, la seconde aux systèmes d'exploitation.
TP2 : Expressions régulières
Les réponses aux questions du TP doivent être enregistrées
dans un fichier au format WORD..
Ce dernier doit contenir les motifs de recherche réalisés
et les résultats produits.
Les résultats produits par un recherche simple seront insérés
par copier/coller.
Les fichiers produits par les macros seront insérés dans
de document.
L'intégralité du fichier sera imprimé ou mis sur
disquette.
Les réponses fournies devront être commentées.
Textes de travail : Récupération des versions textuelles
Plusieurs versions sont utilisables :- la première, brute (p96.tab), est issue d'un tableur (un tableur manipule des cellules organisées en lignes et colonnes, et permet de faire calculer la valeur d'une cellule à partir du contenu d'une ou de plusieurs autres cellules). C'est la version qui a été constitué dans le service de réanimation néonatale à partir des fiches papier remplies par les infirmières. Dans ce fichier, le nombre débutant la ligne concatène le numéro de bébé, celui du jour de l'observation et celui de l'observation dans la journée.
- la seconde (p96.bal) nomme les différentes informations contenues dans une fiche sur un bébé un jour donné à un moment déterminé.
- On dispose aussi de (p96.fic) qui regroupe toutes les fiches.
- Enfin, on dispose de (p96.tag) qui correspond à une version étiquetée du corpus bébé
La première version (p96.tab)
est disponible (au format HTML) : visualisation p96tab.htm.
La seconde version (p96.bal)
est disponible (au format HTML) : visualisation p96bal.htm.
La première version (p96.tab)
est disponible (au format TXT) : visualisation p96.tab.
La seconde version (p96.bal)
est disponible (au format TXT) : visualisation p96.bal.
La version (p96.fic)
est disponible (au format TXT) : visualisation p96.fic.
La version (p96.tag)
est disponible (au format TXT) : visualisation p96.tag.
Pour la visualisation des versions textuelles brutes, une étape de téléchargement est parfois nécessaire. Si tel est le cas placer le fichier cherché dans votre environnement de travail avant de le manipuler.
WORD, EMACS et les expressions régulières : module de recherche
Fichier de travail p96.tab.
Dans ce fichier, le nombre débutant la ligne concatène le numéro de bébé, celui du jour de l'observation et celui de l'observation dans la journée.
Dans cette partie, on utilise le menu de recherche de chaînes de caractères.
- Rechercher les fiches contenant une interrogation
- Rechercher les fiches correspondant au bébé 12
- Rechercher les fiches correspondant au bébé 1
- Rechercher les fiches pour lesquelles le score médical est de 12
- Faire de même pour un score de 10. Pouvez-vous expliquer le résultat ?
Fichier de travail p96.bal.
- Rechercher les fiches concernant les bébés 10 à 12
- Rechercher les fiches concernant les bébés 10 et 12, c'est-à-dire sans 11 et 13
- Rechercher le nombre de bébés de 23, ..., 30 semaines
- Rechercher les fiches du jour 0 pour lesquels le bébé est né à 28 semaines
- Rechercher les fiches des bébés nés entre 23 et 29 semaines
- Rechercher les fiches pour lesquels le bébé à la naissance faisait au moins 1000 grammes
- Rechercher les fiches pour lesquels le bébé à la naissance faisait moins de 1000 grammes
WORD, EMACS et les expressions régulières : construction de macros
Fichier de travail p96.tab.
Dans cette partie, construire des macros sous WORD ou EMACS pour réaliser les extractions d'informations demandées. On doit obtenir en sortie un fichier pour chaque requête demandée.
- Extraire les fiches contenant une interrogation
- Extraire les fiches correspondant au bébé 12
- Extraire les fiches correspondant au bébé 1
- Extraire les fiches pour lesquelles le score médical est de 12
- Faire de même pour un score de 10. Pouvez-vous expliquer le résultat ?
- Quelles fiches vont être extraites si l'on demande les fiches commençant par 13 ? Expliquer ?
- Extraire les fiches correspondant aux bébés faisant au moins 1000 grammes.
Fichier de travail p96.bal.
- Extraire les fiches concernant les bébés 10 à 12
- Extraire les fiches concernant les bébés 10 et 12, c'est-à-dire sans 11 et 13
- Trouver le nombre de bébés de 23, ..., 30 semaines
- Extraire les fiches du jour 0 pour lesquels le bébé est né à 28 semaines
- Extraire les fiches des bébés nés entre 23 et 29 semaines
- Extraire les fiches pour lesquelles le bébé à la naissance faisait au moins 1000 grammes
- Extraire les fiches pour lesquelles le bébé à la naissance faisait moins de 1000 grammes
- Extraire les fiches rédigées par les infirmières 12 et 22
- Extraire les fiches concernant le bébé 0 et ne correspondant pas au jour 0
Macros Word et Expressions régulières : Filtrage et Extraction dinformation
Pour commencer, récupérer les macros word pour faire des extractions d'occurrences exprimées sous la forme d'expressions régulières : macroRegExp.zip contient le modèle occur.dot pour traiter les expressions régulières. On trouvera aussi dans cette archive une version complète du Père Duchesne pour Word 97. Le travail ci-dessous sera fait sur cette version du texte.
Outils manipulés : Word, outils Macro
Objectif : initiation aux expressions régulières, utilisation et écriture de macros sous Word
Texte de travail : Le père Duchesne
Sous Word les macros permettent de mettre en uvre des enchaînements mémorisés dopérations.
Dans cette série dexercices on utilise des macros qui permettent de rechercher un motif quelconque dans le fichier courant. Ces macros produisent en sortie un fichier contenant les résultats de la recherche, ce fichier est ouvert ensuite pour une lecture des résultats.
Pour utiliser les macros prédéfinis, procéder ainsi :
- Ouvrir avec Word le fichier de travail : " le Père Duchesne "
- Dans le menu Outils, sélectionner litem " modèles et compléments "
- Ajouter le modèle " occur.dot " que vous aurez au préalable placé dans votre répertoire de travail.
- Les macros prédéfinies dans ce modèle sont maintenant accessibles.
Pour commencer on utilise la macro appelée " regexp ". Cette macro permet dextraire des motifs écrits sous la forme dexpressions régulières (dans le contexte défini par Word).
Utiliser la macro " regexp " pour extraire les motifs suivants :
- Tous les mots qui commencent par " citoy "
- Tous les mots qui commencent par " aristo "
- Tous les mots qui commencent par " bougre "
- Toutes les séquences qui parlent des Sans-culottes
- Tous les mots contenant une majuscule (attention, au format des majuscules dans le texte)
- Tous les mots qui se terminent par " er "
La seconde macro à utiliser est celle nommée " segment ". Cette macro permet dextraire des segments de trois mots consécutifs contenant un mot donné. Appliquer cette macro aux recherches suivantes :
- Extraire les segments contenant la forme " aristocrate(s) "
- Extraire les segments contenant la forme " sans-culottes (s) "
- Extraire les segments contenant la forme " femme(s) "
- Extraire les segments contenant la forme " citoyen(s) "
- Extraire les segments contenant la forme " bougre(s) "
- Extraire les segments contenant la forme " ne " ou la forme " n ; "
A partir de la macro " segment ", construire une macro " concordance " capable de rechercher une concordance (2 mots avant, 2 mots après) dun mot donné. Appliquer cette macro sur les questions précédentes.
Construire une macro qui prend en entrée un mot donné et un nombre x définissant la longueur dune séquence de mots consécutifs à chercher. Cette macro devra produire en sortie toutes les séquences contenant le mot visé et de longueur x. Trier le fichier résultat pour repérer les segments répétés.
Les macros modifiées sont disponibles dans l'archive suivante : macroRegExp2.zip (disponible rapidement...)
Macros Emacs et Expressions régulières : Filtrage et Extraction dinformation
Outils manipulés : Emacs, Macro
Objectif : initiation aux expressions régulières, utilisation et écriture de macros sous Emacs
Texte de travail : Le père Duchesne
Sous Emacs les macros permettent de mettre en uvre des enchaînements mémorisés dopérations.
Dans cette série dexercices on utilise des macros qui permettent de rechercher un motif quelconque dans le fichier courant. Ces macros produisent en sortie un fichier contenant les résultats de la recherche, ce fichier est ouvert ensuite pour une lecture des résultats.
Pour commencer on utilise la fonction occur. Cette fonction permet dextraire des motifs écrits sous la forme dexpressions régulières.
Appliquer occur sur le texte pour extraire les motifs suivants :
- Tous les mots qui commencent par " citoy "
- Tous les mots qui commencent par " aristo "
- Tous les mots qui commencent par " bougre "
- Toutes les séquences qui parlent des Sans-culottes
- Tous les mots contenant une majuscule (attention, au format des majuscules dans le texte)
- Tous les mots qui se terminent par " er "
Construire une macro " concordance " capable de rechercher une concordance (2 mots avant, 2 mots après) dun mot donné. Appliquer cette macro sur les questions suivantes :<
- Extraire les segments contenant la forme " aristocrate(s) "
- Extraire les segments contenant la forme " sans-culottes (s) "
- Extraire les segments contenant la forme " femme(s) "
- Extraire les segments contenant la forme " citoyen(s) "
- Extraire les segments contenant la forme " bougre(s) "
- Extraire les segments contenant la forme " ne " ou la forme " n ; "
Construire une macro permettant dextraire des segments de trois mots consécutifs contenant un mot donné. Appliquer cette macro aux recherches précédentes.
Travail avec GREP et EGREP
Fichier p96.tab.
Dans cette partie, on utilisera GREP ou EGREP sous DOS ou sous l'interface UNIX.. On doit obtenir en sortie un fichier pour chaque requête demandée.- Extraire les fiches contenant une interrogation
- Extraire les fiches correspondant au bébé 12
- Extraire les fiches correspondant au bébé 1
- Extraire les fiches pour lesquelles le score médical est de 12
- Faire de même pour un score de 10. Pouvez-vous expliquer le résultat?
- Extraire les fiches vont être extraites si l'on demande les fiches commençant par 13 ? Expliquer ?
- Extraire les fiches correspondant aux bébés faisant au moins1000 grammes.
Fichier p96.bal.
Dans cette partie, on utilisera GREP ou EGREP sous DOS ou sous l'interface UNIX.. On doit obtenir en sortie un fichier pour chaque requête demandée.
- Extraire les fiches concernant les bébés 10 à 12
- Extraire les fiches concernant les bébés 10 et 12, c'est-à-dire sans 11 et 13
- Trouver le nombre de bébés de 23, ..., 30 semaines
- Extraire les fiches du jour 0 pour lesquels le bébé est né à 28 semaines
- Extraire les fiches des bébés nés entre 23 et 29 semaines
- Extraire les fiches pour lesquels le bébé à la naissance faisait au moins 1000 grammes
- Extraire les fiches pour lesquels le bébé à la naissance faisait moins de 1000 grammes
- Extraire les fiches rédigées par les infirmières 12 et 22
- Si l'on veut extraire les fiches rédigées par les infirmières 2, 12 et 22, quel est l'inconvénient de la solution suivante ?
- egrep '<INFIRMIERE>(2|12|22)' p96.bal
- Essayer la même solution avec grep.
- Extraire les fiches concernant le bébé 0 et ne correspondant pas au jour 0
Fichiers d'entraînement
Les numéros suivis d'un espace en début de ligne ont pour
seule fonction de permettre une référence précise.
Les filtres à écrire devront ne pas en tenir compte.
1
La mort des amants
2 3 Nous aurons des lits pleins d'odeurs légères, 4 Des divans profonds comme des tombeaux, 5 Et d'étranges fleurs sur des étagères, 6 Ecloses pour nous sous des cieux plus beaux. 7 8 Usant à l'envi leurs chaleurs dernières, 9 Nos deux coeurs seront deux vastes flambeaux, 10 Qui réfléchiront leurs doubles lumières 11 Dans nos deux esprits, ces miroirs jumeaux. 12 13 Un soir fait de rose et de bleu mystique, 14 Nous échangerons un éclair unique, 15 Comme un long sanglot, tout chargé d'adieux; 16 17 Et plus tard un Ange, entr'ouvrant les portes, 18 Viendra ranimer, fidèle et joyeux, 19 Les miroirs ternis et les flammes mortes. 20 21 22 Charles Baudelaire |
1
Le dormeur du val
2 3 C'est un trou de verdure où chante une rivière 4 Accrochant follement aux herbes des haillons 5 D'argent ; où le soleil, de la montagne fière, 6 Luit : c'est un petit val qui mousse de rayons. 7 8 Un soldat jeune, bouche ouverte, tête nue, 9 Et la nuque baignant dans le frais cresson bleu, 10 Dort ; il est étendu dans l'herbe, sous la nue, 11 Pâle dans son lit vert où la lumière pleut. 12 13 Les pieds dans les glaïeuls, il dort. Souriant comme 14 Sourirait un enfant malade, il fait un somme : 15 Nature, berce-le chaudement : il a froid. 16 17 Les parfums ne font pas frissonner sa narine ; 18 Il dort dans le soleil, la main sur sa poitrine 19 Tranquille. Il a deux trous rouges au côté droit. 20 21 Arthur Rimbaud |
Sauvegardez le premier poème dans un fichier amants.txt, et le deuxième dans un fichier dormeur.txt.
Exercices (sur amants.txt et dormeur.txt)
1 Extraire les lignes contenant Nous capitalisé (commençant
par une majuscule)
2 Extraire toutes les lignes contenant nous
3 Extraire les vers seuls
4 Extraire les non vers seuls (2 solutions. Pourquoi sont-elles différents
?)
5 Vers qui contiennent un futur
6 Vers qui contiennent un point de fin de ligne
7 Lignes qui se terminent par une rime féminine (en e)
8 Eliminer le nom de l'auteur du résultat précédent
9 Vers qui se terminent par une riche féminine (en e) sans avoir
à éliminer le nom de l'auteur
10 Vers qui comprennent une majuscule ailleurs qu'en première
position
11 Vers qui contiennent une voyelle nasale
12 Vers qui contiennent deux voyelles nasales
13 Vers qui contiennent trois voyelles nasales
14 Compter les lignes vides
15 Compter les lignes non vides (2 solutions)
16 Donner les lignes où apparaît nous (en majuscules et
en minuscules) et leurs numéros
17 Donner les lignes où apparaît nous (en majuscules et
en minuscules) sans utiliser une classe de caractères (2 solutions)
18 Donner les lignes où apparaît nous ou nos (en majuscules
et en minuscules) sans utiliser une classe de caractères (3 solutions)
19 Donner les lignes où n'apparaît pas de pluriel
20 Donner les vers où n'apparaît pas de pluriel
21 Expliquer le résultat suivant :
egrep '(....).*\1' LeDormeurDuVal.txt
Le dormeur du val
Sourirait un enfant malade, il fait un somme :
22 Que fait :
egrep ',.' amants.txt
23 Quelle différence avec :
egrep ',' amants.txt
24 Que fait :
egrep 'e [aeiou]' amants.txt
25 Que fait :
egrep 'e [^aeiou]' amants.txt
26 Que fait :
egrep '[^aeiou] [aeiou]' amants.txt
27 Sur dormeur.txt, énoncez
5 requêtes et fournissez à part les 5 motifs et les réponses
(en nombre de lignes) correspondants. Fournissez par ailleurs 5 motifs
(et leurs réponses) et à part l'énoncé correspondant.
Les motifs doivent recourir aux différents opérateurs de
grep
et aux options possibles.
TP2 : Systèmes d'exploitation
Exercice 1 :
- Placez vous dans votre répertoire de travail : par exemple c:\LicenceTAL\MonNom\
- Créer un répertoire TD et un sous-répertoire TD1.
- Créer un fichier vide tempo avec EMACS dans le répertoire TD1.
- Utilisez dir pour visualiser les répertoires et les autres fichiers de votre répertoire de travail.
- Créer des fichiers contenant le contenu de tous les sous-répertoires de votre répertoire de travail : appelez ces fichiers liste1.txt, liste2.txt…
- Lorsque l'on édite un fichier name, l'éditeur Emacs sauve de temps en temps le contenu du buffer dans un fichier name~.
- Avec l'éditeur Emacs :
- Insérez tous les fichiers liste1.txt, liste2.txt… dans le fichier tempo.
- Sous DOS, supprimez le fichier tempo~.
- Copier le fichier tempo dans le répertoire TD.
- Supprimez le répertoire TD1 et ce qu’il contient.
Exercice 1 :
- Placez vous dans votre répertoire de travail : par exemple c:\LicenceTAL\MonNom\
- Créer un répertoire TD et un sous-répertoire TD1.
- Créer un fichier vide tempo avec EMACS dans le répertoire TD1.
- Utilisez ls muni de l'option -F ou -l pour distinguer les répertoires et les autres fichiers de votre répertoire de travail.
- Créer des fichiers contenant le contenu de tous les sous-répertoires de votre répertoire de travail : appelez ces fichiers liste1.txt, liste2.txt…
- Lorsque l'on édite un fichier name, l'éditeur Emacs sauve de temps en temps le contenu du buffer dans un fichier name~. Avec l'éditeur Emacs :
- Insérez tous les fichiers liste1.txt, liste2.txt… dans le fichier tempo.
- Sous Unix, supprimez le fichier tempo~.
- Dans le chemin simple tempo, quels sont les noms de base et de répertoire. Contrôler à l'aide des commandes basename et dirname.
- Ajouter une ligne au fichier tempo.
- Mettre deux fois le contenu de tempo dans tempo.
- Trier le fichier tempo.
- Copier le fichier tempo dans le répertoire TD.
- Supprimez le répertoire TD1 et ce qu’il contient.
Exercice 1 :
- Placez vous dans votre répertoire de travail : par exemple c:\LicenceTAL\MonNom\
- Créer un répertoire TD et un sous-répertoire TD1.
- Créer un fichier vide tempo avec EMACS dans le répertoire TD1.
- Copier le fichier tempo dans le répertoire TD.
- Supprimez le répertoire TD1 et ce qu’il contient.
- Avec Winzip, créez une archive MonArchive.zip contenant l’intégralité de votre répertoire de travail.
- Extraire cette archive dans le répertoire c:\Temporaire : le répertoire Temporaire n’existe pas avant cette opération.