Ce projet met en œuvre l'algorithme d'échantillonnage GIBBS pour un modèle de mélange Dirichlet de Yin et Wang 2014 pour le regroupement de documents texte courts. Quelques avantages de cet algorithme:
K sur le nombre de clustersCe projet est une implémentation de référence facile à lire de GSDMM - je ne prévois pas le maintenir à moins qu'il n'y ait une demande. Je maintiens cependant activement la version rouille beaucoup plus rapide de GSDMM ici.
Dans leur article, les auteurs introduisent un modèle conceptuel simple pour expliquer le GSDMM appelé le processus de groupe de films.
Imaginez qu'un professeur dirige une classe de film. Au début de la classe, les élèves sont assignés au hasard aux tables K Avant le début des cours, les élèves font des listes de leurs films préférés. Le professeur lit à plusieurs reprises le rôle de classe. Chaque fois que le nom de l'élève est appelé, l'étudiant doit sélectionner un nouveau tableau satisfaisant l'une ou les deux conditions suivantes:
En suivant ces étapes de manière cohérente, nous pourrions nous attendre à ce que les étudiants finissent par arriver à une configuration de table "optimale".
Pour utiliser un processus de groupe de films pour regrouper des textes courts, initialisez d'abord un film GROUPPROCESS:
from gsdmm import MovieGroupProcess
mgp = MovieGroupProcess ( K = 8 , alpha = 0.1 , beta = 0.1 , n_iters = 30 ) Il est important de toujours choisir K pour être plus grand que le nombre de clusters que vous attendez dans vos données, car l'algorithme ne peut jamais retourner plus que les clusters K
Pour s'adapter au modèle:
y = mgp . fit ( docs ) Chaque document dans docs doit être une liste unique de jetons trouvés dans votre court document texte. Cette implémentation ne prend pas en charge le comptage des jetons avec la multiplicité (qui a généralement peu de valeur dans les documents texte courts).