Sur quels principes fonctionne un module de recherche textuelle ?

Moteur de recherche grand public, moteur de recherche professionnel, quelles différences ?

Les moteurs de recherche du Web sont deve­nus des outils du quo­ti­dien, et ces moteurs ont beau­coup évo­lué depuis les pre­miers moteurs his­to­riques tels que Archie ou Alta­Vis­ta. Les moteurs de recherche sont éga­le­ment très utiles en entre­prise. Les moteurs grand public et pro­fes­sion­nels ont des carac­té­ris­tiques dif­fé­rentes : volume de don­nées trai­tées, mode de col­lecte de l’in­for­ma­tion et cri­tères de clas­se­ment notamment. 

Volume de données traitées

Selon le site Live Stats, le nombre de sites Inter­net actuel­le­ment en ligne et que les grands moteurs visent à indexer est proche de 2 mil­liards , ce qui pose évi­dem­ment des contraintes en termes d’in­dexa­tion ( volume et fraî­cheur d’in­dex…), et d’ac­cès à l’in­for­ma­tion (vitesse d’ac­cès, clas­se­ment…). Les volumes sont rare­ment com­men­su­rables en entreprise.

Collecte de l’information

Les moteurs de recherche grand public et les moteurs de recherche pro­fes­sion­nels répondent à des contraintes très dif­fé­rentes en termes d’ac­cès à l’in­for­ma­tion. Les moteurs grand public doivent par­cou­rir le Web pour col­lec­ter l’in­for­ma­tion et indexer un maxi­mum de sites Inter­net. Les moteurs de recherche pro­fes­sion­nels doivent col­lec­ter et indexer des docu­ments dans des for­mats mul­tiples et conser­vés dans des espaces de sto­ckages variés. L’in­dexa­tion peut être manuelle, un opé­ra­teur, pro­fes­sion­nel ou non, ajou­tant et indexant expli­ci­te­ment le docu­ment à la base docu­men­taire, ou bien automatique. 

Dans cer­tains cas, les docu­ments sont déjà indexés dans des sys­tèmes de ges­tions docu­men­taires hété­ro­gènes, il est alors néces­saire de mettre en œuvre des connec­teurs entre le moteur de recherche et la ges­tion documentaire.

Critères de classement

Les moteurs de recherche indus­triels et les moteurs de recherche grand public répondent à des cri­tères de clas­se­ment différents. 

Les moteurs de recherches indus­triels pro­posent géné­ra­le­ment des clas­se­ments en fonc­tion des pro­prié­tés intrin­sèques des docu­ments : per­ti­nence par rap­port à la requête, fraî­cheur de l’in­for­ma­tion (tri par date) ou autres cri­tères telles que les métadonnées.

Les moteurs de recherche grand public prennent en compte de nom­breux fac­teurs intrin­sèques (pré­sence des mots, graisse, titraille…) mais éga­le­ment extrin­sèques (maillage interne ou externe, réfé­ren­ce­ment auprès de sites de confiance…) qui font le quo­ti­dien des spé­cia­listes de l’op­ti­mi­sa­tion du réfé­ren­ce­ment Inter­net (SEO).

Les deux types de moteurs de recherche offrent éga­le­ment des fonc­tions de filtres de recherche qui per­mettent de n’af­fi­cher que les docu­ments d’un cer­tain type.

Quelles sont les techniques utilisées par un moteur de recherche industriel ?

Si la plu­part des moteurs de recherche reposent sur un index inver­sé, cer­taines solu­tions font appel à des algo­rithmes de com­pa­rai­son de docu­ments.

Qu’est-ce qu’un index inversé ?

Dans le cas d’un index inver­sé, la phase d’in­dexa­tion consiste à sto­cker la liste des termes pré­sents dans chaque docu­ment, et de conser­ver pour cha­cun de ces termes l’i­den­ti­fiant des docu­ments, voire les posi­tions dans chaque docu­ment – on parle alors d’index inver­sé posi­tion­nel – où se trouve ce terme.

Par exemple, les textes

  • Docu­ment A: « Com­ment fonc­tionne un index inver­sé ? »
  • Docu­ment B;« Qu’est-ce qu’un index inver­sé posi­tion­nel ? »

cor­res­pondent à l’in­dex inver­sé sui­vant, où les nombres indiquent la posi­tion dans le texte :

ceB3
Com­mentA1
estB2
fonc­tionneA2
indexA4;B6
inver­séA5;B7
posi­tion­nelB8
quB1;B4
unA3;B5
Un index inver­sé positionnel

On peut remarquer :

  • à par­tir de l’en­trée d’un mot (par exemple index) on obtient immé­dia­te­ment l’i­den­ti­fiant du docu­ment et la posi­tion du terme cor­res­pon­dants (4ème posi­tion dans le docu­ment A, 6ème posi­tion dans le docu­ment B);
  • il est pos­sible de recons­truire chaque texte à par­tir de l’in­dex, d’où le nom d’index inver­sé;
  • cer­tains mots n’ont pas de grande per­ti­nence pour la recherche, on parle alors de mot outil.

Qu’est-ce qu’un mot outil ?

La loi de ZIpf est une pro­prié­té de la dis­tri­bu­tion des termes de la langue. Elle énonce qu’un nombre limi­té de mots appa­raissent sou­vent dans un cor­pus et, à l’op­po­sé, qu’un cor­pus contient peu d’ha­pax. Cette loi est géné­ra­le­ment pré­sen­tée sous la forme d’une courbe, avec à l’abs­cisse la fré­quence d’un terme, et à l’or­don­né le nombre de termes dans le corpus: 

Loi de Zipf. Source:: wikimedia 

On le voit, les termes très fré­quents, parce qu’ils appa­raissent dans tous les textes, ne sont pas dis­cri­mi­nants pour la recherche, c’est d’ailleurs le prin­cipe de base uti­li­sé pour le clus­te­ring. De plus, ces termes encombrent l’in­dex posi­tion­nel. C’est pour­quoi ces termes, sou­vent appe­lés mots outils, ne sont pas indexés.

Qu’est-ce que la recherche d’information par comparaison de documents ?

La recherche d’in­for­ma­tion par com­pa­rai­son de docu­ments repose sur le même prin­cipe que le clus­te­ring. L’i­dée sous-jacente est de construire un espace vec­to­riel, dans lequel on posi­tionne chaque document.

Les modes de cal­cul de ces vec­teurs varient. Ils peuvent être basés sur les mots qui forment le docu­ment (consi­dé­rés comme des « sacs de mots » en vrac) ou obte­nus via des tech­niques de plon­ge­ment, issus de l’ap­pren­tis­sage pro­fond, qui per­mettent de mieux cap­ter le contexte des mots.

L’une des méthodes les plus popu­laires pour posi­tion­ner des docu­ments dans un espace vec­to­riel repose sur deux fac­teurs qui tra­duisent quelques intui­tions simples : 

  • plus un terme est fré­quent dans un docu­ment, plus il est pro­bable que ce docu­ment concerne le concept cor­res­pon­dant à ce terme,
  • plus un terme est fré­quent dans l’en­semble du cor­pus, moins il est dis­cri­mi­nant pour la recherche d’information.

Tech­ni­que­ment, ces prin­cipes se tra­duisent par deux facteurs :

  • la fré­quence d’ap­pa­ri­tion du terme dans le docu­ment considéré 
  • la fré­quence d’ap­pa­ri­tion du terme dans l’en­semble du corpus

Afin de mettre en équa­tion, on écrit

  • text fre­quen­cy (tf) pour la fré­quence d’ap­pa­ri­tion dans le docu­ment considéré.
    • tf = fré­quence du terme dans le docu­ment / nombre de mots dans le document
  • Invert docu­ment frequency(IdF) pour la fré­quence d’ap­pa­ri­tion dans l’en­semble du corpus
    • Idf = log(nombre de docu­ments / nombre de docu­ments conte­nant le terme au moins une fois)

Le posi­tion­ne­ment d’un docu­ment dans cet espace vec­to­riel consiste à cal­cu­ler tf*idf pour chaque mot du docu­ment. L’es­pace vec­to­riel aura ain­si autant de dimen­sions qu’il y a de mots dif­fé­rents dans le corpus.

La recherche d’in­for­ma­tion par com­pa­rai­son de docu­ments consiste alors à posi­tion­ner la requête dans cet espace vec­to­riel et de trou­ver les docu­ments les plus proches mathématiquement.

Index inversé, comparaison de documents, avantages et inconvénients ?

L’a­van­tage de l’ap­proche par com­pa­rai­son de docu­ments réside dans le fait que la requête peut être longue, voire un docu­ment entier, ce qui est plus dif­fi­cile dans le cas d’un moteur de recherche basé sur un index inver­sé. En revanche, l’in­dex inver­sé pour­ra s’a­vé­rer plus effi­cace pour des requêtes courtes.

Quelles sont les trois phases de la recherche d’information ?

On consi­dère habi­tuel­le­ment que la recherche d’in­for­ma­tion com­prend trois phases :

  • une phase de collecte
  • une phase d’indexation
  • une phase de recherche

La collecte

La col­lecte consiste à récu­pé­rer les docu­ments à indexer. Ce peut être, comme on l’a vu, au moyen d’un craw­ler ou bien via des connec­teurs à des bases docu­men­taires ou des espaces de stockage. 

L’indexation

L’in­dexa­tion consiste à construire l’in­dex, c’est à dire à struc­tu­rer le mode d’ac­cès interne à l’in­for­ma­tion. L’in­dex peut être un index inver­sé ou un espace vec­to­riel ou une ver­sion hybride des deux.

La recherche

La recherche est la phase qui consiste à com­pa­rer la requête de l’u­ti­li­sa­teur avec le conte­nu de l’index. 

Dans le cas d’un index inver­sé, il s’a­gi­ra, une fois les mots outils fil­trés, de récu­pé­rer tous les docu­ments cor­res­pon­dant aux termes de la requête. Un algo­rithme de clas­se­ment pour­ra se baser sur le nombre de termes com­muns et/ou aux fré­quences d’apparition.

Dans le cas d’une approche par com­pa­rai­son de docu­ments, la pre­mière étape consiste à posi­tion­ner la requête dans l’es­pace vec­to­riel construit. L’al­go­rithme de clas­se­ment se base­ra alors sur la dis­tance, au sens vec­to­riel, entre la requête et les docu­ments de la base documentaire.

Par Alain Couillault
PhD Chargé de Mission Innovation APIL