Recherche d Information(RI): Fondements et illustration avec Apache Lucene. par Majirus Fansi @majirus



Documents pareils
Bases de données documentaires et distribuées Cours NFE04

TRAITEMENT AUTOMATIQUE DES LANGUES. Licence d'informatique 2ème Année Semestre 1. Département d'informatique Université de Caen Basse-Normandie

Travaux Pratiques : Lucène - Gestion d un index plein texte

Business Intelligence avec Excel, Power BI et Office 365

Big Data et Graphes : Quelques pistes de recherche

Apprentissage Automatique

MapReduce. Malo Jaffré, Pablo Rauzy. 16 avril 2010 ENS. Malo Jaffré, Pablo Rauzy (ENS) MapReduce 16 avril / 15

Fouillez facilement dans votre système Big Data. Olivier TAVARD

Business Intelligence

Lamia Oukid, Ounas Asfari, Fadila Bentayeb, Nadjia Benblidia, Omar Boussaid. 14 Juin 2013

I.1 Introduction. I.2 La recherche d information. I.2.1 Définitions

Big Data et Graphes : Quelques pistes de recherche

données en connaissance et en actions?

Le Langage SQL version Oracle

Big$data,$le$Web$et$tout$ça $ De$quel$volume$parleDton$?$ Surcharge$d informa>on$ Introduction à la fouille de texte Master Informatique 1 ère année

Examen organisé en vue du recrutement et de la constitution de réserves de recrutement. d'assistants (gestionnaire de systèmes et développeur)

INF6304 Interfaces Intelligentes

Calculer avec Sage. Revision : 417 du 1 er juillet 2010

Logiciel Libre Cours 3 Fondements: Génie Logiciel

Services bancaires par Internet aux entreprises. Guide pratique pour : Rapports de solde Version

Sélection d un moteur de recherche pour intranet : Les sept points à prendre en compte

Le langage SQL Rappels

Bases de données documentaires et distribuées Cours NFE04

Plan 1/9/2013. Génération et exploitation de données. CEP et applications. Flux de données et notifications. Traitement des flux Implémentation

Comparatif CMS. Laurent BAUREN S Bérenger VIDAL Julie NOVI Tautu IENFA

Introduction à MATLAB R

Analyse de la vidéo. Chapitre La modélisation pour le suivi d objet. 10 mars Chapitre La modélisation d objet 1 / 57

Accès instantané aux mots et aux locutions Le dictionnaire électronique offre une traduction rapide d'un mot ou d'une locution

Differential Synchronization

Le ranking de Augure Influencers La méthodologie AIR en détails

Présentation du PL/SQL

Contexte. Pour cela, elles doivent être très compliquées, c est-à-dire elles doivent être très différentes des fonctions simples,

Encyclopaedia Universalis Guide d utilisation

Cours Bases de données

Introduction aux Bases de Données Relationnelles Conclusion - 1

Exercices Corrigés Premières notions sur les espaces vectoriels

Mesures de temps de propagation de groupe sur convertisseurs de fréquence sans accès aux OL

EXAMENS EN VUE DU RECRUTEMENT ET DE LA CONSTITUTION DE RÉSERVES DE RECRUTEMENT DE SYSTEM ADMINISTRATORS APPLICATION DEVELOPERS

ÉPREUVE COMMUNE DE TIPE Partie D

1 Recherche en table par balayage

Description de l implantation dans le centre d examen (nom du service ou de l outil et caractéristiques techniques)

Modernisation et gestion de portefeuilles d applications bancaires

TP 1. Prise en main du langage Python

Formation Cloudera Data Analyst Utiliser Pig, Hive et Impala avec Hadoop

CONCEPTION Support de cours n 3 DE BASES DE DONNEES

RI sociale : intégration de propriétés sociales dans un modèle de recherche

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

# let rec concat l1 l2 = match l1 with [] -> l2 x::l 1 -> x::(concat l 1 l2);; val concat : a list -> a list -> a list = <fun>

Chaînes de Markov au lycée

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

ORDINATEUR DOSSIERS FICHIERS

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

Programmation parallèle et distribuée (Master 1 Info )

Chapitre 5 : Flot maximal dans un graphe

