Text-Mining
使用潛在 Dirichlet 分配的主題預測
我在文檔語料庫上使用了 LDA 並找到了一些主題。我的代碼的輸出是兩個包含概率的矩陣;一個文檔主題概率和另一個單詞主題概率。但我實際上不知道如何使用這些結果來預測新文檔的主題。我正在使用吉布斯採樣。有誰知道怎麼做?謝謝
我會嘗試“折疊”。這是指獲取一個新文檔,將其添加到語料庫中,然後僅對該新文檔中的單詞進行Gibbs 採樣,保持舊文檔的主題分配相同。這通常會快速收斂(可能是 5-10-20 次迭代),並且您不需要對舊語料庫進行採樣,因此它也運行得很快。最後,您將為新文檔中的每個單詞分配主題。這將為您提供該文檔中主題的分佈。
在您的 Gibbs 採樣器中,您可能有類似於以下代碼的內容:
// 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
折疊是相同的,除了您從現有矩陣開始,將新文檔的標記添加到它們,並僅對新標記進行採樣。IE:
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
如果您使用標準 LDA,則整個文檔不太可能由一個主題生成。所以我不知道計算文檔在一個主題下的概率有多大用處。但是,如果您仍然想這樣做,那很容易。從你得到的兩個矩陣中,你可以計算, 單詞的概率在主題. 拿上你的新文件;假設’第一個詞是. 給定主題,單詞是獨立的,所以概率只是
(請注意,您可能需要在日誌空間中計算它)。