Dieses Projekt implementiert den Gibbs -Stichprobenalgorithmus für ein Dirichlet -Mischmodell von Yin und Wang 2014 für die Clusterbildung von kurzen Textdokumenten. Einige Vorteile dieses Algorithmus:
K für die Anzahl der ClusterDieses Projekt ist eine leicht zu lesende Referenzimplementierung von GSDMM - ich habe nicht vor, es aufrechtzuerhalten, es sei denn, es gibt Nachfrage. Ich pflege jedoch aktiv die viel schnellere Rost -Version von GSDMM.
In ihrer Arbeit stellen die Autoren ein einfaches konzeptionelles Modell ein, um das GSDMM mit dem Namen Movie Group Process zu erklären.
Stellen Sie sich vor, ein Professor führt eine Filmklasse an. Zu Beginn der Klasse werden die Schüler zufällig K -Tabellen zugeordnet. Bevor der Unterricht beginnt, erstellen die Schüler Listen ihrer Lieblingsfilme. Der Professor liest wiederholt die Klassenrolle. Jedes Mal, wenn der Name des Schülers aufgerufen wird, muss der Schüler eine neue Tabelle auswählen, die eine oder beide der folgenden Bedingungen erfüllt:
Wenn wir diese Schritte konsequent befolgen, können wir erwarten, dass die Schüler schließlich zu einer "optimalen" Tabellenkonfiguration gelangen.
Um einen Filmgruppenprozess zu verwenden, um kurze Texte zu klusterieren, initialisieren Sie zuerst einen Filmgroupprocess:
from gsdmm import MovieGroupProcess
mgp = MovieGroupProcess ( K = 8 , alpha = 0.1 , beta = 0.1 , n_iters = 30 ) Es ist wichtig, immer K zu wählen, um größer zu sein als die Anzahl der in Ihren Daten erwarteten Cluster, da der Algorithmus niemals mehr als K -Cluster zurückkehren kann.
Zum Modell zu passen:
y = mgp . fit ( docs ) Jeder Dokument in docs muss eine eindeutige Liste von Token sein, die in Ihrem kurzen Textdokument enthalten sind. Diese Implementierung unterstützt keine Zählungstoken mit Multiplizität (die in kurzen Textdokumenten im Allgemeinen nur wenig Wert aufweist).