iT邦幫忙

2021 iThome 鐵人賽

DAY 13
0
自我挑戰組

30天初步了解自然語言處理-自學筆記系列 第 13

[Day13] 文本/詞表示方式(四)-共現矩陣與降維

  • 分享至 

  • xImage
  •  

ㄧ. 前言

前面有說明如何運用TFIDF與BOW來表示一個句子/文本的表示方式,但若以BOW這樣的方式並沒有考慮到句子/文本中上下文的特性,共現矩陣就是利用分佈假說,相似的詞附近會有類似的上下文,藉由計算周圍(window)字詞來表示詞的向量。

二. 共現矩陣

考慮下面的句子: 我 今天 很 帥

上面因為總共有4個字(假設總共文本就共這4個字),共現矩陣會產生4x4的矩陣,假設現在window設為1,表示只看隔壁距離為1的詞,以'我'為例,'今天'這個count會加1,最後產生的共現矩陣如下:
https://ithelp.ithome.com.tw/upload/images/20210912/20140426ZAPOaWsBIj.png

三. 共現矩陣缺點

共現矩陣雖然考慮了上下文,但這些次數並非良好的計數方式,大致有下列的缺點:

  1. 矩陣維度龐大,耗費大量記憶體
  2. 對一些高頻率的詞效果較差,例如向上句的'我'與'今天'其實是並沒什麼關係

四. 降維

在共現矩陣/BOW等表示方法中,很多的元素都是0。這時可以透過SVD將資訊壓縮,轉成較稠密的矩陣,可以達到特徵提取與降維的目的。

SVD(Singular Value Decomposition,奇異值分解) 是降維方法之一(其他也有如PCA等),SVD可以將任意矩陣分解為三個矩陣的乘積(兩個方陣與一個對角矩陣,這邊可以去看線性代數複習XD),選取前 k 個奇異值佔所由 n 維降至 k 維。如下圖[1]
https://ithelp.ithome.com.tw/upload/images/20210912/20140426bP12uKWu3L.png


今天大概說明共現矩陣,共現矩陣與word2vec的演算法有些關係~就留到明天說明

參考資訊
[1] SVD


上一篇
[Day12] 文本/詞表示方式(三)-TFIDF實作
下一篇
[Day14] 文本/詞表示方式(五)-word2vec
系列文
30天初步了解自然語言處理-自學筆記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言