ElasticSearch學習總結(一):信息檢索基礎理論

本系列文章爲Elasticsearch 的學習筆記,主要是爲了便於日後對於相關知識點的回顧,在內容的範圍以及正確性上可能存在一定出入。另外由於Elasticsearch的發展速度很快,很多特性會隨着版本的演變而發生變化,具體的特性說明,如有疑問請參考對應版本的官方文檔。本系列博客主要基於5.2版本

作爲本系列博客的開篇,先對信息檢索的相關基礎知識做個簡單的總結

1.基本定義

信息檢索的定義有很多,知乎的答案跟人覺得比較直接明瞭,定義如下

信息檢索( Information Retrieval ):指信息按一定的方式組織起來,並根據信息用戶的需要找出有關的信息的過程和技術。

信息檢索的目標:準確、及時、全面的獲取所需信息。

2.信息檢索系統設計

信息檢索系統的設計主要包括如下三個部分的內容
1. 信息採集:可以通過爬蟲,衆包等多種方式完成信息的採集
2. 信息處理:系統處理採集來數據的過程稱爲索引構建,如何對數據進行高效的索引構建與存儲是系統的核心問題。本文主要介分詞與倒排索引兩個環節
3. 信息查詢:該部分主要關注的是如何在最短的時間內返回用戶最想得到的信息。本文主要關注有哪些相關性檢測模型可以讓用戶得到最想要的結果。

3.常用術語

信息檢索作爲一門獨立的學科,有很多學術方面的術語,爲了便於後面的學習與總結,對常用的術語做個簡單的總結

  • 文檔(document):文檔是搜索的目標,載體可以是文本,圖片,視頻語音等各種類型
  • 文檔集(crops):若干文檔組成的集合稱爲文檔集
  • 詞條化(tokenization):指將給定的字符序列拆分成一系列子序列的過程,每個子序列稱爲一個詞條
  • 詞項(term):詞項是經過語言學預處理之後歸一化的詞條。詞條是索引的最小單位
  • 詞項文檔關聯矩陣:用來標識文檔與詞項包含關係的矩陣。
  • 詞項頻率(term frequency):某個詞項在某個文檔中出現的頻率稱爲詞項頻率,例如”Apple”這個單詞在文檔A中出現了3次,則詞項頻率爲3.
  • 文檔頻率(document frequency):出現某個詞項的文檔數量稱爲文檔頻率,例如有3個文檔出現過”Apple”這個單詞,則文檔頻率爲3
  • 倒排記錄表(postings list):倒排記錄表用於記錄出現過某個詞項的所有文檔的文檔列表以及詞項在文檔中出現的位置信息,每條記錄稱爲一個倒排項。 通過倒排記錄表可以知道哪些文檔包含了哪些文檔。

4.分詞算法

4.1 概述

分詞對於搜索引擎的幫助很大,可以幫助搜索引擎識別檢索詞語的含義,從而使搜索的準確度提高,因此分詞的質量也影響了搜索結果的準確度。中英文的分詞原理大致如下

4.2 英文分詞

英文單詞之間是以空格作爲自然分界符的,因此英文的分詞相對簡單,大致爲一下流程:

輸入文本-》詞彙分割-》詞彙過濾(去除stop word)-》詞幹提取-》大小寫轉換-》輸出結果

細節部分此處不做過多介紹

4.3 中文分詞

漢語是以字爲基本的書寫單位,詞語之間沒有明顯的區分標記,因此,中文詞語分詞對比英文分詞要複雜許多。常用的分詞方法主要包括1:詞典匹配分詞法
2:語義理解分詞法 3:詞頻統計分詞法.

4.3.1 詞典匹配分詞法

這種方法按照一定策略將待分析的漢字串與一個“充分大的”機器詞典中的詞條進行匹配,若在詞典中找到某個字符串,則匹配成功。識別出一個詞,根據掃描方向的不同分爲正向匹配和逆向匹配。根據不同長度優先匹配的情況,分爲最大(最長)匹配和最小(最短)匹配,該方法簡單、分詞效率較高,但漢語語言現象複雜豐富,詞典的完備性、規則的一致性等問題使其難以適應開放的大規模文本的分詞處理

4.3.2 語義理解分詞法

該方法主要基於句法、語法分析,並結合語義分析,通過對上下文內容所提供信息的分析對詞進行定界,它通常包括三個部分:分詞子系統、句法語義子系統、總控部分。在總控部分的協調下,分詞子系統可以獲得有關詞、句子等的句法和語義信息來對分詞歧義進行判斷。這類方法試圖讓機器具有人類的理解能力,需要使用大量的語言知識和信息。由於漢語語言知識的籠統、複雜性,難以將各種語言信息組織成機器可直接讀取的形式。因此目前基於知識的分詞系統還處在試驗階段。

4.3.3 詞頻統計分詞法

主要思想:上下文中,相鄰的字同時出現的次數越多,就越可能構成一個詞。因此字與字相鄰出現的概率或頻率能較好的反映詞的可信度。

