2017-01-31 2 views
1

Ich bin ein Neuling im Text Mining, hier ist meine Situation. Angenommen, ich habe eine Liste von Wörtern ['Auto', 'Hund', 'Welpe', 'Fahrzeug'], ich möchte Wörter in k Gruppen gruppieren, ich möchte die Ausgabe sein [['Auto', 'Fahrzeug "], [" Hund "," Welpe "]]. Ich berechne zuerst den Ähnlichkeits-Score jedes paarweisen Wortes, um eine 4x4-Matrix (in diesem Fall) M zu erhalten, wobei Mij der Ähnlichkeits-Score von Wort i und j ist. Nach der Umwandlung der Wörter in numerische Daten verwende ich verschiedene Clustering-Bibliothek (wie sklearn) oder implementieren Sie es selbst, um das Wort Cluster zu bekommen.Clustering Liste der Wörter in Python

Ich möchte wissen, macht dieser Ansatz Sinn? Außerdem, wie ermittle ich den Wert von k? Noch wichtiger, ich weiß, dass es verschiedene Clustering-Techniken gibt, ich denke darüber nach, ob ich k-means oder k-medoids für Word-Clustering verwenden soll.

+1

Welche Art von Ähnlichkeit möchten Sie berechnen? Die Ähnlichkeit der Schriftzeichen (z. B. "Rock" sehr ähnlich zu "Uhr") oder die Ähnlichkeit der Bedeutung des Wortes (z. B. "Hund" sehr ähnlich wie "Welpe")? –

+0

@Marcel P wahrscheinlich die Ähnlichkeit der Bedeutung der Wörter –

+0

Und wie würden Sie das berechnen? Es gibt keine Gleichung für "Bedeutung". –

Antwort

1

Wenn Sie Wörter nach ihrer "semantischen Ähnlichkeit" gruppieren wollen (d. H. Ähnlichkeit ihrer Bedeutung), schauen Sie sich Word2Vec und GloVe an. Gensim hat eine Implementierung für Word2Vec. Auf dieser Webseite, "Word2Vec Tutorial" von Radim Rehurek, finden Sie eine Anleitung zur Verwendung ähnlicher Wörter in Word2Vec.

0

die Antwort von Brian O'Donnell Anknüpfend, sobald Sie die semantische Ähnlichkeit mit word2vec berechnet haben (oder FastText oder GLoVE, ...), dann können Sie Cluster unter Verwendung der Matrix sklearn.clustering. Ich habe festgestellt, dass für kleine Matrizen spektrale Clustering die besten Ergebnisse liefert.

Es sollte beachtet werden, dass die Wortvektoren oft auf einer hochdimensionalen Kugel eingebettet sind. K-Mittel mit einer euklidischen Abstandsmatrix können dies nicht erfassen und können zu schlechten Ergebnissen für die Ähnlichkeit von Wörtern führen, die keine unmittelbaren Nachbarn sind.

0

Hinzufügen zu was bereits gesagt wurde in Bezug auf Ähnlichkeit Punktzahl k in Clustering-Anwendungen in der Regel unterstützt wird durch scree plots (auch bekannt als eine "Ellbogen-Kurve"). In diesen Plots haben Sie normalerweise ein gewisses Maß an Streuung zwischen den Clustern auf der Y-Achse und der Anzahl der Cluster auf der X-Achse. Wenn Sie das Minimum (zweite Ableitung) der Kurve im Scree-Plot ermitteln, erhalten Sie ein objektiveres Maß für die "Eindeutigkeit" des Clusters.