Vous êtes sur la page 1sur 2

Master : Systèmes d’information décisionnel et imagerie(SIDI)

TP01 : Indexation et recherche d’image par le contenu


CBIR (Content-Based Image Retrieval)
Prof. Ahmad EL ALLAOUI
2023/2024

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 :

• vous devrez prendre le texte en français de votre choix sur le web.


• travaillez en encodage UTF-8.

1. Utilisez les librairies codecs et nltk de Python pour ouvrir le fichier texte, et afficher tous
ses tokens.

Dans un premier temps, on définit un token comme suit:

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. Écrivez un script Python qui construit l'index de la collection et le sauvegarde dans un


fichier. Il prendra comme paramètre le nom du fichier contenant la liste des textes de la
collection. L'index doit comporter les informations suivantes pour chaque token : l'ensemble
des documents dans lequel il apparaît.

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.

Optimisez le moteur de recherche en utilisant un index.


Faites en sorte que le poids d'un token-mot dans un texte soit la mesure TF.IDF vue en cours.
Optimisez le tri des documents pertinents par rapport à une requête.

2/2

Vous aimerez peut-être aussi