Besser text-Dokumenten-clustering als tf/idf-und Cosinus-ähnlichkeit?
Ich versuche, die cluster der Twitter-stream. Ich möchte jeden tweet zu einem cluster, dass reden über das gleiche Thema. Ich habe versucht, zu cluster-stream mit einem online-clustering-Algorithmus mit tf/idf-und Cosinus-ähnlichkeit, aber ich fand, dass die Ergebnisse sind ziemlich schlecht.
Die wichtigsten Nachteile der Verwendung von tf/idf ist, dass es Cluster von Dokumenten, die keyword-ähnlich, so es ist nur gut zu identifizieren, die in der Nähe von identischen Dokumenten. Betrachten Sie beispielsweise die folgenden Sätze:
1 - Die Webseite Stackoverflow ist ein schöner Ort.
2 - Stackoverflow ist eine Webseite.
Den prevoiuse zwei Sätze, die wahrscheinlich von gruppierten zusammen mit einer angemessenen Schwellenwert, da Sie eine Menge Schlüsselwörter. Aber betrachten wir nun die folgenden zwei Sätze:
1 - Die Webseite Stackoverflow ist ein schöner Ort.
2 - ich Besuche Stackoverflow regelmäßig.
Nun mittels tf/idf der clustering-Algorithmus wird kläglich scheitern, weil Sie nur teilen ein keyword sogar tho Sie beide sprechen über das gleiche Thema.
Meine Frage: gibt es bessere Techniken, um cluster von Dokumenten?
- naja, TF-IDF soll ein gewichtungsschema, das bringt mehr Gewicht auf die relevanten keywords bereits. Wenn die Figur das problem ist, dass die tweets nur so winzig kleine text-Fragmente, können Sie nicht erwarten, dass die ähnlichkeit sehr gut zu funktionieren, auf die Sie über "in der Nähe Identität". Die meisten tweets sind nicht einmal vollständige Sätze, so NLP wird wahrscheinlich auch fehlschlagen.
- Eine Sache zu beobachten, mit LSI / LDA / NMF etc. ist Thema drift. Training eines Modells auf einen bekannten Datensatz erzielen Sie gute Ergebnisse, wenn Sie Ihre pipeline nicht korrekt ausgeführt wird. Wenn Sie dann anwenden, um das Modell in einen völlig unsichtbar dataset können Sie sehen, deutlicher Rückgang in der Leistung aufgrund der Montage der originalen Trainingsdaten. Wegen Twitter-text ist so kurz die Darstellung, müssen Sie ein wenig hantieren, da kann es nicht genug text zu trainieren, ein Modell richtig.
- gibt es irgendwelche Lösungen dafür?
- hat der Benutzer es kommt keinerlei Auswirkungen haben?
- was meinst du?
- Wird Sie nur als den text der Tweets, oder die person, oder Sie haben Informationen über die Nutzer vorherigen tweets der gut?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Meiner Erfahrung, Kosinus-ähnlichkeit auf latente semantische Analyse (LSA/LSI) Vektoren funktioniert viel besser als raw tf-idf für text-clustering, obwohl ich zugeben, ich habe nicht versucht es auf Twitter-Daten. Insbesondere neigt Sie zu kümmern, das sparsity problem, dass man begegnen, in denen die Dokumente einfach nicht genug enthalten Allgemeine Begriffe.
Thema Modelle wie LDA könnte sogar noch besser funktionieren.
Wie bereits in anderen Kommentaren und Antworten. Mit LDA geben können, der gute tweet->Thema GEWICHTE.
Wenn diese GEWICHTE sind unzureichend clustering für Ihre Bedürfnisse, die Sie sehen konnte clustering diese Thema Distributionen mittels eines clustering-Algorithmus.
Während es Trainings-set abhängige LDA könnte leicht Bündel tweets mit stackoverflow -, stack-überlauf stack-überlauf in das gleiche Thema. Aber "mein Stapel von Kisten ist, darüber überlauf" könnte gehen, statt in ein weiteres Thema, über Boxen.
Weiteres Beispiel: Ein tweet mit dem Wort Apple könnte gehen in einer Reihe von verschiedenen Themen (das Unternehmen, die Obst, New York und andere). LDA Aussehen würde, auf der anderen Wörter in den Tweets, um zu bestimmen, die entsprechenden Themen.
Lange Antwort:
TfxIdf ist derzeit einer der bekanntesten such-Methode. Was Sie brauchen, sind einige Vorverarbeitung aus der Natürlichen Sprache Processing (NLP). Es gibt eine Menge von Ressourcen, die helfen können Sie für Englisch (z.B. die lib 'nltk' in python).
Müssen Sie die NLP-Analyse sowohl auf Ihrem Problemfall (Fragen) und auf Ihre Dokumente vor der Indizierung.
Der Punkt ist : während die tfxidf (oder tfxidf^2 wie in lucene) ist gut, sollten Sie es auf die kommentierte Ressource-meta-Linguistik Informationen. Das kann hart sein und erfordert umfangreiches wissen über Ihre Kern-Suchmaschine, grammatische Analyse (syntax) und die Domäne des Dokuments.
Kurze Antwort : Die bessere Methode ist die Verwendung TFxIDF mit Licht Grammatik NLP Anmerkungen, und beide re-write-Abfrage und Indizierung.