從Lucene到Elasticsearch:全文檢索實戰之信息檢索模型

經常使用術語::算法

 

分詞算法::api

  • 詞典匹配分詞法
    • 與機器字典詞條匹配
    • 包括:
      • 正向最大匹配
      • 逆向最大匹配
      • 最小切分(一句話切的詞數最小)
  • 語義理解分詞法
    • 目前中文分詞沒達到這種級別
  • 詞頻統計分詞法
    • 相鄰的字搭配出現的頻率越高,越有多是個詞
    • 不須要切分詞典
    • 高頻共同出現的兩個字有的也不是一個詞,須要專門處理以提升精度
    • 應與字典分詞結合使用
    • 能夠很好的解決新詞未被收錄詞典的問題

倒排索引機器學習

  • 反向索引

布爾檢索模型學習

  • 布爾運算符鏈接各個檢索詞
  • 優先級:NOT>AND>OR
    • AND
    • OR
    • NOT

單詞-文檔矩陣3d

  • 結果是0101:表明文檔2 和文檔4 爲查詢結果

布爾運算模型優勢:blog

  1. 符合人們思惟
  2. 表達式直觀清晰
  3. 方便擴檢、縮檢
  4. 易於計算機實現

布爾運算模型缺點:排序

  1. 僅僅基於0、1二元判斷標準
    • 不能進行關鍵詞重要性排序
  2. 沒有反應語義含義
    • 不少用戶想查詢的東西很難用表達式表達
  3. 徹底匹配致使太少的結果被返回
    • 沒有加權的概念,容易出現漏檢

tf-idf 權重計算索引

  • tf-idf 叫詞頻-逆文檔頻率
  • 詞項(item)的重要性由:
    • 在文檔中出現的頻率正相關
    • 在文檔集中出現的次數反相關
  • lucene 採起的計算詞頻標準化的方法:
  • df 表明文檔集中出現詞項的文檔數量
      • + 1 是由於分母不能爲零
  • 詞項權重::
  • 一個文檔就能夠表示成是 n 維詞項向量

向量空間模型::文檔

  • 向量求餘弦的方法計算類似性
  • 餘弦類似性理論:
  • Lucene 的評分機制更加複雜:
    • 上述公式總體依然是按照tf-idf 和向量空間模型的類似性計算

機率檢索模型::數學

  • 從機率排序原理推導而來
  • 基本思想:
    • 給定一個查詢,返回結果是按照與查詢語句相關性得分排序的
  • 好比:BM25模型(best match 25)
    • 最成功的機率檢索模型
  • 貝葉斯決策理論
    • 機率檢索模型的數學基礎
    • 在機器學習、天然語言處理等領域普遍應用
    • 海量文本數據分類:
      • 好比垃圾郵件甄選、過濾
    • 核心思想:選擇高几率對應的類別

文檔D,P(R|D)屬於相關文檔集的機率、P(NR|D) 不屬於相關文檔集的機率

  • 由貝葉斯公式計算:
  • 推導得出公式:

二值獨立模型::

  • 詞項的獨立性假設(假設每一個詞都是獨立出現的
  • 文檔頻率轉換成詞項機率的乘積
  • 推導出公式::
      • Pi 表示第i 個詞項出如今文檔中的機率
      • Si 表示第i 個詞項在不相關文檔集中出現的機率
      • Di = 1 表示單詞在文檔出現
      • Di = 0 表示單詞在文檔不出現
    • 最後是計算log 值,作一個平滑處理不影響結果 大小順序
      • 分子分母 加上常數,避開log(0)
  • 最後公式::

Okapi BM25 模型::

  • 二值獨立模型,僅僅考慮了詞項出現與否,沒有考慮單詞的權重,實際效果不理想
  • BM25 進行了改進,考慮進去了:
    • idf 因子、文檔長度、查詢詞頻等因素

BM25F ::

  •  Okapi BM25 僅僅是把文檔當作總體考慮
  • 沒有考慮不一樣區域的權重差別
    • 好比網頁,標題、主題詞、摘要、內容權重是不同的

相關文章
相關標籤/搜索