Este proyecto implementa el algoritmo de muestreo Gibbs para un modelo de mezcla de Dirichlet de Yin y Wang 2014 para la agrupación de documentos de texto cortos. Algunas ventajas de este algoritmo:
K de límite superior en el número de gruposEste proyecto es una implementación de referencia fácil de leer de GSDMM: no planeo mantenerlo a menos que haya demanda. Sin embargo, estoy manteniendo activamente la versión de óxido mucho más rápida de GSDMM aquí.
En su artículo, los autores introducen un modelo conceptual simple para explicar el GSDMM llamado Proceso de grupo de películas.
Imagine que un profesor lidera una clase de cine. Al comienzo de la clase, los estudiantes son asignados al azar a K tablas. Antes de que comience la clase, los estudiantes hacen listas de sus películas favoritas. El profesor lee repetidamente el papel de clase. Cada vez que se llama al nombre del alumno, el estudiante debe seleccionar una nueva tabla que satisfaga una o ambas de las siguientes condiciones:
Siguiendo estos pasos de manera consistente, podríamos esperar que los estudiantes finalmente lleguen a una configuración de tabla "óptima".
Para usar un proceso de grupo de películas para agrupar textos cortos, primero inicialice un cinegrocesprocess:
from gsdmm import MovieGroupProcess
mgp = MovieGroupProcess ( K = 8 , alpha = 0.1 , beta = 0.1 , n_iters = 30 ) Es importante elegir siempre que K sea mayor que la cantidad de grupos que espera que existan en sus datos, ya que el algoritmo nunca puede devolver más que K clústeres.
Para adaptarse al modelo:
y = mgp . fit ( docs ) Cada documento en docs debe ser una lista única de tokens que se encuentran en su documento de texto corto. Esta implementación no admite contar tokens con multiplicidad (que generalmente tiene poco valor en documentos de texto cortos).