Académique Documents
Professionnel Documents
Culture Documents
Tokenisation et indexation
Le but du TP est de manipuler les expressions rationnelles pour découper les textes en tokens. Nous
aborderons l'indexation de documents et la recherche de motifs.
la librairie NLTK.
Exercice 1 - Tokenisation
Le but de l'exercice est d'écrire en Python un programme qui découpe un texte en tokens à l'aide
d'expressions rationnelles.
Indications :
1. Utilisez les librairies codecs et nltk de Python pour ouvrir le fichier texte, et afficher tous
ses tokens.
o
soit une séquence de lettres (attention aux accents!).
o
soit un chiffre
o
soit un symbole de ponctuation
2. Modifiez votre script pour que votre expression rationnelle reconnaisse aussi comme tokens,
les nombres (entiers et décimaux) et les prix du type 15,3€.
3. Modifiez votre script pour que votre expression rationnelle reconnaisse aussi les dates en
chiffres comme tokens. Par exemple, 01/12/2021; 2020-01-11; etc.
4. Dessinez sur papier un automate à états finis correspondant à votre expression rationnelle.
Exercice 2 - Indexation
Le but de l'exercice est d'indexer une collection de textes par tokens. La collection se trouve dans ce
fichier zip à décompresser. La liste des textes se trouve dans le fichier collection.lst.
1/2
2. Indication : utilisez un dictionnaire Python et le module pickle pour la sauvegarde
(fonction dump()).
3. Nous souhaitons maintenant implémenter un petit moteur de recherche simple. Une requête
est une suite de mots qui doivent appartenir aux documents que l'on cherche. Pour cela, on
va écrire un nouveau script python qui va, dans un premier temps, charger l'index (cf. la
fonction load() du module pickle) puis traiter les différentes requêtes entrées par l'utilisateur.
o Écrivez une fonction qui prend comme paramètre une requête (string) et un index
d'une collection, et qui renvoie la liste des documents de la collection qui
contiennent tous les mots de la requête.
o Faites en sorte que votre script demande à l'utilisateur de rentrer sa requête au
clavier (méthode raw_input()). Le script doit être capable de gérer plusieurs
requêtes consécutives indéfiniment.
o Modifiez le script pour ajouter une option aux requêtes afin qu'il soit aussi
possible d'obtenir tous les documents contenant au moins un mot de la requête.
2/2