Este projeto implementa o algoritmo de amostragem de Gibbs para um modelo de mistura Dirichlet de Yin e Wang 2014 para o agrupamento de documentos de texto curto. Algumas vantagens deste algoritmo:
K no número de clustersEste projeto é uma referência fácil de ler a implementação do GSDMM - não pretendo mantê -lo, a menos que haja demanda. No entanto, estou mantendo ativamente a versão de ferrugem muito mais rápida do GSDMM aqui.
Em seu artigo, os autores introduzem um modelo conceitual simples para explicar o GSDMM chamado Processo de Grupo de Cilme.
Imagine um professor liderando uma aula de cinema. No início da turma, os alunos são designados aleatoriamente para as tabelas K Antes do início das aulas, os alunos fazem listas de seus filmes favoritos. O professor lê repetidamente o papel da classe. Cada vez que o nome do aluno é chamado, o aluno deve selecionar uma nova tabela que satisfaça uma ou ambas as seguintes condições:
Seguindo essas etapas de forma consistente, podemos esperar que os alunos cheguem a uma configuração de tabela "ideal".
Para usar um processo de grupo de cinema para agrupar textos curtos, inicialize primeiro um filmegrouppprocess:
from gsdmm import MovieGroupProcess
mgp = MovieGroupProcess ( K = 8 , alpha = 0.1 , beta = 0.1 , n_iters = 30 ) É importante sempre escolher K para ser maior do que o número de clusters que você espera existir em seus dados, pois o algoritmo nunca pode retornar mais do que K clusters.
Para se ajustar ao modelo:
y = mgp . fit ( docs ) Cada documento nos docs deve ser uma lista única de tokens encontrados em seu documento de texto curto. Essa implementação não suporta tokens de contagem com multiplicidade (que geralmente possui pouco valor em documentos de texto curto).