Déroulement d un projet en DATA MINING, préparation et analyse des données. Walid AYADI

Les bonnes pratiques d un PMO

Programmation parallèle et distribuée

Recherche d information en langue arabe : influence des paramètres linguistiques et de pondération de LSA

SCI6052 Information documentaire numérique École de bibliothéconomie et des sciences de l information

RAPPORT AUDIT SEO. Élaboré à l'attention de : Monsieur Greber Élaboré par : Cédric Peinado

Définition et diffusion de signatures sémantiques dans les systèmes pair-à-pair

Langage SQL : créer et interroger une base

BIG DATA et EDISCOVERY

IBM SPSS Direct Marketing 21

Tune Sweeper Manuel de l'utilisateur


Introduction à la Recherche d information

Utilisation d objets : String et ArrayList

Cours Base de données relationnelles. M. Boughanem, IUP STRI

Module 3. Création d objets utilisateur et ordinateur AD DS

M. F. PITA Departamento de Geografía Física. Universidad de Sevilla. C/ María de Padilla s.n SEVILLA (Espagne).

LES TYPES DE DONNÉES DU LANGAGE PASCAL

Le moteur de recherche. Clé de voûte du système d information

Concevoir sa stratégie de recherche d information

Master d Informatique M1 Université Paris 7 - Denis Diderot Travail de Recherche Encadré Surf Bayesien

Intégration de la dimension sémantique dans les réseaux sociaux

Algorithmique I. Algorithmique I p.1/??

Recherche dans un tableau

Introduction à. Oracle Application Express

Formation à la recherche documentaire sur le web

Le langage SQL pour Oracle - partie 1 : SQL comme LDD

24/11/2011. Cours EJB/J2EE Copyright Michel Buffa. Plan du cours. EJB : les fondamentaux. Enterprise Java Bean. Enterprise Java Bean.

Anticiper et prédire les sinistres avec une approche Big Data

Intelligence Artificielle et Systèmes Multi-Agents. Badr Benmammar

Quel logiciel DE CRM choisir pour votre force de vente terrain?

Solutions de gestion de la sécurité Livre blanc

Les modes de recherche sur le Web 2.0

ÉVALUATION DE LA MAINTENABILITÉ DE S3MDSS AVEC L OUTIL SONAR

Modèles à Événements Discrets. Réseaux de Petri Stochastiques

Le théorème de Perron-Frobenius, les chaines de Markov et un célèbre moteur de recherche

PRODIGE V3. Manuel utilisateurs. Consultation des métadonnées

Petit lexique de calcul à l usage des élèves de sixième et de cinquième par M. PARCABE, professeur au collège Alain FOURNIER de BORDEAUX, mars 2007

Introduction à MapReduce/Hadoop et Spark

TP Codage numérique des caractères. Un ordinateur ne manipule que des 0 et des 1 : Comment alors code-t-il du texte?

Sommaire. 1 Introduction Présentation du logiciel de commerce électronique 23

Gestion collaborative de documents

LES DECIMALES DE π BERNARD EGGER

5. Apprentissage pour le filtrage collaboratif

Sommaire Livre blanc CGIDEV2 pour RePeGlio

Transcription:

1 Recherche d Information(RI): Fondements et illustration avec Apache Lucene par Majirus Fansi @majirus

Résumé Fondements de la Recherche d Information (RI) Noyau de toute application de RI Éléments à prendre en compte Modèles Booléens et Vectoriels Construction des index inversés et calcul du niveau de pertinence Librairie Apache Lucene 2

Majirus Fansi, PhD, MBA @majirus Chercheur au laboratoire Informatique de l Université de Pau Stockolm Business School Executive MBA Consultant SOA/Java EE à Valtech SA Maintenant à Devoxx France 3

Définition 4

Recherche d Information (RI) Trouver des ressources (des documents) De nature non structurée (des textes) Besoin d information (pas une requête) parmi une large collection Stockées sur ordinateurs 5

RI Web/Traditionnelle RI Web (Web Information Retrieval) La plus grande collection de documents (liés) RI traditionnelle (Traditional Information Retrieval) Collection plus ou moins contrôlable, plus petite en taille Votre intranet Scénario le plus souvent rencontré par le développeur 6

