信息檢索導論學習筆記(1)


布爾檢索

信息檢索概述

信息檢索:是從大規模非結構化數據(通常是文本)的集合(通常保存在計算機上)中找出滿足用戶信息需求的資料(通常是文檔)的過程。

Information Retrieval (IR) is finding material (usually documents) of an unstructured nature (usually text) that satisfies an information need from within large collections (usually stored on computers).

 

倒排索引

順序掃描:這種線性掃描就是一種最簡單的計算機文檔檢索方式。這個過程通常稱為 grepping,它來自於Unix下的一個文本掃描命令grep。

順序掃描的不足:

  • 速度超慢(特別是大型文檔集)
  • 有時我們需要更靈活的匹配方式。比如,在 grep 命令下不能支持諸如 Romans NEAR countrymen之類的查詢,這里的 NEAR操作符的定義可能為“5個詞之內” 或者“同一句子中”。
  • 不支持檢索結果的排序(即只返回較好的結果) 

 

詞項-文檔(term-doc)的關聯矩陣(數學建模)

Image(4)

詞項—文檔關聯矩陣,其中每行表示一個詞,每列表示一個劇本。當詞t在劇本d中存在時,矩陣元素(t,d)的值為 1,否則為 0

為響應查詢 Brutus AND Caesar AND NOT Calpurnia,我們分別取出 Brutus、Caesar 及Calpumia對應的行向量,並對 Calpumia 對應的向量求反,然后進行基於位的與操作,得到: 110100 AND 110111 AND 101111 = 100100 

 

詞項-文檔(term-doc)的關聯矩陣高度稀疏,僅僅保存非零的位置明顯更好

倒排索引的構建

  • 對每個詞項t, 記錄所有包含t的文檔,建立詞條序列<詞條,docID>二元組
  • 對詞項、文檔排序。按詞項排序,然后每個詞項按docID排序
  • 合並詞項,並常記錄文檔頻率df(對每個詞項t, 記錄所有包含t的文檔數目)

Image(1)

 

布爾查詢處理

and查詢的處理

比如說,我們要尋找既包含字符串“lucene”又包含字符串“solr”的文檔,我們只需要以下幾步:
1. 取出包含字符串“lucene”的倒排記錄表。
2. 取出包含字符串“solr”的倒排記錄表。
3. 通過合並兩個倒排記錄表,找出既包含“lucene”又包含“solr”的文檔。

Image(2)

O(N)時間復雜度簡單合並實現(關鍵原因: 倒排記錄表按照docID排序)

image  

 

 

通用的查詢優化策略  (詞典中保存文檔頻率df的一個充分理由)

(madding OR crowd) AND (ignoble OR strife) AND (killed OR slain)

  • 每個布爾表達式都能轉換成上述形式(合取范式)
  • 獲得每個詞項的df
  • (保守)通過將詞項的df相加,估計每個OR表達式對應的倒排記錄表的大小
  • 按照上述估計從小到大依次處理每個OR表達式
  • 反例:[1,2,3,4] and [1,2,3,4] and [5,6,7,8,9]      4+4>4

布爾邏輯的轉換(數學知識)

(范式存在定理)任一命題公式都存在着與之等值的析取范式和合取范式

即任何布爾查詢邏輯表達式都能轉換為合取范式

這種變換基於了關於邏輯等價的規則: 

  • 雙重否定律
  • 德·摩根定律:非(P 且 Q)=(非 P)或(非 Q)      非(P 或 Q)=(非 P)且(非 Q)
  • 分配律

轉換例子:

NOT (B OR C)   =    (NOT B) AND (NOT C)

(A AND B) OR C = (A OR C) AND (B OR C)

 

布爾檢索的優缺點

優點:構建簡單、常用

缺點:

1.布爾查詢構建復雜,不適合普通用戶。構建不當,檢索結果過多或者過少

2.沒有充分利用詞項在文檔中的詞項頻率(term frequency, tf)信息

3.不能對檢索結果進行排序


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM