0% ont trouvé ce document utile (0 vote)
25 vues7 pages

Introduction à la Recherche d'Information

Transféré par

skoryk.anna.ye
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
25 vues7 pages

Introduction à la Recherche d'Information

Transféré par

skoryk.anna.ye
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Un déluge d’information

§ Big data :
⇢ V de Volume
⇢ V de Vélocité
Brève introduction à la ⇢ V de Variété (texte, image, vidéo, son, tags…)
etc.
recherche d’information § Le WWW est une source phénoménale de données, en particulier
textuelle, mais il existe beaucoup d’autres sources : mémoire
Julien Velcin
d’entreprise, données du patrimoine (ex. BnF, INA)
https://velcin.github.io

Julien Velcin - Programmation de spécialité : Python

Les moteurs
de recherche

Image credit: Go-Globe.com


Julien Velcin - Programmation de spécialité : Python Julien Velcin - Programmation de spécialité : Python
Julien Velcin - Programmation de spécialité : Python Julien Velcin - Programmation de spécialité : Python

Hidden for obvious reasons

Julien Velcin - Programmation de spécialité : Python Julien Velcin - Programmation de spécialité : Python
Julien Velcin - Programmation de spécialité : Python Julien Velcin - Programmation de spécialité : Python

Brevets

Julien Velcin - Programmation de spécialité : Python Julien Velcin - Programmation de spécialité : Python
Science des données Chaîne de traitement des données
§ Il faut automatiser la manipulation de ces grands volumes : § Extraction, stockage des données :
⇢ Systèmes d’information (information systems) ⇢ Comment gérer l’hétérogénéité des formats ?
Science des données
⇢ Recherche d’information (information retrieval) (data science) ⇢ Quelle structure de stockage ?
⇢ Fouille de données (data mining) § Représentation, indexation :
§ Cela nécessite le recours à : ⇢ Quelle est la meilleure représentation ?
⇢ analyse des données (data analysis) ⇢ Comment indexer les données de manière efficace ?
⇢ traitement automatique de la langue (NLP) § Analyse des données :
⇢ apprentissage automatique (machine learning) ⇢ Comment comparer des données textuelles ?
⇢ Quels algorithmes choisir ?

Julien Velcin - Programmation de spécialité : Python Julien Velcin - Programmation de spécialité : Python

Difficultés spécifiques au texte


§ Volume important, vocabulaire très vaste (erreurs, abréviations, argot,
néologismes, noms propres…)
§ Ecart entre la surface des mots et leur sens
§ Relations implicites entre les mots : synonymie, polysémie, liens de
subordination, co-références, etc.
§ Ambiguité sémantique : « Il voit le garçon avec ses lunettes » (qui
possède les lunettes ?)
Analyser les données textuelles
§ Suivant la tâche, la représentation est différente
§ Similarité entre deux textes (à partir de quels éléments, malédiction de la
dimension)

Julien Velcin - Programmation de spécialité : Python Julien Velcin - Programmation de spécialité : Python
Expressions régulières Application :
le concordancier
§ Librarie re :

§ findall permet de trouver toutes les occurrences


§ sub remplace une sous-chaîne par une autre

Julien Velcin - Programmation de spécialité : Python Julien Velcin - Programmation de spécialité : Python

Aller plus loin avec la construction d’un index Requête « carte » sur l’index des sites Web
es
x de cart
§ L’approche des expressions régulières a plusieurs limitations : es de jeu
uan t des règl e
site expliq e s p rix u anniversair
⇢ le motif cherché doit être contigu ca r t ca d e a
⇢ l’algorithme de correspondance (matching) est coûteux page web A 1 1 2 0 5 0 1 0 1 2 1 0 1
une ligne est
page web B 3 0 0 0 0 0 2 1 0 0 0 0 0
§ L’objectif est d’encoder directement les mots présents dans un un « document »

s it gé o
page web C 4 0 3 1 0 0 1 0 3 1 0 0 1
document en suivant l’hypothèse du « sac de mots » (bag of words)

ev
page web D 0 0 0 3 0 2 0 4 0 0 2 0 0

en grap
d a h iq
etc. 0 0 1 0 1 0 0 0 0 0 0 1 0

nt
de ues
1 0 0 1 0 0 0 1 0 1 2 0 0

sc
a rt
0 0 0 0 0 1 0 0 0 0 0 2 0

es
est-ce que le mot 2
rien à voir
apparaît dans le site n’ayant
document 3 ? une colonne correspond
Julien Velcin - Programmation de spécialité : Python Julien Velcin - Programmation de spécialité : Python
à un mot du dictionnaire
Principales étapes Segmentation du texte en mots
§ Construction du dictionnaire de mots (vocabulaire) § Cette étape de tokenization est assez simple dans les langages
§ Pour chaque document, construire une représentation basée sur ce occidentaux, comme le français ou l’anglais
dictionnaire : § Elle consiste généralement en :
⇢ binaire : 0 si le mot est absent, 1 s’il est présent ⇢ définir ce qui constitue la frontière entre deux « mots »
⇢ nombre d’occurrences (term frequency) ⇢ écrire l’expression régulière correspondante
(il y a d’autres schémas de pondération) ⇢ découper la chaîne en une liste de sous-chaînes (les mots)
§ A partir de ce tableau (matrice), on peut : (en Python avec la fonction split())
⇢ calculer l’importance de chaque mot (nuage de mots clefs) § Construire le vocabulaire consiste à faire l’union de tous les mots
⇢ trouver les documents les pertinents pour une requête trouvés et dédoublonner (avec un ensemble en Python par exemple)
⇢ comparer les documents entre eux (classification, clustering)

Julien Velcin - Programmation de spécialité : Python Julien Velcin - Programmation de spécialité : Python

Quelques prétraitements usuels Visualiser le corpus : le nuage de mots


§ Mettre en minuscule les mots du document (cf. fonction lower())
§ Protéger certaines expressions (ex. « H5N1 » ou « Covid-19 »)
§ Supprimer les chiffres, les ponctuations
§ Supprimer les mots trop peu fréquents
§ Supprimer les mots outils

loi de Zipf

Julien Velcin - Programmation de spécialité : Python Julien Velcin - Programmation de spécialité : Python
Réaliser son propre moteur de recherche
§ Requête de l’utilisateur
§ Récupérer les listes des documents
§ Agréger les listes :
⇢ union des ensembles
⇢ pondérer les documents puis les trier

Julien Velcin - Programmation de spécialité : Python

Vous aimerez peut-être aussi