Künstliche Intelligenz beobachten Beschwerden


Jede Finanzorganisation ist ein lebender Organismus und die darin enthaltenen Prozesse sind unvollkommen. Prozessmängel führen zu Unzufriedenheit der Kunden, die sich sogar in Beschwerden verwandeln kann. In diesem Artikel werden wir über unseren Beitrag zum Automatisierungsprozess sprechen, indem wir ein kleines Projekt für maschinelles Lernen implementieren.

Sie können versuchen, jede schwierige Aufgabe mit einfachen Methoden zu lösen, und maschinelles Lernen ist keine Ausnahme.

Feedback ist die wertvollste Information, daher sollten Sie jedes Detail so genau wie möglich studieren. Bei der Analyse von Kundenbeschwerden sehen wir objektiv, bei welchen Geschäftsprozessproblemen Probleme auftreten. Da Prozesse häufig miteinander verbunden sind, können sie gruppiert und als Gruppe betrachtet werden. Dementsprechend kommen wir zur Standardaufgabe für maschinelles Lernen (ML) - „Klassifizierung mehrerer Klassen“. Als Ergebnis dieser Analyse ist die Aufgabe gelöst - die Sammlung konsolidierter Analysen für das Unternehmen.

Die Klassifizierungsaufgabe ist eine Aufgabe, bei der viele Objekte auf bestimmte Weise in Klassen unterteilt sind. Bei der Klassifizierung mehrerer Klassen muss die Anzahl der Klassen mehr als 2 betragen und kann sogar viele Tausend erreichen.

Daten zu Beschwerden und Antworten auf diese werden auf dem Server gespeichert, der Prozess des Entladens und der Vorverarbeitung wird standardmäßig durch eine Anforderung an die Datenbank ausgeführt. Am Ausgang erhalten wir einen Datenrahmen mit den Daten, mit denen wir arbeiten werden. Die Beschwerde und die Antwort darauf sind recht langwierige Dokumente. Beispielsweise kann die Antwort auf eine Beschwerde Hunderte oder sogar Tausende von Wörtern umfassen. Die direkte Verarbeitung eines solchen Textes ist sehr rechenintensiv (rechnerisch), weshalb eine Textvorverarbeitung erforderlich ist.

def review_to_wordlist(review):
       		review_text = re.sub('[^--]',' ', review)
       		words = review_text.strip().lower().split()
       		words = [w for w in words if not w in stop_words] 
       		words = [morph.parse(w)[0].normal_form for w in words]
       		new_stop_words = find_names(words)
       		words = [w for w in words if not w in new_stop_words]
       		return words

Die Genauigkeit gemäß dem Modell hängt im Wesentlichen von der Eindeutigkeit des Textes ab. Daher müssen Wörter aus dem Text entfernt werden, die nicht viel Bedeutung haben - „Stoppwörter“. Normalerweise enthält die Zusammensetzung von Wörtern Präpositionen, Konjunktionen und andere unbedeutende Wortarten. Wir haben auch das Stoppwortwörterbuch mit Vor- und Nachnamen ergänzt.

def find_names(words, prob_thresh = 0.4):
    words = [w for w in words if 'str' in str(type(w))]
    add_stop_words = [w for w in words for p in morph.parse(w) if 'Name' in p.tag and
    p.score >= prob_thresh]
    stop_words.update(add_stop_words)
    return stop_words

Vor der Durchführung des Projekts wurde die Klassifizierung manuell durchgeführt, daher haben wir Daten, die von Experten markiert wurden. Und dies ist eine klassische ML-Unterrichtsaufgabe mit einem Lehrer. Der vorverarbeitete Text wird auf eine Ansicht reduziert, die das Modell verarbeiten kann. Dazu übersetzen wir die Antworten auf Beschwerden in Merkmalsvektoren (die im Code verwendete unabhängige Variable sind Merkmale, die abhängige Variable sind Bezeichnungen).

tfidf = TfidfVectorizer(sublinear_tf=True, min_df=5, norm='l2', encoding='utf8',  
    ngram_range=(1, 2), stop_words=stop_words)
features = tfidf.fit_transform(df_temp['Consumer_complaint_narrative'])
labels = df_temp['Num_bp']

Die Klassifizierung des linearen Unterstützungsvektors wird für die Klassifizierung ausgewählt. Dies wurde aus folgenden Gründen durchgeführt:

  • hohe Effizienz bei Arbeiten mit großen Abmessungen;
  • stabile Arbeit bei Übermaß an Abmessungen über die Anzahl der Proben.

Dieses Projekt wurde für die Umsetzung im Abschlussball vorbereitet. Das Modell führt jeden Tag die Klassifizierung der während des Arbeitstages eingegebenen Daten durch. In der Anfangsphase wird eine zusätzliche manuelle Überprüfung der Modellarbeit durch einen Experten vorausgesetzt. Einmal im Monat wird das Modell umgeschult. Die Umsetzung dieses Projekts hat es uns ermöglicht, der Zukunft einen Schritt näher zu kommen!

All Articles