Améliorer la pertinence des résultats d'un moteur de recherche

|

|

Le besoin
La solution
Ils peuvent vous aider

Le besoin

Améliorer l'expérience des utilisateurs grâce au moteur de recherche de la plateforme pour une bibliothèque numérique

Responsable commercial d'une bibliothèque numérique, je suis chargé de la vente de notre catalogue de livres sur notre site web. Cette plateforme comporte une barre de recherche permettant aux utilisateurs d'entrer le titre d'un livre. Après validation de la saisie, la page de recherche se charge, présentant les livres correspondant à la requête de l'utilisateur. À partir de ces résultats, l'utilisateur peut sélectionner le livre souhaité et l'ajouter à son panier. Notre système actuel se base alors sur la requête de l’utilisateur et renvoie les titres identiques à ce qu'il a saisi.

Après le déploiement de notre plateforme, notre entreprise a reçu un certain nombre de plaintes des utilisateurs concernant le moteur de recherche de notre bibliothèque. Pour mieux comprendre les motifs d'insatisfaction des utilisateurs, j'ai alors procédé à une analyse des logs du site. Les résultats ont révélé qu'un certain nombre de requêtes des utilisateurs ne renvoyaient pas de résultats alors que les titres saisis étaient présents dans notre catalogue. Ce problème s'explique par le fait que notre moteur de recherche ne détectait pas les titres avec des erreurs typographiques ou orthographiques. D'autre part, il arrivait fréquemment que les utilisateurs écrivent partiellement le titre d'un livre, ce qui n'était pas suffisant pour renvoyer le résultat attendu.

Notre objectif est alors d’implémenter un moteur de recherche où l’utilisateur est aussi en mesure de trouver le livre qu’il cherche avec un titre approximatif. Ces améliorations vont faciliter la recherche parmi la grande base de données de livres et fidéliser les utilisateurs en leur proposant des choix de livres pertinents. En effet, proposer à un lecteur un moteur de recherche plus intuitif va l’inciter à fréquenter plus souvent la plateforme pour y effectuer des achats.

Le moteur de recherche indexe un ensemble de livres disponibles dans notre catalogue. Le format UNIMARC a été utilisé pour représenter les livres de notre base de données. Il s'agit d'un format qui permet de structurer des données bibliographiques et d'en faciliter les partages. Chaque livre de notre catalogue est une instance UNIMARC qui contient des informations telles que l'ISBN du livre, son titre, l'auteur ou sa description. À partir de ces informations, l'objectif est d'améliorer l'expérience de recherche des utilisateurs.

La solution

Renvoyer des résultats à partir d'un titre incomplet ou erroné

Il est très fréquent que le texte saisi ne corresponde pas exactement au titre du livre attendu. Par conséquent, les résultats renvoyés par la base de données peuvent ne pas être pertinents ou le moteur de recherche peut ne renvoyer aucune réponse. Il est alors nécessaire d'analyser la saisie de l'utilisateur afin de trouver les titres des ouvrages les plus pertinents.

Index inversé

Aujourd'hui, lorsque l'utilisateur saisit une partie de titre, la plateforme compare alors la chaîne de caractères saisie avec le champ « titre » de la base de données, et ne retourne de résultat que lorsque cette chaîne est présente, au moins partiellement, dans ce champ.

La mise en œuvre d'un index inversé des titres est utile pour effectuer la correspondance entre la requête et les résultats attendus. Un index inversé est une structure de données qui va associer un mot à tous les titres où il apparaît. Ainsi, les mots saisis par l'utilisateur seront comparés à ceux de l'index inversé, ce qui permettra de renvoyer les titres correspondants.

Par exemple, si l'utilisateur saisit « le dernier jour », le moteur de recherche renverra aussi bien le roman policier Le dernier jour de l'auteur Arthur Rogé que Le dernier jour d'un condamné de Victor Hugo. En effet, si dans le moteur de recherche, les titres Le dernier jour et Le dernier jour d'un condamné sont respectivement étiquetés A et B alors l'index de ces œuvres va être créé de la façon suivante :

  • "le" : [A,B]
  • "dernier" : [A,B]
  • "jour" : [A,B]
  • "d'" : [A]
  • "un" : [A]
  • "condamné" : [A]

Chaque token de l'index va ainsi pointer vers les titres qui le contiennent. Pour la requête « le dernier jour », le moteur de recherche va ainsi renvoyer les livres d'Arthur Rogé et de Victor Hugo car l'index inversé va permettre d'associer les mots de la requête aux titres correspondants. Ces traitements vont permettre d'obtenir des résultats adéquats dans le cas où le lecteur connaît partiellement le titre du livre qu'il souhaite acheter. De plus, la structure d'index inversé améliore le temps de traitement des requêtes par le moteur de recherche.

Correction des erreurs de saisie

Une situation fréquente lors de l'écriture d'une requête est la présence d'une ou plusieurs fautes typographiques à la saisie. Dans de tels cas, il est possible de mesurer la similarité entre la chaîne écrite par l'utilisateur et les titres présents dans le catalogue. On peut par exemple procéder à un calcul de distance d'édition. Cette méthode va permettre de comparer deux chaînes de caractères en évaluant le nombre de lettres qui diffèrent. En fonction du résultat de cette distance, des suggestions de livres pourront être proposées à l'utilisateur.

À ce titre, la requête « Dictionnaire des idées recue » renverra l'ouvrage Dictionnaire des idées reçues. Cette correspondance résulte de la permutation du « c » par « ç » et de l'ajout de la consonne « s » à la fin de la saisie. La distance entre ces deux chaînes est de 2 et cette faible distance prouve la proximité graphique des deux chaînes de caractères. La valeur obtenue à partir du calcul de la distance d'édition est un bon indicateur pour identifier les livres recherchés par l'utilisateur, en cas d'erreurs typographiques. En parvenant à retrouver les livres cherchés à partir de requêtes comportant des fautes de frappe, l'expérience de recherche du lecteur est ainsi améliorée, ce qui simplifie ensuite son processus d'achat.

Points d'attention

  • La façon dont les informations sont indexées est importante pour optimiser l'analyse textuelle des documents. Une bonne structuration des données va simplifier la recherche d’informations et augmenter la pertinence des résultats après le traitement textuel effectué.
  • Le cas d'usage décrit prend uniquement en compte l'indexation des titres mais ce traitement peut aussi s'appliquer aux autres champs du catalogue tels que la description d'un livre. Il serait alors possible de renvoyer des livres selon d'autres critères, en s'appuyant par exemple sur les informations sémantiques qui peuvent être extraites de la description.
Par Fatou Sow