03 主題模型 - LSA案例

02 主題模型 - SVD矩陣分解、LSA模型

LSA案例

假設(shè)有10個詞、3個文本對應(yīng)的詞頻TF矩陣如下:

1、只需要numpy就可以完成LSA的操作
import numpy as np
2、錄入數(shù)據(jù)
a = np.array([
        [1,1,1],
        [0,1,1],
        [1,0,0],
        [0,1,0],
        [1,0,0],
        [1,0,1],
        [1,1,1],
        [1,1,1],
        [1,0,1],
        [0,2,0],
        [0,1,1]
    ]
)
3、SVD分解

numpy中的linalg庫中,有專門的svd分解的函數(shù)。
能夠直接得到 U Σ V 矩陣的值。
注意:這里分解出來的不是近似值,而是完整的值。

u,sigma,v = np.linalg.svd(a)

Uil 對應(yīng)第i個文本和第l個主題的相關(guān)度。
Vjm 對應(yīng)第j個詞和第m個詞義的相關(guān)度。
Σlm 對應(yīng)第l個主題和第m個詞義的相關(guān)度


4、文檔和主題之間的關(guān)系

假定現(xiàn)在3篇文本對應(yīng)2個主題?,F(xiàn)在就該獲取前兩列。

u[:,:2]
文檔和主題之間的關(guān)系

5、詞語和詞義之間的關(guān)系
v[:,:2].T
詞語和詞義之間的關(guān)系

6、主題和詞義之間的關(guān)系
sigma
s = [[sigma[0],0],[0,sigma[1]]]
s
主題和詞義之間的關(guān)系

7、將我們上面得到的矩陣相乘,能夠近似回復(fù)最初文檔和詞語的矩陣
np.dot(np.dot(u[:,:2],s),v[:,:2].T)
對比輸出結(jié)果和原矩陣,雖然不是100%相等,但也能體現(xiàn)近似值

最后將結(jié)論描述成報告:

假定主題數(shù)為2,通過SVD降維后的三個矩陣分布為:

本例中計算的是V≈VK矩陣,但是也可以進(jìn)一步計算ΣV即主題-詞義關(guān)系矩陣

通過SVD矩陣分解我們可以得到文本、詞與主題、語義之間的相關(guān)性,但是這個時候計算出來的內(nèi)容存在負(fù)數(shù),我們比較難解釋,所以我們可以對LSI得到文本主題矩陣使用余弦相似度計算文本的相似度的計算。

最終我們得到第一個和第三個文檔比較相似,和第二個文檔不太相似。
備注:這個時候直接在文本主題矩陣的基礎(chǔ)上直接應(yīng)用聚類算法即可

本例中計算的是V≈VK矩陣,但是也可以進(jìn)一步計算ΣV即主題-詞義關(guān)系矩陣

04 主題模型 - NMF
06 主題模型 - pLSA又稱pLSI - 基于概率的潛在語義分析模型

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容