首先說布林檢索,顧名思義 用0,1 代表真假值來進行檢索。
比如兩句話 我愛吃鴨, 他愛吃雞
可以構造出乙個二維矩陣:
橫座標是每一句話包含的資訊,縱座標是所有文字
句子1
句子2句子n。。。。你0
0。。我1
0。。他0
1。。吃1
1。。等等。。。。。
當使用者想要檢索某些文字的時候 直接查詢對應的文章就好了。但是這樣表述太浪費空間,遠遠不夠實踐所需的條件,所以倒排索引就應運而生。
正排索引就是像上面一樣給個句子,索引出來多少個詞。
倒排索引就是給定詞,記錄包含該詞的句子
吃: 句子1 句子2 句子4 句子5 句子n
雞: 句子1 句子4 句子n
給出關鍵字,只需要查詢所對應的句子集合,再進行『與』運算,就可以得出符合條件的搜尋結果了。
布林檢索有一大弊端,就是只有對於片語的二維描述——(有,無)判斷,會找到大量的文章,而且無法進行最優解的推送,這個時候就需要有乙個權重來表示搜尋到的結果與想要的結果是否契合。
向量空間模型的概念就出現了。
, .......}
這裡涉及到兩個問題,第乙個就是計算量的問題,詞過多會導致計算的速率很慢,有些停用詞,如 『的』 『中』等沒有意義,所以我們會先進行去停用詞的步驟。
第二個問題就是,權重的表示方式,如果僅僅是靠這個詞出現的次數來判斷這個詞的重要程度未免太過片面,而且這個頻率也與文章的長度有關係。所以這裡就引進了乙個演算法叫tf-idf。
tf 為詞頻,即這個詞在文件中出現的頻率,可以用 該詞出現次數n/所有詞的數量m, 也可以用 n/出現最多的詞數
而這種定義用資料來表示就是,所有的文章數n/含有該詞的文章數m,逆字也體現在這裡
之後求對數的方式來平滑權重 log(n/m)
為了防止分母為0的情況,一般將公式記為 log(n/(m+1))
最後該詞的權重 = tf * idf
再用余弦相似度去得到乙個文章的排名。
《Introduce to IR》布林檢索模型
該系列文章是 an introduce to information retrieval chapter 1 的讀書筆記。ir的概念很廣泛,即使從錢包中拿出一張信用卡並輸入卡號也是一種形式的資訊檢索。在學術領域,我們這樣定義ir 資訊檢索 ir 就是一種從大量資料集合中 通常指儲存在計算機中文件 尋...
向量空間模型
向量空間模型 vsm vector space model 是最常用的相似度計算模型,在自然語言處理中有著廣泛的應用,這裡簡單介紹一下其在進行文件間相似度計算時的原理。假設共有十個詞 w1,w2,w10,而共有三篇文章,d1,d2和d3。統計所得的詞頻表 杜撰的,為了便於演示用法 如下 w1 w2 ...
向量空間模型
tft d,意為詞項t在文件d中出現的次數。這種忽略詞項在文件中的次序關係,將文件看作詞項的集合的模型,稱為詞袋模型 bag of words model 使用詞項頻率作為權重有乙個嚴重缺陷,它無區別地對每乙個詞項計算權重,而事實上,文件中兩個詞頻相同的詞極有可能具有不一樣的重要性 亦即權重 例如,...