RI Traditionnelle Trois techniques basiques de recherche d Information Modèles Booléens (Boolean Models) Modèles Vectoriels (Vector Space Models) Modèles Probabilistes (Probabilistic Models) Les moteurs de recherche s appuient sur un ou plusieurs modèles Apache Lucene se repose sur les modèles booléens et vectoriels 7

Exemple de Problème RI Bibliothèque numérique de l entreprise Documents techniques, rapport de réunions, spécifications, etc Dizaines de milliers de documents Lucene AND Cutting AND NOT SOLR Grep de la collection pour retrouver les documents candidats Peut être un processus efficace mais 8

Exemple de Problème RI (2) Grep ne répond pas à tous les besoins Traiter rapidement une large collection de documents Permettre des recherches plus flexibles "Lucene Cutting"~5 Permettre la recherche par pertinence (ranked retrieval) Meilleures réponses à un besoin d information Parmi les documents qui contiennent certains mots 9

Index/terme/document L index est le moyen d éviter le scan linéaire de la collection On indexe au préalable les documents de la collection L unité d index est un terme Mot dans le document indexé, mais pas toujours Document: Tout élément sur lequel est basé l index Ligne d une table, livre, chapitre de livre, présentation, etc 10

Index: structure et construction 11

Index : structure Supposons N= 1 million de documents, 1000 mots par document, M=500 000 termes environ pour la collection Un milliard de mots pour 500 000 termes Quelle structure pour l index? 12

Matrice d incidence termedocument Doc 1 Doc 2 Doc 3 Doc 4 Lucene 1 0 1 1 Cutting 0 0 1 1 Solr 1 0 1 0 Majirus 0 1 0 0 Méthode naïve, matrice clairsemée: un terme dans 2 documents L index doit idéalement tenir en mémoire 13

Index Inversé (Inverted index) Maintien d un dictionnaire de termes Pour chaque terme t, lister les documents (postings list) où apparaît t docid pour identifier chaque document de la liste Cutting 1 2 4 11 31 45 173 Posting Lucene SOLR 1 2 4 5 6 16 57 132 2 31 54 101 Dictionnaire Trier par docid Postings 14

Construction de l index Inversé Documents à indexer Friends, to, Romans, countrymen. Flow de jetons Analyseur Module linguistique Friends Romans Countrymen Jetons modifiés friend roman countryman Index inversé Indexeur friend 2 4 roman 1 2 countryman 13 16 15

Analyser le texte Découper le texte en pièces appelées jetons (token) Dépendant du langage (Français, Allemand, etc...) Exclure les termes peu pertinents pour la recherche (stop words) Indice: Nombre d occurrence du terme dans la collection Réduit la taille de l index mais attention Phrases comme requête (phrase query): "réunion de geek" Ecoutez-vous? :"I did it all", "Ni Oui Ni Non", "Oui Mais Non" 16

Normaliser les jetons Processus de standardisation des jetons Pour éliminer les différences superficielles Création implicite des classes d équivalence Suppression des points et tirets: U.S.A USA; anti-héros antiheros Suppression des accents: cliché cliche; naïve naive Tout en minuscule? CAT, Bush 17

Indexeur: dictionnaire et postings Fusion des entrées du même terme dans un document Partition entre dictionnaire et postings La fréquence de document est ajouté 18

Modèle Booléen 19

Modèle Booléen Requête sous forme d expression booléenne de termes Termes combinés par les opérateurs AND, OR, NOT Un document est vu comme un ensemble de mots 20

Traitement des requêtes: AND On considère la requête Lucene AND Cutting Localiser Lucene dans le dictionnaire Extraire son postings Localiser Cutting dans le dictionnaire Extraire son postings Faire l intersection des deux postings 21

Traitement des requêtes: AND (2) On considère la requête Lucene AND Cutting 2 8 2 4 8 16 32 64 128 Lucene 1 2 3 5 8 13 21 34 Cutting Si les listes sont de tailles X et Y, alors fusion en O(X+Y) Important: les listes sont triées par docid 22

Requêtes Booléennes: correspondances exactes Modèle très précis: le document match les conditions ou pas Sans doute le modèle le plus simple pour construire un système RI La seule option disponible jusqu en 1990 Trois siècles de règne sans partage Plusieurs systèmes utilisent toujours ce modèle Email, catalogues de librairie, Mac OS X Spotlight 23

