18 votos

Los parámetros de entrada para el uso latente de Dirichlet asignación

Cuando se utiliza el tema de modelado (Latente de Dirichlet de la Asignación), el número de temas es un parámetro de entrada que necesita el usuario especifique.

A mi me parece que también debe proporcionar una colección de candidato tema establecido que Dirichlet proceso de la muestra en contra? Es mi entendimiento correcto? En la práctica, cómo de instalación este tipo de candidato tema?

21voto

Dominic D Puntos 936

Como yo sé que usted sólo tiene que suministrar un número de temas y el corpus. No hay necesidad de especificar un candidato tema establecido, a pesar de que uno puede ser utilizado, como se puede ver en el ejemplo de partida en la parte inferior de la página 15 del Grun y Hornik (2011).

Actualizado 28 Jan 14. Ahora hago las cosas un poco diferente al método siguiente. Vea aquí por mi enfoque actual: http://stackoverflow.com/a/21394092/1036500

Una forma relativamente sencilla para encontrar el número óptimo de temas sin datos de entrenamiento con un bucle a través de modelos con diferentes números de temas para encontrar el número de temas, con el máximo del registro de la probabilidad, a la vista de los datos. Considere este ejemplo R

# download and install one of the two R packages for LDA, see a discussion
# of them here: http://stats.stackexchange.com/questions/24441
#
install.packages("topicmodels")
library(topicmodels)
#
# get some of the example data that's bundled with the package
#
data("AssociatedPress", package = "topicmodels")

Antes de ir a la derecha en la generación de el tema del modelo y el análisis de la salida, tenemos que decidir sobre el número de temas que el modelo debe utilizar. Aquí está una función de bucle en diferentes números de tema, obtener el registro de probabilidad del modelo para cada número del tema y la trama para que podamos elegir la mejor. El mejor número de temas es la que cuenta con el mayor registro de probabilidad valor para obtener los datos de ejemplo integrada en el paquete. Aquí he elegido para evaluar cada modelo, comenzando con 2 temas, aunque para 100 temas (esto tomará un poco de tiempo!).

best.model <- lapply(seq(2,100, by=1), function(k){LDA(AssociatedPress[21:30,], k)})

Ahora podemos extraer el registro de valores de probabilidad para cada modelo que se ha generado y se preparan para la trama:

best.model.logLik <- as.data.frame(as.matrix(lapply(best.model, logLik)))

best.model.logLik.df <- data.frame(topics=c(2:100), LL=as.numeric(as.matrix(best.model.logLik)))

Y ahora hacer una gráfica para ver a qué número de temas en los que el registro más alto de probabilidad de que aparezca:

library(ggplot2)
ggplot(best.model.logLik.df, aes(x=topics, y=LL)) + 
  xlab("Number of topics") + ylab("Log likelihood of the model") + 
  geom_line() + 
  theme_bw()  + 
  opts(axis.title.x = theme_text(vjust = -0.25, size = 14)) + 
  opts(axis.title.y = theme_text(size = 14, angle=90))

enter image description here

Parece que es en algún lugar entre el 10 y el 20 temas. Podemos inspeccionar los datos para encontrar el número exacto de los temas con el mayor registro de probabilidad tal que así:

best.model.logLik.df[which.max(best.model.logLik.df$LL),]
# which returns
       topics        LL
12     13           -8525.234

Así, el resultado es que los 13 temas que le proporcionan el mejor ajuste para estos datos. Ahora podemos seguir adelante con la creación de la LDA modelo con 13 temas y la investigación de la modelo:

lda_AP <- LDA(AssociatedPress[21:30,], 13)   # generate the model with 13 topics 
get_terms(lda_AP, 5)                         # gets 5 keywords for each topic, just for a quick look
get_topics(lda_AP, 5)                        # gets 5 topic numbers per document

Y así sucesivamente para determinar los atributos del modelo.

Este enfoque se basa en:

Griffiths, T. L., y M. Steyvers de 2004. Encontrar temas científicos. Actas de la Academia Nacional de Ciencias de los Estados unidos de América 101(Supl 1):5228 -5235.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X