Secteur TAL Informatique

ILPGA Université Paris 3

Parcours TAL : step 3

TP3 : Programmation avec Perl (1)

Les réponses aux questions du TP doivent être enregistrées dans un fichier au format WORD ou TXT. Le texte des programmes construits seront insérés dans ce fichier. L'intégralité du fichier sera imprimé ou mis sur disquette.

Les réponses et les programmes fournis devront être commentés.

Série d'exercices PERL n°1

Exercice 1 :

Copiez le texte du programme suivant dans un fichier (par copier-coller)  et exécutez le :

#!/usr/local/bin/perl
# ce programme affiche "bonjour tout le monde"
print "bonjour tout le monde\n";

Exercice 2 :

Ecrire un programme qui crée trois variables $var1, $var2 et $var3 auxquelles vous affecterez les valeurs 33, 44 et 55 respectivement.

Exercice 3 :

La mort des amants
Nous aurons des lits pleins d'odeurs légères,
Des divans profonds comme des tombeaux,
Et d'étranges fleurs sur des étagères,
Ecloses pour nous sous des cieux plus beaux.
Usant à l'envi leurs chaleurs dernières,
Nos deux coeurs seront deux vastes flambeaux,
Qui réfléchiront leurs doubles lumières
Dans nos deux esprits, ces miroirs jumeaux.
Un soir fait de rose et de bleu mystique,
Nous échangerons un éclair unique,
Comme un long sanglot, tout chargé d'adieux;
Et plus tard un Ange, entr'ouvrant les portes,
Viendra ranimer,
fidèle et joyeux,
Les miroirs ternis et les flammes mortes.

Charles Baudelaire

1. Sauvegardez le poème ci-dessus dans un fichier poeme.txt. Ecrire un programme qui ouvre le fichier poeme.txt et qui écrit dans un deuxième fichier moteneau.txt les seules lignes qui contiennent la séquence de caractères "eau".
2. Vous réecrirez le programme pour numéroter toutes les lignes qui contiennent la même séquence
3. Créez un nouveau programme pour produire dans un nouveau fichier contenant le premier mot de chaque vers.
4. Idem avec le dernier mot.

Exercice 4 :

A partir du fichier poeme.txt, construire un programme qui produit en sortie le poème précédent dans lequel vous remplacerez la forme graphique "les" par "des".
Modifiez ce programme pour modifier les séquences "un", "deux"... par "1", "2"...

Exercice 5:

A partir des différentes versions du corpus prématurés, construire un programme pour réaliser une extraction de la forme "contact".
L'examen de toutes les occurrences de la forme contact doit permettre de dégager son emploi dans le corpus :

Se reporter au TP1.

Exercice 6 :

Dans le corpus des bébés prématurés (prem96.bal), vous extrairez le champ texte (balise <TXT>) pour toutes les fiches concernant le bébé 2.

Exercice 7 :

Ce programme perl fournit sur la sortie standard l'ossature d'une page HTML : les balises de l'entête et celles du corps. Modifiez-le de façon à ce qu'il crée, dans le corps de la page, une liste numérotée. Les éléments de cette liste seront les lignes lues sur l'entrée standard (on lira toutes les lignes jusqu'a l'arrivée de fin de fichier sur l'entrée standard, et pour chaque ligne on créera un nouvel item de la liste en sortie). Le programme utilisera la première ligne aussi comme le titre de la page HTML. Appliquez le programme à ce poème, pour obtenir ce résultat.

Exercice 8:

Construire un programme qui compte le nombre de mots contenus dans fichier. Appliquez ce programme au poème de Baudelaire.

Exercice 9 :

En utilisant le programme perl qui fournit l'ossature d'une page HTML, vous ferez en sorte qu'il lise deux fichiers (que vous ouvrirez à l'intérieur de votre programme). Vous créerez un tableau qui contiendra autant de lignes qu'il y a de lignes dans les fichiers lus. Chaque ligne du tableau contiendra deux cellules (colonnes) : dans la première cellule de la ligne n du tableau il y aura la ligne n du premier fichier, et dans la deuxième cellule la ligne n du deuxieme fichier. Vous modifierez le programme pour que le tableau contienne une colonne de plus qui sera le numéro de ligne. Vous appliquerez le programme aux versions en francais et en anglais de Therèse Desqueyroux (de Francois Mauriac) pour obtenir ce résultat

Manipulation, Constitution de dictionnaires et de nouveaux corpus

Partie 1 : Construction de dictionnaires

Cette  partie vise à la construction de dictionnaire à partir de différents états du corpus.

Partie 2 : Constitution des corpus

Cette partie  vise à la construction de nouveaux états du corpus à partir de données textuelles diverses. Il s'agira en particulier de voir comment a été construit la version HTML du corpus : i.e. comment passer des fichiers au format  TXT vers des fichiers au format HTML.

Partie 3 : Constitution d'un index au format HTML

Cette partie  vise à la construction d'un index de fichiers. Un index étant la suite des mots d'un texte classés par ordre alphabétique. Cet index doit permettre de retrouver le mot en contexte. Il s'agit donc de construire cet index au format HTML. On doit pouvoir naviguer entre l'index et le texte associé : lecture du mot en contexte et inversement. Le fichier-index contiendra un mot par ligne et pour chaque mot la liste des fiches où ce mot apparaît. Appliquer ce programme aux versions textuelles du corpus prématurés décrites infra.

On présente ci-dessous les résultats produits par Rincon Rolland (Etudiant en Maîtrise 1999-2000) sur 2 versions du corpus PREM96 :

Récupération des versions textuelles

Plusieurs versions sont utilisables  :

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.

Rechercher une entrée du TLFi :

 

Rechercher une entrée du XMLittré :