Requêtes Booléennes avec Apache Lucene AND (ou &&), "+ ", OR (ou ), NOT (ou!) et "-" Opérateur par défaut: OR Retourner les documents qui contiennent "Apache Lucene" ou Lucene "Apache Lucene" Lucene ou "apache Lucene" OR Lucene "+" impose que le terme après ce signe existe dans le document 24

Requêtes Booléennes avec Apache Lucene (2) NOT (-): exclut les documents qui contiennent le terme après l opérateur Ne peut être utilisé avec un seul terme ( NOT SOLR) Utiliser les parenthèses pour forcer les priorités (A OR B) AND C 25

Req Booléennes : Limitations Problème général avec la recherche booléenne AND très précis mais très restreint OR peu précis, mais moins restreint Difficile de trouver le juste milieu Ne répond pas toujours au besoin d information des utilisateurs Modèle booléen étendu: proximité entre termes (term proximity) Apache et Lucene dans 10 mots ("Apache Lucene" ~10) 26

Req Booléennes : Perspectives Renseigne uniquement sur la présence ou l absence d un terme Nous aimerions donner un poids important aux documents où le terme est plus fréquent Besoin de la fréquence du terme (term frequency) Retourne l ensemble des documents qui matchent la condition Nous souhaiterions ordonner les résultats par pertinence Besoin d un mécanisme pour déterminer le score du document 27

Recherche ordonnée (Ranked Retrieval) 28

Recherche ordonnée (Motivations) Jusqu en 1990 uniquement les requêtes Booléennes Les documents correspondent ou pas Bien pour les experts qui comprennent bien leurs besoins et la collection Peu adapté pour la majorité des utilisateurs Beaucoup sont incapables d écrire les requêtes booléennes Très peu sont disposés à explorer une liste de 1000 résultats 29

Recherche ordonnée (Principes) Plutôt qu un ensemble de documents qui satisfont la requête Le système retourne les tops k documents les plus pertinents La taille des résultats n est plus un problème Seule condition: l algorithme de ranking fonctionne Plutôt qu une requête avec expressions et opérateurs L utilisateur soumet une requête en texte libre 30

Scoring 31

Score Élément clé pour la recherche ordonnée Nous voulons retourner en priorité les documents les plus utiles à l utilisateur Comment ordonner les documents de la collection par rapport à la requête? Assigner un score [0, 1] à chaque document Ce score mesure combien le document et la requête matchent. 32

Éléments de scoring Fréquence du terme (term frequency) Fréquence document (document frequency) Non en fait la fréquence document inversée (Inverse doc freq) 33

Fréquence du terme - tf t,d La fréquence tf t,d : nombre d occurrences de t dans d tf peut-il être le score? Tf comme score n est pas ce que nous voulons: Un document avec 10 occurrences du terme est plus pertinent qu un document avec 1 seule occurrence du même terme Mais pas 10 fois plus pertinent 34

tf t,d - Inconvénients Tous les termes sont considérés avec la même importance Certains termes ont peu ou pas du tout de pouvoir discriminant Poids du terme «java» dans une collection de documents sur les frameworks java. Besoin d un Mécanisme pour atténuer l effet des termes trop fréquents 35

Fréquence document (df t ) Nombre de documents contenant le terme dans la collection Les termes rares sont plus informatifs que les termes fréquents Le but est d attribuer un poids élevé pour les termes fréquents Mais moins important que les termes rares La fréquence document (df) permet de matérialiser ce besoin 36

Fréquence document inversé df t est la fréquence document de t: le nombre de documents qui contiennent t df t est une mesure inverse du caractère informatif de t df t N; N étant le nombre de document de la collection Idf t (inverse document frequency) de t est ainsi défini idf log ( N/df t 10 t La fonction log est utilisée pour rendre idf moins prononcé ) 37

tf.idf Scoring Le score tf.idf d un terme est le produit de ses poids tf et idf w log(1 tft, ) log ( N / df t, d d t ) Schéma de calcul de score très utilisé en RI w t,d Augmente avec le nombre d occurrences de t dans d w t,d Augmente suivant la rareté de t dans la collection w t,d plus élevé si t apparaît plusieurs fois dans n documents, n petit w t,d est le moindre si t apparaît dans presque tous les documents 38