主要統計模型爲:N元文法模型(N-gram)、隱馬爾科夫模型(Hidden Markov Model, HMM)。

5.倒排索引

倒排索引也常被稱爲反向索引,是一種索引的方法,被用來存儲在全文搜索下某個單詞在一個或是一組文檔中的存儲位置的映射,是文檔檢索系統中最常用的數據結構。

下面通過一個例子來對倒排索引做一個簡單的說明:
原始文檔集合的截圖如下:
這裏寫圖片描述

通常建立倒排索引的步驟如下:
1. 用分詞系統將文檔自動切分成單詞序列,每個文檔就轉換爲由單詞序列構成的數據流;

  1. 對每個不同單詞賦予唯一的單詞編號(ID),並記錄每個單詞對應的文檔頻率(文檔集合中,包含某個單詞的文檔數量,佔文檔總數量的比率)、包含該單詞的對應文檔編號(DocID)、該單詞在各對應文檔中的詞頻(TF)(在某個文檔中出現的次數)、該單詞出現在某個文檔中的位置(POS)等;

最後索引後得到的結果如下:
這裏寫圖片描述

含義解讀:以單詞“跳槽”爲例,其單詞編號爲4,文檔頻率爲2,代表整個文檔集合中有兩個文檔包含這個單詞,對應的倒排列表爲{(1;1;<4>),(4;1;<4>)},其含義爲在文檔1和文檔4中出現過這個單詞,單詞頻率都爲1,單詞“跳槽”出現在兩個文檔中的位置都是4,即文檔中第四個單詞是“跳槽”。

6.檢測模型

檢測模型是判斷文檔與用戶查詢相關性的核心技術。本章節將簡單介紹幾個常見的檢測模型

6.1 布爾檢測模型

6.1.1 原理

布爾檢索模型主要是把AND,OR,NOT三種邏輯運算符把檢索詞連接起來,構成一個邏輯檢索式。

6.1.2 優點

  1. 簡單,容易理解
  2. 可以處理結構化查詢
  3. 速度快

6.1.3 缺點

  1. 檢索策略只是基於0或是1的完全匹配
  2. 不存在語義特性
  3. 沒有加權的概念

6.2 tf-idf檢測模型

6.2.1 原理

TF-IDF是一種統計方法,用以評估一字詞對於一個文件集或一個語料庫中的其中一份文件的重要程度。字詞的重要性隨着它在文件中出現的次數成正比增加,但同時會隨着它在語料庫中出現的頻率成反比下降。

TFIDF的主要思想是:如果某個詞或短語在一篇文章中出現的頻率TF高,並且在其他文章中很少出現,則認爲此詞或者短語具有很好的類別區分能力,適合用來分類。TF-IDF實際上是:TF * IDF,TF詞頻(Term Frequency),IDF逆向文件頻率(Inverse Document Frequency)。TF表示詞條在文檔d中出現的頻率。IDF的主要思想是:如果包含詞條t的文檔越少,也就是n越小,IDF越大,則說明詞條t具有很好的類別區分能力。如果某一類文檔C中包含詞條t的文檔數爲m,而其它類包含t的文檔總數爲k,顯然所有包含t的文檔數n=m+k,當m大的時候,n也大,按照IDF公式得到的IDF的值會小,就說明該詞條t類別區分能力不強。但是實際上,如果一個詞條在一個類的文檔中頻繁出現,則說明該詞條能夠很好代表這個類的文本的特徵,這樣的詞條應該給它們賦予較高的權重,並選來作爲該類文本的特徵詞以區別與其它類文檔。

[來源於百度百科]

6.3 向量空間模型

6.3.1 原理

該方法主要是把文本內容轉換爲向量空間的向量運算,以空間上的相似度表達語義的相似度。該模型的數學基礎是餘弦相似性理論。

6.4 概率檢索模型

6.4.1 原理

是目前效果最好的模型之一,okapi BM25這一經典概率模型計算公式已經在搜索引擎的網頁排序中廣泛使用。概率檢索模型是從概率排序原理推導出來的。

基本思想是:

是通過概率的方法將查詢和文檔聯繫起來,給定一個用戶查詢,如果搜索系統能夠在搜索結果排序時按照文檔和用戶需求的相關性由高到底排序,那麼這個搜索系統的準確性是最優的。在文檔集合的基礎上儘可能準確地對這種相關性進行估計就是其核心。

6.4.2 優點

  1. 採用嚴格的數學理論爲依據,爲人們提供了一種數學理論基礎來進行檢索決策;PubMed的related articles 。
  2. 採用相關反饋原理
  3. 在其中沒有使用用戶難以運用的布爾邏輯方法;
  4. 在操作過程中使用了詞的依賴性和相互關係。

6.4.3 缺點

  1. 計算複雜度大,不適合大型網絡
  2. 參數估計難度較大
  3. 條件概率值難估計
  4. 系統的檢索性能提高不明顯,需與其他檢索模型結合
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章