Verwendung von NLP zur Automatisierung der Kategorisierung der Benutzerbeschreibung

8

Ich habe eine große Anzahl von Kundenbeschwerden über die Produkte, die mein Unternehmen besitzt, und ich möchte eine Datenanalyse dieser Beschreibungen durchführen und jedem von ihnen eine Kategorie zuordnen.

Beispiel: Ich muss die Anzahl der Beschwerden auf der Software- und Hardwareseite meines Produkts anhand der Kundenbeschwerden ermitteln. Derzeit verwende ich Excel für die Datenanalyse, bei der ein erheblicher manueller Arbeitsaufwand erforderlich ist, um einen Tag-Namen für die Beschwerden zu erhalten.

Gibt es in NLP eine Möglichkeit, ein Modell zur Automatisierung dieses Prozesses zu erstellen und zu trainieren? Ich habe in den letzten Tagen Artikel über NLP gelesen und es sieht so aus, als ob NLP viele gute Funktionen hat, um einen Vorsprung bei der Lösung dieses Problems zu erlangen. Könnte mich bitte jemand anleiten, wie ich NLP verwenden sollte, um dieses Problem zu beheben?

SRS
quelle
Hast du Programmierkenntnisse? Es gibt viele Möglichkeiten, dies zu tun. Ich kann hoffentlich etwas vorschlagen, das auf etwas basiert, das Sie in der Vergangenheit verwendet haben.
Sheldonkreger
Ich habe gute Kenntnisse in Java. Ich habe R für einige Data Mining-Aufgaben verwendet. Derzeit studiere ich Python für die Verwendung von NLP.
SRS

Antworten:

6

Eine Möglichkeit, dies zu handhaben, ist die Verwendung einer überwachten Klassifizierung. In diesem Modell klassifizieren Sie eine Teilmenge der Daten manuell und trainieren damit Ihren Algorithmus. Anschließend geben Sie die verbleibenden Daten in Ihre Software ein, um sie zu klassifizieren.

Dies wird mit NLTK für Python (nltk.org) erreicht.

Wenn Sie einfach nach Zeichenfolgen wie "Hardware" und "Software" suchen, ist dies ein einfacher Anwendungsfall, und Sie werden wahrscheinlich mit einem "Feature-Extraktor" anständige Ergebnisse erzielen, der Ihren Klassifizierer darüber informiert, welche Ausdrücke im Dokument relevant sind.

Es ist zwar möglich, eine automatisierte Methode zum Auffinden der Schlüsselwörter zu implementieren, es scheint jedoch, als hätten Sie bereits eine Liste im Sinn, sodass Sie diesen Schritt überspringen und nur die Tags verwenden können, die Ihnen bekannt sind. (Wenn Ihre Ergebnisse beim ersten Mal nicht zufriedenstellend sind, können Sie dies später versuchen.)

Das ist eine Übersicht für den Einstieg. Wenn Sie mit den ersten Ergebnissen nicht zufrieden sind, können Sie Ihren Klassifikator verfeinern, indem Sie komplexere Methoden wie Satzsegmentierung, Identifizierung von Dialogakttypen und Entscheidungsbäume einführen. Der Himmel ist die Grenze (oder wahrscheinlicher, Ihre Zeit ist die Grenze)!

Weitere Infos unter:

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

sheldonkreger
quelle
Diese grundlegende Strategie würde auch funktionieren, wenn Sie ein NLP-Toolkit in einer anderen Ihnen bekannten Sprache wie Java gefunden haben. Mit denen bin ich einfach nicht vertraut.
Sheldonkreger
1

Sheldon ist richtig, dies klingt nach einem ziemlich typischen Anwendungsfall für die überwachte Klassifizierung. Wenn alle Ihre Kundenbeschwerden entweder Software oder Hardware sind (dh null Einzelbeschwerden decken beide Kategorien ab und Null außerhalb dieser beiden Klassen), benötigen Sie lediglich einen binären Klassifizierer, der die Dinge einfacher macht, als sie es sonst könnten.

Wenn Sie nach einem Java-basierten NLP-Toolkit suchen, das so etwas unterstützt, sollten Sie sich den Stanford Classifier ansehen : http://nlp.stanford.edu/software/classifier.shtml - es ist als Open Source-Software unter lizenziert die GPL.

Die Wiki-Seite soll Ihnen den Einstieg in die Verwendung des Klassifikators erleichtern : http://www-nlp.stanford.edu/wiki/Software/Classifier - denken Sie daran, dass Sie eine große Stichprobe Ihrer Daten manuell als kommentieren müssen Trainingsset, wie Sheldon erwähnte.

Charlie Greenbacker
quelle
Die Software- / Hardware-Klassifizierung entspricht der Beispielaufgabe, mit der ich versucht habe, mit der Kategorisierung zu arbeiten. Ich habe mehrere andere Kategorien im Kopf, die ein tiefes Verständnis dessen, was mit den Produkten nicht stimmt, benötigen, indem sie den Fall des Kunden lesen und die entsprechende Kategorie markieren. Ich habe angefangen, NLPTK mit Python zu lesen, aber ich möchte wissen, nach welchen Funktionen ich suchen sollte, um diesen Fall anzugehen
SRS
Dies ist keine einfache Sache, nach magischen Funktionen zu suchen. Sie möchten einen Klassifikator mithilfe von überwachtem maschinellem Lernen erstellen. Dies sind die Schritte ... 1. Kommentieren Sie ein Beispiel Ihrer Daten manuell als Trainingssatz, 2. Extrahieren Sie Features aus Ihren Daten, um sie zu trainieren (für Text kann dies etwa ngrams sein), 3. Erstellen Sie das Klassifikatormodell mit eine Bibliothek für maschinelles Lernen, 4. das Klassifikatormodell auf neue Daten anwenden. Einige Bibliotheken wie Stanford Classifier helfen Ihnen bei den Schritten 2 und 3.
Charlie Greenbacker