Utilisation de la PNL pour automatiser la catégorisation de la description utilisateur

8

J'ai un énorme fichier de plaintes de clients concernant les produits que ma société possède et je voudrais faire une analyse des données sur ces descriptions et étiqueter une catégorie pour chacune d'entre elles.

Par exemple: je dois déterminer le nombre de réclamations côté logiciel et matériel de mon produit à partir des réclamations clients. Actuellement, j'utilise Excel pour faire l'analyse des données qui cherche une quantité importante de travail manuel pour obtenir un nom de tag pour les plaintes.

Existe-t-il un moyen dans la PNL de construire et de former un modèle pour automatiser ce processus? J'ai lu des trucs sur la PNL au cours des derniers jours et il semble que la PNL ait beaucoup de bonnes fonctionnalités pour prendre une longueur d'avance dans la résolution de ce problème. Quelqu'un pourrait-il me guider sur la façon d'utiliser la PNL pour résoudre ce problème?

SRS
la source
Avez-vous des compétences en programmation? Il existe de nombreuses façons de le faire, je peux suggérer quelque chose, espérons-le, basé sur quelque chose que vous avez utilisé dans le passé.
sheldonkreger
J'ai une bonne connaissance en Java. J'ai utilisé R pour quelques tâches d'exploration de données. Actuellement, j'étudie Python pour utiliser la PNL.
SRS

Réponses:

6

Une façon de gérer cela est d'utiliser la «classification supervisée». Dans ce modèle, vous classifiez manuellement un sous-ensemble des données et l'utilisez pour entraîner votre algorithme. Ensuite, vous introduisez les données restantes dans votre logiciel pour les classer.

Ceci est accompli avec NLTK pour Python (nltk.org).

Si vous recherchez simplement des chaînes comme "matériel" et "logiciel", il s'agit d'un cas d'utilisation simple, et vous obtiendrez probablement des résultats décents en utilisant un "extracteur de fonctionnalités", qui informe votre classificateur des phrases du document qui sont pertinentes.

Bien qu'il soit possible d'implémenter une méthode automatisée pour trouver les mots clés, il semble que vous ayez déjà une liste en tête, vous pouvez donc ignorer cette étape et simplement utiliser les balises que vous connaissez. (Si vos résultats ne sont pas satisfaisants la première fois, c'est quelque chose que vous pourriez essayer plus tard).

Voilà un aperçu pour commencer. Si vous n'êtes pas satisfait des résultats initiaux, vous pouvez affiner votre classificateur en introduisant des méthodes plus complexes, telles que la segmentation des phrases, l'identification des types d'actes de dialogue et les arbres de décision. Le ciel est la limite (ou plus probablement, votre temps est la limite)!

Plus d'infos sur:

http://www.nltk.org/book/ch06.html

sheldonkreger
la source
Cette stratégie de base fonctionnerait également si vous trouviez une boîte à outils PNL dans une autre langue que vous connaissez, comme Java. Je ne les connais tout simplement pas.
sheldonkreger
1

Sheldon est correct, cela ressemble à un cas d'utilisation assez typique pour une classification supervisée. Si toutes vos réclamations clients sont logicielles ou matérielles (c.-à-d. Zéro réclamation individuelle couvre les deux catégories et zéro en dehors de ces deux classes), alors tout ce dont vous avez besoin est un classificateur binaire, ce qui rend les choses plus simples qu'elles ne le seraient autrement.

Si vous recherchez une boîte à outils NLP basée sur Java qui prend en charge quelque chose comme ça, vous devriez consulter le classificateur Stanford: http://nlp.stanford.edu/software/classifier.shtml - il est autorisé en tant que logiciel open source sous la GPL.

Leur page wiki devrait vous aider à commencer à utiliser le classificateur: http://www-nlp.stanford.edu/wiki/Software/Classifier - gardez à l'esprit que vous devrez annoter manuellement un grand échantillon de vos données en tant que ensemble d'entraînement, comme Sheldon l'a mentionné.

Charlie Greenbacker
la source
La classification des logiciels / matériels est comme l'exemple de tâche que j'ai essayé de travailler avec la catégorisation. Il y a plusieurs autres catégories qui me viennent à l'esprit qui prendraient une compréhension approfondie de ce qui ne va pas avec les produits, en lisant le cas du client et en étiquetant la catégorie appropriée. J'ai commencé à lire NLPTK en utilisant python mais j'aimerais savoir le type de fonctions que je devrais rechercher pour résoudre ce cas
SRS
Ce n'est pas une simple question de rechercher des fonctions magiques. Ce que vous voulez faire, c'est construire un classificateur en utilisant l'apprentissage automatique supervisé. Ce sont les étapes ... 1. annoter manuellement un échantillon de vos données en tant qu'ensemble de formation, 2. extraire des fonctionnalités de vos données pour vous entraîner (pour le texte, cela pourrait être quelque chose comme ngrams), 3. construire le modèle de classificateur en utilisant une bibliothèque d'apprentissage automatique, 4. appliquer le modèle de classificateur aux nouvelles données. Certaines bibliothèques comme Stanford Classifier vous aideront avec les étapes 2 et 3.
Charlie Greenbacker