Intentaría 'doblar'. Esto se refiere a tomar un nuevo documento, agregarlo al corpus y luego ejecutar el muestreo de Gibbs solo en las palabras de ese nuevo documento , manteniendo las asignaciones de temas de los documentos antiguos iguales. Esto generalmente converge rápido (tal vez 5-10-20 iteraciones), y no necesita muestrear su antiguo corpus, por lo que también funciona rápido. Al final, tendrá la asignación de temas para cada palabra en el nuevo documento. Esto le dará la distribución de temas en ese documento.
En su muestra de Gibbs, probablemente tenga algo similar al siguiente código:
// This will initialize the matrices of counts, N_tw (topic-word matrix) and N_dt (document-topic matrix)
for doc = 1 to N_Documents
for token = 1 to N_Tokens_In_Document
Assign current token to a random topic, updating the count matrices
end
end
// This will do the Gibbs sampling
for doc = 1 to N_Documents
for token = 1 to N_Tokens_In_Document
Compute probability of current token being assigned to each topic
Sample a topic from this distribution
Assign the token to the new topic, updating the count matrices
end
end
El plegado es el mismo, excepto que comienza con las matrices existentes, les agrega los tokens del nuevo documento y realiza el muestreo solo para los nuevos tokens. Es decir:
Start with the N_tw and N_dt matrices from the previous step
// This will update the count matrices for folding-in
for token = 1 to N_Tokens_In_New_Document
Assign current token to a random topic, updating the count matrices
end
// This will do the folding-in by Gibbs sampling
for token = 1 to N_Tokens_In_New_Document
Compute probability of current token being assigned to each topic
Sample a topic from this distribution
Assign the token to the new topic, updating the count matrices
end
piwwijwj
∏jpiwj