Donner de la valeur aux données brutes

Face aux problèmes récurrents d’accès à l’information, les entreprises pensent souvent intégrer un moteur de recherche afin de faciliter cet accès. Or d’après notre retour d’expérience, l’intégration d’un moteur de recherche ne peut pas être la seule solution car un moteur de recherche indexe des documents et répond une liste de documents et non pas une information. Une personne peut cibler son information en identifiant tous les documents pertinents à sa recherche puis à la lecture de ces documents en déduire de l’information.

Cette tâche, complexe pour un traitement automatique, ne peut se faire qu’en enrichissant les documents de toutes les informations pertinentes auxquelles il est rattaché afin de présenter à l’utilisateur des documents consolidés et contextualisés porteurs de plusieurs dimensions sémantiques.

Un moteur de recherche capable de rechercher une information plutôt qu’un document ne se contente alors plus de renvoyer une liste de documents bruts mais pour chaque document, l’utilisateur aura accès à toutes les informations de l’entreprise qui sont en lien.

Problématique client

Un de nos clients, spécialisé dans la fabrication d’articles de sport nous a contactés pour nous faire part des problèmes d’accès à l’information auxquels ses collaborateurs faisaient face au quotidien. Comme nous l’avons souvent observé, leur problématique ne se résume pas à l’accès à un fichier mais à l’accès aux informations cloisonnées dans différents silos à travers tout l’historique de l’entreprise.

La solution proposée

Suite à cet échange, nous nous sommes fixés comme objectif de concevoir à travers un POC une solution automatisée permettant de centraliser les informations contenues dans différentes sources et de présenter à un utilisateur les résultats les plus pertinents et riches. 

Dans un premier temps, nous avons réalisé une cartographie des données de l’entreprise afin de représenter la façon dont elles sont structurées. Cette étape essentielle permet de lister les données, d’observer le lien entre elles et d’identifier quelles sont les informations qui ne sont pas accessibles dans une entité.

A partir de cette analyse, on peut alors déterminer quelles étapes d’enrichissement doivent être faites pour consolider l’information entre ces entités. Parmi ces tâches, nous avons identifié les suivantes :

  • L’extraction automatique du nom des produits
  • La similarité entre les documents
  • A partir du nom des produits extrait en amont le maillage des données avec le catalogue produit
  • L’extraction d’entités nommées
  • L’ajout d’informations liées à la nature du document (content-type, classification…)
  • L’ajout d’informations liées au contexte du document (service de l’auteur du document)
  • A partir de l’ajout du service et le croisement avec des métadonnées telles que l’auteur et la date de publication, le maillage avec des projets

Nous avons ensuite défini l’architecture et nous avons orienté notre choix vers la stack Elastic avec Elasticsearch (pour sa scalabilité et ses nombreuses options de gestion des index), Logstash (pour extraire et transformer les données) et Kibana (pour visualiser la donnée contenue dans le cluster). Nous avons également choisi d’intégrer l’application Elastic Enterprise Search, cette application offre de nombreux connecteurs permettant de se connecter aux sources Cloud fréquemment utilisées en entreprise (Sharepoint Online, Google Drive, Confluence, One Drive, Jira…) et propose une API pour personnaliser la connexion à d’autres sources.

Concernant l’indexation d’un filesystem, nous avons sélectionné la solution fscrawler. Cette solution permet de parcourir un filesystem, définir des règles de filtrage, récupérer toutes les métadonnées d’un fichier et d’envoyer les résultats dans un index Elastic.

Enfin, nous avons utilisé des lambdas et une API Gateway chez AWS pour intégrer nos scripts de traitement des données appelés par Logstash lors de la phase d’enrichissement.

Cette architecture permet :

  • une évolutivité de la solution grâce à l’application Enterprise Search pour se connecter à toute nouvelle source de données ;
  • une transformation des données grâce à la chaîne de traitement définie dans Logstash qui s’appuie sur des traitements réalisés par des lambdas dans AWS ;
  • une visibilité analytique des données grâce à Kibana ;
  • un accès simplifié à l’information grâce à l’interface de recherche.

A travers ce POC, nous avons d’une part permis aux utilisateurs d’accéder aux ressources de l’entreprise à travers des options de recherche avancées telles que la recherche par mots-clés (avec tolérance et crosslinguisme), la navigation par facette, l’autocomplétion via la saisie et le choix de mots-clés relatifs à une ressource (mais pas forcément présents dans la ressource, le mot clé peut être hérité d’une autre ressource liée) mais également d’avoir une visibilité globale de l’information liée à une ressource et un accès direct vers tous les éléments pertinents qui sont en lien.