Modèle Vectoriel (Vector Space Model) 39

VSM: Principes Documents comme vecteurs dans l espace Requête comme vecteur dans l espace Calcul de la similarité entre les vecteurs 40

document comme vecteur (document vector) Les documents sont des points ou des vecteurs dans un espace vectoriel Les termes sont les axes de l espace: d (w t1,d ; w t2,d ; w tn,d ) Espace vectoriel de dimension n, n = nombre de termes Vecteurs très dispersés: beaucoup d entrées à zéro 41

Req comme vecteur (Query vector) Idée clef 1: Représenter les requêtes comme vecteurs dans l espace Idée clef 2: ordonner les documents suivant leurs proximités à la requête dans l espace 42

Proximité (d, q) Proximité par mesure de distance Euclidienne Ne reflète pas la distribution des termes Dupliquer le contenu de d pour obtenir d d a une plus grande distance et s écarte de d Proximité donné par l angle avec la requête: cos(0) = 1 = similarité maximale Respecte mieux la similarité sur la distribution des termes (d,d)=0 43

Ranking Ordonner les documents par ordre décroissant de l angle entre le document et la requête Ou par ordre croissant de cos(requête, document) 44

cos(requête q, document d) produit scalaire q d cos( q, d) q d q q vecteurs unitaires q i est le poids tf-idf du terme i dans la requête q d d V i 1 q V i 1 2 i q d i i V i 1 d 2 i fondamental pour tout système RI à modèle vectoriel d i est le poids tf-idf du terme i dans le document d cos(q,d) donne le score du document d considérant la requête q On retourne les top K documents 45

Adaptation Lucene (1) Normaliser le vecteur v(d) à un vecteur unitaire est problématique Supprime toute information sur la longueur du document D où la fonction doc-len-norm(d) qui normalise à un vecteur supérieur ou égal au vecteur unitaire (2) On peut décider à l indexation qu un document est plus important qu un autre Ajout d un boost pour le document (doc-boost(d)) 46

Adaptation Lucene (2) (3) On peut attribuer un facteur de boost aux termes de la requête (queryboost(q)) Multiplie la contribution d un terme au score du document (4) Un document peut satisfaire une requête à plusieurs termes Mais ne contient pas tous les termes de la requête L utilisateur récompense le document qui contient le plus de termes Coord-factor(q,d) 47

Lucene: Formule de scoring conceptuelle Suppose un champ (field) par document q d score( q, d) coordfact(q, d).queryboost ( q).doclennorm ( d).docboost( d) q 48

Lucene: Scoring Pratique Formule pratique : un document a plusieurs champs score( q, d) coord(q, d).query Norm( q) t q ( tf ( t d). idf numdocs tf ( t d) tf idf ( t) 1 log( ) t, d docfreq 1 ( t) 2. t. getboost(). norm( field( t), d)) norm( field( t), d) doclennorm( field( t), d). docboost( d) QueryNorm(q) utile pour comparer les scores entre requêtes doclennorm(field(t),d) calculé de sorte que les champs courts contribuent plus au score 49

Conclusion et perspectives 50

Perspectives Schéma d extraction «Inexact Top K» documents Retourner les K documents susceptibles d être parmi les K meilleurs scores L algorithme de scoring n est qu un proxy vers le besoin d information Modèles Probabilistes Aller plus loin dans la recherche avec la sémantisation La recherche de base est à mots clés 51

Remerciements Pandu Nayak and Prabhakar Raghavan: Introduction to Information Retrieval Amy N. Langville and Carl D. Meyer: Google s PageRank and Beyond Equipe de développement de Lucene L organisation de Devoxx France Le management de Michels, Maj-Daniels et Sonzia Fansi Bien sûr vous, pour votre présence et votre attention 52

A ceux et celles qui œuvrent pour l enseignement et la recherche! 53

54 Please note : slide format is 1280x720 We d like to record in 16:9 But prepare also a 1024x768 as a backup plan if your computer is not able to output a video signal with a 1280x720 resolution