Faciliter le suivi du service client en classant automatiquement les motifs d'appel

@ Orange

Client

Après avoir présenté un premier projet de Machine Learning (ML), notre équipe s'est vue confier deux projets, dont celui-ci, réalisé pour le département du service client B2B d'Orange.

Enjeux

Suite à un appel au service client, les conseillers téléphoniques doivent renseigner la raison de l'appel dans une liste et résumer l'échange dans un champ de texte libre.

Le service client s'est alors rendu compte que les conseillers utilisaient à peine les 10 premiers éléments de la liste, car celle-ci étant trop longue et complexe et que les conseillers sont incités à travailler rapidement. Cependant, ils remplissaient généralement bien le champ de texte libre.

L'objectif du projet était d'utiliser ce champ de texte libre pour identifier automatiquement la raison de l'appel, économisant ainsi du temps pour le conseiller téléphonique et permettant un meilleur suivi des raisons d'appel et de leur évolution. Cela permettrait en particulier d'identifier rapidement et automatiquement les problèmes récurrents, afin de lancer des actions correctives.

Solution

Un Data Scientist avait déjà réalisé un MVP (Produit Minimum Viable) en Python et nous avons été chargés de l'industrialiser. Comme notre plateforme utilisait Spark/Scala, qui n'implémente pas les mêmes algorithmes, nous avons dû reconstruire entièrement le projet.

Il s'est avéré être autant un projet de Data Science que d'industrialisation.

Le projet a été conçu comme un problème de classification en traitement automatique du langage naturel (NLP).

Le département du service client avait constitué une liste de 5000 commentaires étiquetés. La création de cet ensemble de données a été très chronophage, mais restait une base d'apprentissage insuffisante pour obtenir des résultats satisfaisants.

Nous avons décidé de construire une sorte d'algorithme semi-supervisé où les prédictions du modèle pourraient être utilisées comme données d'apprentissage.

Résultats

Avant d'utiliser la boucle semi-supervisée, nous avons atteint une précision de 70 % sur les 22 principales étiquettes (couvrant 75 % des raisons d'appel).

Les améliorations les plus prometteuses consistaient à augmenter l'ensemble des données étiquetées avec la boucle semi-supervisée, avec ou sans vérification humaine, ou essayer de nouveaux algorithmes.

J'ai malheureusement changé de mission et passé le relai sur ce projet avant de savoir quelle serait la précision des algorithmes après ces améliorations.

Méthodes et Outils

Machine Learning, Apprentissage semi-supervisé, NLP, Naive Bayes, Hadoop, Hive, Scala, Spark, Spark ML, Spark MLlib.

Vous souhaitez échanger sur vos problématiques ou collaborer ?

>