相似度從字面上理解就是兩個事物的相似程度。在信息檢索中,相似度表示的是兩個文檔之間的相似程度或者查詢與文檔的相似程度。
首先回想一下檢索過程:
1:首先用戶輸入查詢詞。
2:搜索引擎根據查詢詞查找相應的文檔。
3:搜索引擎把查詢結果以一定的方式顯示給用戶。
那么一篇文檔是否滿足用戶的查詢需求可以用文本與查詢的相似程度來衡量。而相似度到最后總能夠計算成一個實數,所以可以根據文檔與查詢的相似度進行排序。與查詢相似度較高的文檔排在前面,較低的排在后面。相似度的計算方式五花八門。比如上一篇文章中,可以簡單的利用tf*idf的累加和代表文檔與查詢的相似程度。當然這種方法看上去沒什么理論深度,所以就不討論了。
對于一件事,研究者常常盡量使用數學理論去解釋它,使它模型化,使它變得有理有據。數學包含的內容博大精深,所以解釋的方法也不同。有的研究者試圖用這種數學理論去解釋,有的研究者試圖用那種數學理論解釋。有些人解釋的很成功,當然有一些則失敗了。當一個一流研究者找到一個新的解釋方法并建立一個模型后,其他的三流研究者就開始對這個模型修修補補。現在就來說說一流研究者提出的一個檢索模型:向量空間模型。該模型被用于文檔的分類,該模型最初被用于文檔的分類,通過文檔與類別的特征之間計算來實現文檔正確分類,但是該模型也可以用在信息檢索中。
向量空間模型就是把查詢和文檔想象成N維空間向量,N是詞典大小。每一維表示一個查詢詞。向量在每一個維度上的坐標可以通過計算得到。
設查詢向量表示成:
Q=[q1,q2,……,qN];
文檔向量表示成:
D=[d1,d2,……,dN];
這樣查詢Q與文檔D都能表示成兩個向量。
那么我們如何計算其相似度呢?這里常用的就是余弦相似度:
對于這種模型下的余弦相似度的計算有一個非常形象的解釋:把每一篇文檔想象成N維空間下的點。一個查詢可以想象成從原點打出的一束光刺穿了這個N維空間,離光束近的點與查詢相似度高,離光束遠的點與查詢相似度低。
那么查詢向量和文檔向量每個維度上的坐標該如何計算呢?可以利用tf*idf的值代表。因為查詢詞一般很少,所以查詢向量中大部分的坐標值都是0,與文檔向量相乘時,就會掩蓋掉文檔向量D的一些坐標,可以利用這一點加快計算速度。而向量的長度這些信息可以預先存儲在倒排表中,所以整個過程可以在倒排表中快速求得。相似度求得后,就可以根據這個值進行排序了,生成列表返回給用戶。
這就是向量空間模型以及余弦相似度計算,這個模型靠的很成功,以至于我看的每本書都會講到這個模型。對于向量中坐標應該如何計算,也有相應的人去研究,這里就不贅述了。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
