Je suis relativement nouveau dans l'apprentissage automatique, j'ai déjà réalisé quelques projets en python. Je cherche des conseils sur la façon d'aborder le problème ci-dessous qui, je crois, pourrait être automatisé. Un utilisateur dans une équipe de qualité des données dans mon organisation a une tâche quotidienne de prendre une liste de noms de sociétés (avec des adresses) qui ont été saisis manuellement, il doit alors chercher une base de données de sociétés pour trouver le résultat correspondant, en utilisant son jugement - c.-à-d. pas de règle dure et rapide.Meilleure approche d'apprentissage automatique pour automatiser l'appariement texte/flou
Un exemple de l'entrée serait:
Nom de la société, Adresse Ligne 1, Pays
de cela, l'utilisateur prend le nom de l'entreprise et il entre dans l'outil de recherche. Où il est présenté avec une liste de résultats et il choisit le meilleur match, mais peut choisir de ne pas choisir n'importe quel match. L'outil de recherche est construit en interne et parle à une API externe, j'ai accès au code source afin que je puisse modifier l'outil de recherche pour capturer l'entrée, la liste des résultats, et je pourrais ajouter une case à cocher pour voir quel résultat a été utilisé , et une case à cocher pour signifier qu'aucun n'a été choisi. Par conséquent, cela deviendrait mes données d'entraînement étiquetées.
Les colonnes utilisées à partir des résultats pour rendre le jugement sont à peu près les mêmes:
Nom de la société, Adresse Ligne 1, Pays
Étant donné un nom de société comme Stack Overflow, les résultats peuvent retourner Stack Overflow Ltd ., Stacking Overflowing Shelves Ltd etc Les données d'entrée est raisonnablement bonne, de sorte que les résultats donnent généralement environ 10 matches, et pour un humain, il est assez évident lequel choisir. Je pense qu'avec suffisamment de données d'apprentissage, je pourrais appeler l'API directement avec le terme de recherche, puis choisir le résultat approprié dans la liste des résultats.
Est-ce quelque chose qui pourrait être atteint grâce à ML? Je me bats avec le fait que les données seront différentes à chaque fois. Les réflexions sur la meilleure façon d'y parvenir sont les bienvenues, en particulier comment structurer les données du modèle et quel type de classifieur utiliser.
Cela ressemble plus à une correspondance floue qu'à une classification de texte. Vous obtiendrez probablement des résultats de classification ML médiocres en raison d'un grand nombre d'étiquettes, ce qui correspond à tous les noms d'entreprise que vous souhaitez associer. – aberger
Merci, j'ai mis à jour la description.Je me demande s'il y a un moyen de donner les résultats d'un match flou en combinaison avec celui qui a été choisi pour l'améliorer. Il y a un peu de logique pour décider quel résultat prendre quand il y a des résultats similaires, ou multiples pour la même entreprise. Par exemple. ils prennent le siège social au-dessus de la branche d'une compagnie quand disponible, ce qui est signifié dans un autre domaine. –
Je suppose que cela peut également être perçu comme un problème de classification binaire, où pour chaque paire de descriptions de sociétés, vous devez répondre si elles correspondent à la même entreprise ou non. Les distances Levenshtein, tfidf ou ngrams peuvent être utilisées comme caractéristiques. Même si la solution est aussi simple que de choisir un seuil dans la distance de Levenshtein, ou d'appliquer une combinaison de mots d'arrêt/stop, il serait toujours bon d'utiliser l'approche ML pour choisir cette valeur seuil et mesurer la qualité de la classification. – Dienow