首先介紹主題模型的概念:
顧名思義,主題模型是對文字隱含主題的建模。plsa 和 lda 都是文件主題生成模型,包含詞,主題和文件三層結構,該模型可以將文件集中的每篇文件的主題以概率分布的形式給出,後利用這些主題分布進行主題聚類或文字分類。所謂生成模型,就是說,我們認為一篇文章的每個詞都是通過「以一定的概率選擇了某個主題,並從這個主題中以一定概率選擇某個詞語」這樣乙個過程得到的。文件到主題服從多項式分布,主題到詞服從多項式分布。
兩者均是非監督機器學習技術,可以用來識別大規模文件集或這語料庫中潛藏的主題資訊。他們採用了詞袋(bag of words)的方法, 這種方法將每一篇文件視為乙個詞頻向量,從而將文字資訊轉化為了易於建模的數字資訊。但是詞袋方法沒有考慮詞與詞之間的順序,這簡化了問題的複雜性,同時也為模型的改進提供了契機。每一篇文件代表了主題所構成的乙個概率分布,而每乙個主題又代表了很多單詞所構成的乙個概率分布。
對每一篇文件,生成過程大致如下:
1,對每一篇文件,從主題分布中抽取乙個主題
2, 從被抽出的主題所對應的單詞分布中抽取乙個單詞
3, 重複上述過程直至遍歷文件中的每乙個單詞
上述介紹了如何生成一篇文件,然而當我們看到一篇文件後,往往喜歡推測這篇文章是如何生成的,我們認為作者是先確定幾個主題,然後圍繞這幾個主題展開,表達成文。 plsa 和lda就是要做這件事:根據給定的一篇文件,推測其主題分布。
兩者區別:
對於生成過程:對於plsa, 生成過程中當選取一篇文件後,該文件的主題分布是確定的,即該文件中每個主題出現的概率是一定的,然而lda中是不確定的,在選取之前需要利用狄利克雷先驗隨機確定出主題和詞分布。然後再進行其他步驟。
若根據一篇文件的內容來反推該文件的主題,plsa和lda的主要區別如下:
plsa: 因為文件中的每個單詞的生成概率可以求出,此處可參考引用部落格 中 每個詞語的生成概率公式,剩下的問題就是最大化引數值。這裡利用的方法是em, 即最大期望演算法,基本思想:首先隨即選擇乙個值來初始化,然後不斷迭代尋找最優數值。
lda: 是將上述引數弄成隨機變數且加入狄利克雷先驗.
綜上,兩者的本質區別就在於它們估計位置引數的思想不同,plsa利用的是頻率派的思想,lda利用的是貝葉斯派的思想。
sizeof,strlen總結比較
其實理解 sizeof 只需要抓住乙個要點 棧 程式儲存分布有三個區域 棧 靜態和動態。所有能夠從 直接操作的物件,包括任何型別的變數 指標,都是在棧上的 動態和靜態儲存區是靠棧上的指標間接操作的。sizeof 操作符,計算的是物件在棧上的投影體積 記住這個就很多東西都很清楚了。char const...
linux shell 比較總結
整數比較符號 eq等於,如if 1 eq 2 ne不等於,如if 1 nq 2 gt大於,如if 1 gt 2 ge大於等於,如if 1 ge 2 lt小於,如if 1 lt 2 le小於等於,如if 1 le 2 小於,如 1 2 小於等於,如 1 2 大於,如 1 2 大於等於,如 1 2 字串...
排序比較與總結
之前一共實現了6種比較常見的排序演算法,分別是 選擇排序,插入排序,氣泡排序,歸併排序,快速排序,堆排序 效率 衡量乙個演算法的效率包括空間和時間,有時候還要考慮穩定性。前3種排序的方法效率較低,實現也比較簡單,適合規模比較小的排序,個人認為適合排序總量在10000以下的隨機數組。後3種排序的方法效...