ㄧ. 前言
前面有說明如何運用TFIDF與BOW來表示一個句子/文本的表示方式,但若以BOW這樣的方式並沒有考慮到句子/文本中上下文的特性,共現矩陣就是利用分佈假說,相似的詞附近會有類似的上下文,藉由計算周圍(window)字詞來表示詞的向量。
二. 共現矩陣
考慮下面的句子: 我 今天 很 帥
上面因為總共有4個字(假設總共文本就共這4個字),共現矩陣會產生4x4的矩陣,假設現在window設為1,表示只看隔壁距離為1的詞,以'我'為例,'今天'這個count會加1,最後產生的共現矩陣如下:
三. 共現矩陣缺點
共現矩陣雖然考慮了上下文,但這些次數並非良好的計數方式,大致有下列的缺點:
四. 降維
在共現矩陣/BOW等表示方法中,很多的元素都是0。這時可以透過SVD將資訊壓縮,轉成較稠密的矩陣,可以達到特徵提取與降維的目的。
SVD(Singular Value Decomposition,奇異值分解) 是降維方法之一(其他也有如PCA等),SVD可以將任意矩陣分解為三個矩陣的乘積(兩個方陣與一個對角矩陣,這邊可以去看線性代數複習XD),選取前 k 個奇異值佔所由 n 維降至 k 維。如下圖[1]
今天大概說明共現矩陣,共現矩陣與word2vec的演算法有些關係~就留到明天說明
參考資訊
[1] SVD