Secteur TAL Informatique
ILPGA Université Paris 3
Parcours TAL : step 5
Les réponses aux questions du TP doivent être enregistrées dans un fichier au format WORD. L'intégralité du fichier sera imprimé ou mis sur disquette.
Les réponses fournies devront être commentées.
Segmenter un texte en "mots", en phrases et en paragraphes
Définir les tâches à réaliser
Segmenter en mots
Segmenter en phrases
Segmenter en paragraphes
Pour les trois segmentations envisagées, indiquer les marques formelles utilisables et les cas ambigus.
Segmentation en "mots"
Le résultat doit être un "mot" par ligne.
Ecrire un programme Perl pour réaliser ce type de segmentation.
Chaque programme utilisera un du patron du type :
while ($ligne = <STDIN>) {
}
On utilisera en particulier une approche similaire à celle du programme suivant, qui permet de "décoller" les apostrophes du mot qui les suit de manière à disposer de deux mots distincts dans les index :
while (<STDIN>) {
s/([^a-z])([ldsmtcn]')/$1$2 /g ;
s/^([ldsmtcn]')/$1 / ;
s/^(qu')/$1 / ;
s/([^a-z])(qu')/$1$2 /g ;
print ;
}
- Chaque ligne est successivement affectée à la variable implicite $_.
- Suivent des commandes de substitution (s) de la forme : s/filtre/remplacement/
- Ces commandes de substitution portent sur la variable implicite.
- La partie remplacement peut utiliser les variables $1, etc. pour renvoyer à des éléments qui ont été "captés" par le filtre.
- Dans le 3ème exemple : s/^(qu')/$1 / ; si l'on rencontre en début de ligne qu', on le remplace par la même chose (on le réécrit) suivi d'un espace.
- Le 4ème exemple montre l'exemple du modifieur g en fin de commande qui indique que cette substitution est à effectuer dans tous les cas où le filtre s'applique. Si ce modifieur n'est pas présent, la modification ne touchera que la première occurrence sur la ligne.
On pourra utiliser aussi tr : tr ' ' '\012' remplace par exemple
tous les espaces par un passage à la ligne.
L'élimination des lignes vides éventuelles pourra être
opérée par
grep -v '^$'
Segmentation en "phrases"
Le résultat doit être une "phrase" par ligne.
Ecrire un programme Perl pour réaliser ce type de segmentation.
Segmentation en "paragraphes"
Le résultat doit être un "paragraphe" par ligne.
Ecrire un programme Perl pour réaliser ce type de segmentation.
Segmentations
L'objectif est de réaliser différentes segmentations de Prématurés96 à partir de la description libre faite par l'infirmière (fichier p96.fic) et d'évaluer les résultats de ces segmentations.
Ecrire des programmes Perl pour réaliser les segmentations produites et présentées dans le thème 5 :
Etiquetage Corpus Prématurés
1. A partir des versions catégorisés du corpus, écrire un programme Perl capable de reconstruire un dictionnaire catégorisé.
2. En utilisant ce dictionnaire catégorisé et à partir de la version brute des textes, écrire un programme Perl capable de reconstruire une version catégorisée de ces textes.
3. Ecrire un programme Perl capable de construire un version des textes avec uniquement les catégories.