Séance  : Initiation à la programmation avec PERL

 

Outils manipulés : Perl 5 sous Windows

Objectif : initiation à la programmation, mise en oeuvre de programmes pour le TAL

Texte de travail : corpus du site TAL Paris 3 - ILPGA

 

1. Comptage de balises dans fichiers au format HTML :

 

a. application sur corpus prématurés

b. application sur duch.html

c. application sur dh89.htm

 

2. Extraire le texte placé entre deux balises. Le nom de la balise sera indiqué en argument de la commande.

 

a. application sur corpus prématurés

b. application sur duch.html

c. application sur dh89.htm

 

3. Ecrire un programme qui supprime toutes les balises d'un fichier au format HTML.

 

4. Problèmes typographiques :

 

a. Suppression de blancs répétitifs dans un fichier : application à duch.txt

b. Modifier minuscule/majuscule sur les mots d’un fichier : application sur text1.txt

c. Remplacer occurrence numérique sous forme de caractère : application sur text1.txt

 

5. Sélectionner des lignes dans un fichier. Ecrire un programme qui prend en entrée un motif et un fichier puis sélectionne dans le fichier les lignes qui contiennent le motif. Ecriture du résultat à l’écran puis dans un fichier de sortie.

 

6. Construire un programme de concordance. Ce programme doit lire un fichier en entrée puis construire une concordance de tous les mots rencontrés dans le texte lu.

 

7. Ecrire un programme lisant une chaîne et un nombre, puis affichant la chaîne sur des lignes différentes, autant de fois que cela est indiqué par le nombre.

 

8. Ecrire un programme lisant un nombre puis une liste de chaînes (toutes dans des lignes individuelles), puis affichant la ligne de la liste sélectionnée par le nombre.

 

9. Ecrire un programme lisant une liste de chaîne puis sélectionnant et affichant une chaîne quelconque de la liste. Pour obtenir un élément quelconque de @somearray indiquez srand; au début du programme (cela initialise le générateur de nombre aléatoire), puis utilisez rand(@somearray) à l'endroit où vous avez besoin d'une valeur numérique quelconque comprise entre 0 et la longueur moins un de @somearray.

 

10. Ecrire un programme lisant une suite de mots par ligne jusqu'à la fin du fichier, puis affichant le nombre d'apparitions de chaque mot. Présenter ensuite l'affichage entriant les mots en ordre ASCII ascendant.

 

11. Construire une expression régulière qui corresponde à :

 

a. au moins un a suivi d'un nombre quelconque de b

b. un nombre quelconque de barres obliques inverses suivies d'un nombre quelconques d'astérisques

c. trois exemplaires successifs de ce qui est contenu dans $whatever

d. cinq caractères quelconques

e. le même mot écrit deux fois ou plus sur une ligne, dans laquelle mot est défini comme série de caractères qui ne soient pas des espaces vides

 

12. Construire un programme qui lit une série de mots dans un fichier et recherche une ligne contenant les cinqs voyelles : a, e, i, o, u.

 

Exécutez ce programme sur les fichiers du corpus prématurés, sur duch.txt1, sur dh89.htm

 

13. Modifier le programme précédent de sorte que les voyelles soint en ordre et les lettres intermédiaires n'aient pas d'influence.

 

14. Ecrire un programme demandant de saisir un nom de fichier d'entrée, un nom de fichier de sortie, un motif de recherche, et une chaîne de remplacement, puis remplaçant toutes les occurrences du motif par la chaîne de remplacement en recopiant le fichier en entrée dans le fichier sortie.

 

a. Il doit être possible d'écraser un fichier existant.

b. Il doit être aussi possible d'utiliser les caractères spéciaux des expressions régulières