Recherche intelligente fondée sur un raisonnement

Un moteur de recherche est un service permettant de trouver des ressources à partir d’une requête. En effet, en fonction de la nature et de la structure de données, plusieurs langages de description et d’interrogation ont été proposés. Dans cet article, nous discutons les principales techniques existantes dans la littérature et nous nous positionnons par rapport à l’état de l’art.

Recherche d’information structurée et semi-structurée :

La structuration de données sert à organiser les informations afin d’en faciliter l’accès (tables, tuples, relations, identifiants, etc). Plusieurs modèles représentatifs existent dans la littérature. Chaque modèle a une technique spécifique pour minimiser le coût en terme de temps de réponse.  A titre d’exemple, SQL, dédié aux tables de données relationnelles, fait parti des langages les plus utilisés dans le monde de l’informatique.

Avec l’émergence du Web et les différents supports d’échange, le besoin de trouver un format de données facilitant l’échange de données entre les différents acteurs s’est avéré incontournable. Dans ce contexte, plusieurs autres langages ont été inventés pour résoudre le problème de l’interopérabilité. XML et JSON font certainement parti des langages les plus réputés. Grâce à leur extensibilité et leur pouvoir expressif, ces deux langages ont été largement adoptés par la communauté Web comme format de données.

Enfin, pour faire face à l’explosion du volume de données, des technologies NoSQL ont vu le jour afin d’assurer une capacité de passage à l’échelle. Il s’agit principalement d’une organisation intelligente de données avec un allègement des contraintes d’intégrité qui ont tendance à augmenter le temps de réponse.

Recherche textuelle :

La structure de données est une information pertinente permettant de formuler des requêtes précises dont la syntaxe est définie en fonction des éléments de la base. Cette solution n’est malheureusement pas applicable pour des textes longs. La recherche d’information textuelle adopte des solutions basées sur un principe complètement différent. Tout d’abord, une première étape de filtrage est appliquée en utilisant des techniques issues du traitement automatique du langage (TAL). Tous les éléments constitutifs du texte sont analysés morpho-syntaxiquement afin d’éliminer les informations non pertinentes et mettre en forme les mots sélectionnés (lemmatisation, explicitation, etc) qui seront ensuite indexés par le système. Cette dernière étape dépend du modèle de représentation utilisé (vectoriel, probabiliste, etc). La pertinence de  chaque mot clé est calculée en fonction de plusieurs paramètres qui sont spécifiques à chaque modèle. A titre d’exemple, la fameuse méthode TF-IDF implémentée par l’API Lucene, utilise la fréquence d’apparition des mots comme critère principal pour l’attribution de poids. Malgré ces performances reconnues, TF-IDF montre certaines limitations pour les textes courts où la fréquence des mots n’est pas un critère déterminant.

Recherche basée sur un raisonnement :

Les deux approches présentées précédemment permettent d’interroger des données dont la syntaxe de la requête doit répondre exactement à celle des données. En effet, dans ce contexte sont apparues les bases déductives offrant la possibilité de définir des règles permettant d’inférer (déduire) de nouveaux faits à partir des données déjà présentes. Grâce à ce système, même si la requête de l’utilisateur ne correspond pas explicitement aux données disponibles initialement, le système se charge de l’analyse de cette requête afin de retourner toutes les informations correspondantes aux contraintes définies.

A titre d’exemple, supposons que notre base de données contienne uniquement des  instances  de type Étudiant et Enseignant.   Les deux requêtes Q1 (trouver toutes les personnes) et Q2 (trouver toutes les personnes qui enseignent dans une institution publique)ne retournent aucun résultat. Par contre, la spécification de quelques règles de raisonnement R1 (tous  les étudiants sont des personnes), R2 (un enseignant est une personne qui enseigne dans une institution publique) et R3 (une université est une institution publique) permet de retourner tous les résultats répondants aux contraintes définies par Q1 et Q2.   En plus de la déduction, le raisonnement contribue également à l’optimisation du temps de calcul, la requête est simplifiée avant son exécution ce qui permet d’éviter les jointures.

Parmi les langages permettant d’implémenter des systèmes déductifs, on peut distinguer deux principales catégories : la programmation logique et le Web sémantique. Prolog et Datalog font partie des langages les plus célèbres appartenant à la catégorie de la programmation logique.Cependant,avec l’émergence du Web, d’autres langages plus expressifs, dédiés au développement ontologique ont vu le jour. Ontology Web Language (OWL), basé sur la Logique de Description est un exemple de ces langages recommandés par le W3C.

Utilisation du raisonnement pour les données textuelles :

Dans les précédentes sections, nous avons présenté trois types de recherche d’information. En effet, la solution idéale serait d’exploiter toutes les dimensions possibles pour apporter des réponses précises et intelligentes permettant de déduire des faits implicites. Cependant, si on veut apporter cette capacité à des données textuelles non structurées, nous devons passer par une phase d’enrichissement d’ontologies permettant de détecter l’ensemble des différentes entités composant un texte et d’y attribuer la catégorie correspondante au niveau de cette ontologie. Par conséquent, une nouvelle couche informationnelle, permettant de répondre à des requêtes intelligentes s’ajoute au système.

Si l’on considère la requête Q3 (trouver les personnalités africaines ayant visité la France), on n’obtiendrait avec un moteur de recherche standard que les documents  dont les mots clés décrits dans la requête sont explicitement présents dans les documents. Pour faire face à cette limitation, nous construisons des ontologies spécifiques, enrichies depuis des ressources externes telle que Wikipedia.  Nos requêtes sont  intelligentes et permettent de déduire que le président sud-africain, Jacob Zuma avait assisté à la COP21, qui est un événement qui a eu lieu à Paris. Donc, Jacob Zuma fait partie des résultats retournés

Chez ContentSide,  nous optons pour une solution innovante et multidimensionnelle utilisant à la fois de l’information textuelle avec du raisonnement Web, basée sur des  enrichissements d’ontologies, via plusieurs ressources. Ce challenge est loin d’être trivial. Plusieurs méthodes existent dans l’état de l’art, mais malheureusement il n’y pas de méthode générique qui fonctionne universellement pour tous les domaines. Il s’agit d’un domaine compliqué, relevant des défis issus de plusieurs disciplines de recherche tel que le data mining, le TAL, le Web sémantique et la recherche d’information.

Ce sujet vous intéresse ?

NOUS CONTACTER