倒排索引由文檔中所有非重復單詞的列表組成,對於每個單詞,都有壹個包含它的文檔列表。
示例:
1.假設文檔集合包含五個文檔,如每個文檔的目錄所示,表格最左邊壹列是每個文檔對應的文檔號。我們的任務是為這個文檔集合建立壹個倒排索引。
2.中文和英文是不同的語言,詞與詞之間沒有明確的分隔符,所以文檔首先要由分詞系統自動分割成詞序列。這樣,每個文檔都被轉換成由單詞序列組成的數據流。為了方便系統的後續處理,需要給每個不同的單詞壹個唯壹的單詞編號,並記錄哪些文檔包含這個單詞。經過這樣的處理,我們可以得到最簡單的倒排索引。
“單詞ID”壹欄記錄每個單詞的單詞數,第二欄是對應的單詞,第三欄是每個單詞對應的倒排索引。
3.除此之外,索引系統還可以記錄更多的信息。下表還記錄了詞頻信息(TF),即單詞在文檔中出現的次數。之所以記錄這些信息,是因為在搜索結果排名中計算查詢與文檔的相似度時,詞頻信息是壹個重要的計算因素,所以記錄在倒排表中,方便後續排名中的分值計算。
4.倒排表還可以記錄單詞在文檔中的位置信息。
(1,& lt11 & gt;,1),(2,& lt7 & gt,1),(3,& lt3,9 >,2)
有了這個索引系統,搜索引擎可以方便地響應用戶的查詢,比如用戶輸入查詢詞“臉書”,搜索系統搜索倒排索引,從中可以讀到包含這個詞的文檔,這些文檔就是提供給用戶的搜索結果。通過使用詞頻信息和文檔頻率信息,可以對這些候選搜索結果進行排序,計算文檔與查詢的相似度,並根據相似度得分從高到低對輸出進行排序,這是搜索系統內部過程的壹部分。
示例:
Quick和quick作為獨立的詞出現,然後用戶可能會認為是同壹個詞。
狐貍和狐貍非常相似,就像狗和狗壹樣。它們有相同的詞根。
Jumped和leap雖然沒有同根,但是意思差不多,是同義詞。
無法搜索包含Quick fox的文檔。
使用標準的規劃規則,在建立倒排索引時,會對分離出來的詞進行相應的處理,以提高後期搜索時找到相關文檔的概率。