Il est des noms qui traversent les générations. Caterpillar est de cela. Premier fabricant mondial d'équipement de construction et d'exploitation minière, de moteurs diesel et à gaz naturel, de turbines à gaz et de locomotives diesel-électriques, la société est connue aussi pour sa ligne de chaussures et sa présence dans les James Bond. Mais c'est bien sur son activité de fabricant de machines que porte la problématique.
Les équipements ont besoin de réparation et à chaque intervention le technicien crée un document de garantie qui enregistre la demande, l'analyse du problème et sa solution. L'entreprise dispose ainsi d'un référentiel de documents techniques à grande échelle. Ce grand volume de données était de bonne qualité, mais il était nécessaire de la connecter avec de nombreuses données hétérogènes. L'objectif était donc de tirer de la valeur des 27 millions de documents de Caterpillar. Pour cela, la société explore depuis une dizaine d'années le traitement du langage naturel (TLN) à des fins de gestion de maintenance des véhicules et de la chaîne d'approvisionnement, avec plus ou moins de succès. « Nous voulions créer un système permettant de poser n'importe quelle question tant qu'elle restait dans le domaine », explique Ryan Chandler, data scientist en chef chez Caterpillar. Il ajoute, « il fallait mettre au point un système de dialogue pour tester l'utilisation des graphes, présenter une interface utilisateur ouverte capable de répondre aux questions et développer une fonction d'interface vocale homme-machine ».
Une orientation vers les graphes
Les graphes sont au coeur de la problématique du traitement du langage. Les plus utilisées sont l'analyse des liens entre le verbe et les autres mots qui s'y réfèrent, soit par l'utilisation d'un arbre syntaxique. Caterpillar a retenu Neo4j pour les structures de données des graphes afin de créer un modèle de logique de connaissances. Cette alternative NoSQL aux bases de données relationnelles a permis d'établir des ontologies et de faire des déductions. Pour passer du langage naturel aux résultats d'une requête de graphes, l'équipe a mis au point une architecture de données qui intègre le texte via une boîte à outils open source de TLN qui utilise Python pour combiner les phrases en chaînes, ajuster les limites et ne pas tenir compte du texte inutile. Les données sont également importées depuis les systèmes ERP SAP et non SAP. Le système comprend aussi WordNet comme dictionnaire lexicographique pour la définition des mots, l'analyseur syntaxique de Stanford analyse le texte. De son côté, Neo4j identifie les motifs et les relations, établit les hiérarchies et ajoute les ontologies.
Avec le soutien de Neo4j, Caterpillar a pu créer un outil de TLN évolutif pour révéler les tendances et améliorer l'efficacité des réparations et de la maintenance. La société peut maintenant effectuer des recherches parmi des millions de documents. De même, elle peut relier la cause à l'effet et identifier des questions à un niveau plus approfondi. Pour Ryan Chandler, « l'enjeu du dialogue en langage naturel entre l'homme et la machine va sans doute porter sur l'analytique et le mécanisme pour y parvenir est le traitement du langage naturel, une adéquation idéale aux bases de données de graphes ».