apache-spark lda apache-spark-mllib topic-modeling

apache spark - Spark MLlib LDA, ¿cómo inferir la distribución de temas de un nuevo documento invisible?



apache-spark apache-spark-mllib (1)

A partir de Spark 1.5, esta funcionalidad no se ha implementado para DistributedLDAModel . Lo que tendrá que hacer es convertir su modelo a LocalLDAModel usando el método toLocal y luego llamar al topicDistributions(documents: RDD[(Long, Vector]) método donde los documents son nuevos (es decir, sin capacitación) documentos, algo como esto:

newDocuments: RDD[(Long, Vector)] = ... val topicDistributions = distLDA.toLocal.topicDistributions(newDocuments)

Esto será menos preciso que el algoritmo EM que sugiere este artículo , pero funcionará. Alternativamente, puede usar el nuevo algoritmo de entrenamiento EM variacional en línea que ya da como resultado un LocalLDAModel . Además de ser más rápido, este nuevo algoritmo también es preferible debido al hecho de que, a diferencia del antiguo algoritmo EM para ajustar DistributedLDAModels , está optimizando los parámetros (alfa) del Dirichlet antes del tema mezclando pesos para los documentos. De acuerdo con Wallach, et. Alabama. , la optimización de los alfa es bastante importante para obtener buenos temas.

Estoy interesado en aplicar el modelado de temas LDA usando Spark MLlib. Verifiqué el código y las explicaciones here pero no pude encontrar cómo usar el modelo para encontrar la distribución del tema en un nuevo documento invisible.