1. 程式人生 > >《數學之美》第15章 矩陣運算和文字處理中的兩個分類問題

《數學之美》第15章 矩陣運算和文字處理中的兩個分類問題

1 文字和詞彙的矩陣

    在自然語言處理中,最常見的兩個分類問題分別是:將文字按主題歸類(比如將所有介紹奧運會的新聞歸到體育類)和將詞彙表中的字詞按意思歸類(比如將各種運動的專案名稱歸成體育一類)。    

    新聞分類乃至各種分類問題其實是一個聚類問題,關鍵是計算兩篇新聞的相似度。為了完成這個過程,我們要將新聞變成代表它們內容的實詞,然後在變成一組數,具體說是向量,最後求出這兩個問題的夾角。

    奇異值分解(Singular Value Decomposition,簡稱 SVD),一次能把所有的新聞相關性計算出來。

    

    在矩陣A中,每一行對應一篇文章,每一列對應一個詞。其中,第 i 行、第 j 列的元素,是字典中第 j 個詞在第 i 篇文章中出現的加權詞頻(比如用詞的TF-IDF值)。共5000億個元素。

    奇異值分解,就是把大矩陣分解成三個小矩陣相乘。共1.5億個元素,不到原來的三千分之一。

    原書有點問題,還沒得到證實:

    矩陣X是對文字的分類結果,每一行對應一篇文字,每一列對應一個主題,這一行中每個元素表示這篇文件在不同主題中的相關性。

    中間矩陣B表示文章的類和詞的類之間的相關性。

    矩陣Y是對詞進行分類的一個結果,它的每一列表示一個詞,每一行表示一個語義相近的詞類,或者簡稱為語義類。這一列的每一個非零元素表示這個詞在每個語義類中的重要性(或者說相關性),數值越大越相關。

    因此,只要對關聯矩陣A進行一次奇異值分解,就可以同時完成近義詞分類和文章的分類。另外,還能得到每個主題和每個詞的語義類之間的相關性。

2 奇異值分解的方法和應用場景

    首先,將矩陣A變換成一個雙對角矩陣。

    第二步,將雙對角矩陣變換成奇異值分解的三個矩陣。