Was ist eine gute Methode für das Kurztext-Clustering?

15

Ich arbeite an einem Text-Clustering-Problem. Die Daten enthalten mehrere Sätze. Gibt es einen guten Algorithmus, der bei kurzen Texten eine hohe Genauigkeit erzielt?

Können Sie gute Referenzen vorlegen?

Algorithmen wie KMeans und Spectral Clustering funktionieren für dieses Problem nicht gut.

user3108764
quelle

Antworten:

10

Das hängt hauptsächlich davon ab, wie viel "State-of-the-Art" (SOTA) Sie wollen und wie tief Sie gehen möchten (Wortspiel beabsichtigt ...).

Wenn Sie nur mit flachen Worteinbettungen leben können, wie sie von word2vec, Glove oder fastText bereitgestellt werden, ist der Word Mover Distance (WMD [ja, wirklich ...]) eine gute Funktion zum Messen von (kurzen) Dokumententfernungen [1]. . Ich habe in der Vergangenheit sogar mehrere Python-Notizbücher gesehen, die "Tutorials" für diese Entfernungsmessung enthalten, so dass es wirklich einfach ist, loszulegen.

Wenn Sie sich jedoch mehr für SOTA interessieren, müssen Sie sich mit vertieftem Lernen (Sequenzdarstellung) befassen und eine Art wiederkehrendes Netzwerk verwenden, das ein Themenmodell aus Ihren Sätzen lernt. Zusätzlich zur Integration (semantischer) Einbettungen von Wörtern gehen diese Ansätze über den [guten, alten] "Bag-of-Word" -Ansatz hinaus, indem sie Themendarstellungen anhand der Abhängigkeiten lernender Wörter in den Sätzen. Zum Beispiel ist das SLRTM (Recurrent Topic Model) auf Satzebene ein ziemlich interessantes, tiefgreifendes, wiederkehrendes Modell, das auf den Ideen der traditionelleren LDA (von Blei et al.) Oder LSA (Landauer et al.) Basiert, aber es ist nur ein arXiv Papier (daher sollten alle Standard-Warnhinweise zu nicht von Fachleuten geprüften Forschungsergebnissen ("take this with a grain of salt") zutreffen ...) [2]. Nichtsdestotrotz hat das Papier viele ausgezeichnete Hinweise und Referenzen, um Ihre Recherchen in Gang zu bringen, falls Sie dieses Kaninchenloch hinunter wollen.

Schließlich sollte klargestellt werden, dass ich nicht behaupte, dass dies die vereinbarten Methoden mit der besten Leistung für Wortsäcke bzw. Sequenzmodelle sind. Aber sie sollten Sie in die Nähe der "besten" SOTA bringen und zumindest als hervorragender Ausgangspunkt dienen.

[1] Matt J. Kusner et al. Von Word-Einbettungen zu Dokumententfernungen. Tagungsband der 32. Internationalen Konferenz für maschinelles Lernen, JMLR, 2015.

[2] Fei Tian et al. SLRTM: Themen für sich sprechen lassen. arXiv 1604.02038, 2016.

fnl
quelle
Ich habe versucht, word2vec und es funktioniert nicht gut für kurze Texte.
Enthusiast
Nur um sicherzugehen: Meine Antwort oben empfiehlt nicht, word2vec (allein) für das Clustering von Kurztext zu verwenden. Es wird vielmehr empfohlen, WMD (über eingebettete Vektoren) und / oder Deep Learning-Methoden zu verwenden. (Wenn Sie jedoch Ihre eigenen Vektoren trainieren können, erhalten Sie mit ihnen allein sehr gute Ergebnisse, wenn Sie die Soft- Cosine-Ähnlichkeit verwenden, zumindest für einen "funktionsfähigen Prototyp".)
fnl
-1

https://github.com/RandyPen/TextCluster
Dies ist eine Cluster-Methode für Kurztext, die KMeans usw. übertrifft. Nein Latente Variablennummer muss festgelegt werden.
Die Grundidee ist, den Satz in Worte zu fassen. Dann je nach Textkomponente direkt zu einem anderen Bucket. Berechnen Sie in jedem Bucket die Ähnlichkeit zwischen dem Satz und dem Bucket. Wenn der Ähnlichkeitswert höher als ein bestimmter Wert ist, hängen Sie diesen Satz in diesen Bereich ein, andernfalls suchen Sie nach dem nächsten Bereich.

Basic

geiler Stift
quelle
Sie müssen Ihre Antwort ausarbeiten. Zitieren Sie nicht einfach einen Link.
Michael R. Chernick