Saya akan mencoba 'melipat'. Ini mengacu pada mengambil satu dokumen baru, menambahkannya ke corpus, dan kemudian menjalankan Gibbs sampling hanya pada kata-kata dalam dokumen baru itu , menjaga penugasan topik dokumen lama tetap sama. Ini biasanya konvergen cepat (mungkin 5-10-20 iterasi), dan Anda tidak perlu mengambil sampel korpus lama Anda, jadi ini juga berjalan cepat. Pada akhirnya Anda akan memiliki tugas topik untuk setiap kata dalam dokumen baru. Ini akan memberi Anda distribusi topik dalam dokumen itu.
Di sampler Gibbs Anda, Anda mungkin memiliki sesuatu yang mirip dengan kode berikut:
// 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
Pelipatan sama, kecuali Anda mulai dengan matriks yang ada, tambahkan token dokumen baru ke dalamnya, dan lakukan pengambilan sampel hanya untuk token baru. Yaitu:
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
halsayawwsayajwj
∏jhalsayawj