Ok Google, que peux-tu faire ? Aussi simple que soit votre question, un processus complexe s’exécute discrètement en arrière-plan pour vous apporter la meilleure réponse. Mais qu’est-ce qui décide de la meilleure réponse parmi toutes les réponses ? Autre réponse simple, l’apprentissage automatique. Mon équipe l’utilise pour résoudre les problèmes commerciaux les plus complexes de nos clients. Grâce à SAP Data Intelligence (DI) et à la Business Technology Platform de SAP, nous pouvons orchestrer les données et développer des pipelines d’apprentissage automatique complexes qui s’intègrent parfaitement aux systèmes SAP Enterprise Resource Planning (EPR). Cet article explorera comment nous avons utilisé l’algorithme de classement de recherche populaire Term Frequency – Inverse Document Frequency (TF-IDF) dans SAP DI pour créer des fonctionnalités de recherche de matériaux et de clients artificiellement intelligentes afin de faciliter et de simplifier la recherche de vos données.
L’une des principales préoccupations d’un grossiste est la capacité à vendre efficacement. Les grossistes traitent des commandes comprenant des milliers d’articles et gèrent des milliers de matériaux et de clients au sein de leurs systèmes ERP. Les commandes complexes nécessitent qu’un représentant commercial effectue des recherches dans des quantités massives de données sur les clients et/ou les matériaux au sein de leur système. Cela peut s’avérer fastidieux lorsque peu d’informations d’identification sont connues ou qu’une mauvaise description est fournie. De plus, les clients étiquetent souvent les matériaux différemment du système interne des fournisseurs. Parmi des centaines de matériaux similaires, comment trouver exactement ce dont votre client a besoin ? À l’automne 2020, un client a approché notre équipe avec le défi de créer un outil de recherche de matériaux artificiellement intelligent. Comme une recherche Google, mais pour leur base de données SAP interne (alias MARA).
L’équipe interne du client avait tenté de récupérer les documents en utilisant un système de classification hiérarchique des sujets dans lequel le matériel serait identifié en triant selon plusieurs classifications. Telle une clé dichotomique, un matériau, telle une grenouille exotique, pourrait être identifié selon ses caractéristiques uniques. Cependant, en raison de leur vaste ensemble de données matérielles et des mauvaises descriptions fournies par les clients, ils ont eu du mal à établir un système de classification suffisamment robuste pour classer les caractéristiques essentielles. De plus, il s’est avéré difficile pour le modèle d’interpréter une description dans laquelle les mots descriptifs n’interféreraient pas avec la reconnaissance de l’objet. Par exemple:
½” x 4 SMLS NIP Brass Pipe Ring, ½” 2000# Valve (TL Series) ½” SS Barstock Hex Plug
L’exemple de description ci-dessus aurait été mal interprété par le modèle d’entonnoir en identifiant Pipe Ring comme objet principal. Suivant la logique du système d’entonnoir, le modèle approfondirait la classification Ring pour mieux faire correspondre les caractéristiques. Cependant, cette description de matériau concerne un bouchon hexagonal qui appartiendrait à une classification totalement différente des matériaux de bouchon. Cette méthode signifiait que les matériaux suggérés provenaient d’une division totalement différente et étaient loin du matériel légitime.
Pour résoudre ces problèmes, notre équipe a utilisé Term Frequency – Inverse Document Frequency (TF-IDF), une fonctionnalité de la bibliothèque scikit-learn pour tokeniser et évaluer des mots individuels. En utilisant le paramètre token_pattern = r’\S+’, nous avons pu diviser le texte en fonction des espaces et de la ponctuation et tokeniser n’importe quel texte (une chaîne) d’une longueur de 1 ou plusieurs caractères alphanumériques. Nous avons ensuite utilisé le paramètre ngram_range=(1,2) pour accepter les jetons de signification d’unigrammes et de bigrammes, des chaînes composées d’un et de deux mots. Ces paramètres ont grandement amélioré notre capacité à spécifier exactement ce qui constitue et ne constitue pas un jeton. La suppression de chaînes alphanumériques uniques nettoie les données des jetons inutiles comme « a » et « » qui créent du bruit et diminuent les performances. De plus, les jetons contenant trois mots ou plus créent des jetons complexes qui diminuent les performances et vont à l’encontre de l’objectif de la tokenisation. Si une description matérielle de 8 mots est divisée en deux jetons différents, chacun contenant 4 mots, un quadgramme, il est peu probable que ces quadgrammes aient des correspondances identiques avec le système interne. Si vous divisez la description de 8 mots en 7 bigrammes, il est beaucoup plus probable qu’une correspondance directe soit établie L’exemple suivant montre la valeur de la définition de la plage n_gram sur (1, 2).
Descriptions du client :
Description 1: “10 PVC PIPE LG RADIUS 45 DEG STEEL YIELD PM”
Description 2: “ELBOW 45 DEG LG RADIUS STAINLESS STEEL HIGH YEILD PM”
Jetons :
10 PVC
PVC PIPE
PIPE LG
LG RADIUS
RADIUS 45
DEG STEEL
STEEL YIELD
YIELD PM
ELBOW 45
45 DEG
DEG LG
LG RADIUS
RADIUS STAINLESS
STAINLESS STEEL
STEEL HIGH
HIGH YIELD
L’utilisation des paramètres de TF-IDF pour tokeniser les descriptions de matériaux offre un avantage significatif en termes de performances en divisant le texte en petits morceaux. Ces morceaux sont beaucoup plus susceptibles d’être efficacement mis en correspondance que des descriptions entières. En divisant et en reformant les descriptions des matériaux, la recherche peut donner des résultats bien meilleurs que la tentative de recherche par entonnoir.
Une fois que les paramètres TF-IDF ont tokenisé la description, nous sommes en mesure de vectoriser les résultats. L’axe des x est représenté par les jetons. L’axe y est représenté par les descriptions des matériaux. Si un jeton est présent dans cette description de matériau, la matrice a un 1 entre la description et le jeton. Si ce n’est pas le cas, la valeur est 0. D’après l’exemple ci-dessus, la matrice ressemblerait à ceci :
Une fois nos descriptions symbolisées et leurs fréquences représentées par des 1 et des 0, nous pouvons appliquer des algorithmes pour mesurer et hiérarchiser les jetons en fonction de leur fréquence dans les descriptions.
L’algorithme mesure l’importance en comparant la fréquence d’un mot dans une description inversement à sa fréquence dans l’ensemble de données. Si un mot apparaît plusieurs fois dans une même description de matériau, l’algorithme le considérera comme plus important. Les mots qui apparaissent moins souvent dans une même description sont identifiés comme moins importants. La fréquence d’un mot dans une description est appelée fréquence du terme. Regardons un autre exemple :
VANNE À BILLE FLOTTANTE 3/4″ FILETÉE 3600 PSI PORT COMPLET CORPS EN INOX JOINTS EN GRAPHITE SIÈGES DELRIN LEVIER DE VERROUILLAGE EN INOX SÉCURISÉ INCENDIE SÉRIE OPER VALVE QUADRANT S3-SS S3FSSAFSLTTO75
La description du matériau ci-dessus contient le mot valve deux fois. Parce que sa fréquence dans cette description est de 2 et qu’elle est plus fréquente que tous les autres mots, l’algorithme considérera la valve comme plus importante. Encore une fois, 2 est le terme fréquence du mot valve.
TF-IDF considère également la fréquence d’un mot au sein du corpus. Le corpus est l’ensemble des données des descriptions de matériaux. Si un mot est commun dans le corpus, l’algorithme décidera qu’il est moins important. En PNL (traitement du langage naturel), cela est extrêmement utile pour identifier des mots comme « un » et « le » qui apparaissent fréquemment mais ne fournissent aucun contexte. De même, si le mot est très spécifique et rare dans le corpus, l’algorithme l’identifiera comme étant plus important. Revenons à notre exemple précédent, s’il s’agit de la seule description dans l’ensemble de données qui inclut le mot valve, elle sera considérée comme très importante. C’est ce qu’on appelle la fréquence des documents.
Vous vous en souvenez peut-être, le I dans TF-IDF signifie l’inverse. Cela signifie que l’algorithme compare la fréquence du terme à l’inverse de la fréquence du document. Si la fréquence des termes d’un mot est faible et la fréquence de ses documents est élevée, cela n’a pas d’importance. Si la fréquence des termes d’un mot est élevée et la fréquence de son document est faible, c’est très important. Encore avec moi? Voici le même concept écrit sous forme d’équation :
Fréquence des termes
_______________
Fréquence des documents
Comme vous pouvez le constater, TF-IDF joue un rôle énorme dans le traitement du langage naturel. La capacité à calculer l’importance d’un mot repose en grande partie sur la mesure de sa signification dans son contexte et dans son occurrence globale. L’utilisation de TF-IDF dans SAP DI crée des métriques qui peuvent être utilisées pour analyser plus en détail les descriptions des matériaux, ce qui nous permet de faire correspondre efficacement les données des matériaux et des clients dans les systèmes ERP. Ces capacités nous ont permis d’améliorer nos suggestions de résultats de recherche, d’améliorer la fonctionnalité de saisie anticipée et ont constitué la base du développement supplémentaire de l’IA, comme l’automatisation des saisies de bons de commande à l’aide d’outils de reconnaissance optique de caractères (OCR).