'Katlanmayı' denerdim. Bu, yeni bir belgenin alınması, topluluğa eklenmesi ve daha sonra eski belgelerin konu atamalarının aynı kalmasını sağlayarak Gibbs örneklemesini yalnızca bu yeni belgedeki kelimeler üzerinde çalıştırma anlamına gelir . Bu genellikle hızlı birleşir (belki 5-10-20 iterasyon) ve eski korpusunuzu örneklemenize gerek yoktur, bu yüzden hızlı çalışır. Sonunda yeni belgedeki her kelime için konu ödevi alacaksınız. Bu size bu belgedeki konuların dağıtımını verecektir.
Gibbs örnekleyicinizde, muhtemelen aşağıdaki koda benzer bir şey var:
// 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
Katlama aynıdır, ancak mevcut matrislerle başlamanız, yeni belgenin jetonlarını bunlara eklemeniz ve yalnızca yeni jetonlar için örnekleme yapmanız gerekir. yani:
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
pbenwwbenjwj
Πjpbenwj