iT邦幫忙

0

我想請教一下各位,今天我想要實作一個Vector space model。現在我有query的向量資料和document的向量資料可是這兩筆向量他們vector space不相同呀,query的vector space比較小,這樣的話要如何計算它們的cos<a,b>呢?(cos<a,b>=a.b/|a||b|)
謝謝~

2 個回答

1
丹尼爾胡
iT邦新手 5 級 ‧ 2019-10-01 05:57:34
最佳解答

舉一個例子給你吧--

假如我們有查詢Q和檔案D,內容如下:

Q = "South Korea production"
D = "South. The entertainment industry in South Korea."

這裡我刻意多寫了一個south,這個Document本身沒有任何意義,只是為了示範用。

這時,我們的Document-Term Matrix會長的像這樣
https://ithelp.ithome.com.tw/upload/images/20191001/20118683H0QNaXYWpI.png

在Wiki上可以找到Vector Space Model的公式:
https://ithelp.ithome.com.tw/upload/images/20191001/20118683Jhc2qq9S83.png
通常我們在求Vector Space Model的時候會先計算分母,在檔案D的部分長這樣
https://ithelp.ithome.com.tw/upload/images/20191001/20118683A8OoyUqoSz.png
查詢Q的部分長這樣
https://ithelp.ithome.com.tw/upload/images/20191001/20118683964YfFE7eS.png
而分子的部分則長這樣
https://ithelp.ithome.com.tw/upload/images/20191001/201186830daUHCe3V7.png
所以將這個查詢Q拿去計算和檔案D的Cosine Similarity時,計算的結果會變成:
https://ithelp.ithome.com.tw/upload/images/20191001/20118683RhoW44GqOP.png

希望這樣的範例能夠讓你更清楚,Cosine Similarity的目的就是消除檔案和查詢之間長度不同所造成的偏差。

早上寫的有點匆忙,我剛剛重讀的時候發現計算的時候忘記開根號了。應該是(3*3^{1/2})/3=3^{1/2}也就是根號3

謝謝你喔~

不會~隨時歡迎!

0
小魚
iT邦大師 1 級 ‧ 2019-09-30 19:21:59

內積是這個吧 內積
印象中內積是投影長度,
(所以兩個垂直的內積是0)
外積跟面積有關吧...

我要發表回答

立即登入回答