全文檢索的原理

2021-07-11 10:56:32 字數 2379 閱讀 2186

參考:

全文檢索歸結為兩個過程:1、建立索引2、索引搜尋

先關注幾個問題:

如何建立索引?

索引中存放的是神馬東西?

如果通過索引進行搜尋?

然後關注幾個重要的概念:

反向索引

倒排表-倒排索引-倒排索引檔案

停詞權重

反向索引:儲存這種對映資訊的索引稱為反向索引

solr/lucene採用反向索引:就是從關鍵字到文件的對映過程

左邊儲存的是字串序列

右邊儲存的是字串的文件(document)編號鍊錶,稱為倒排表(posting list)

欄位串列表和文件編號鍊錶兩者構成了乙個字典。現在想搜尋」lucene」,那麼索引直接告訴我們,包含有」lucene」的文件有:2,3,10,35,92,而無需在整個文件庫中逐個查詢。如果是想搜既包含」lucene」又包含」solr」的文件,那麼與之對應的兩個倒排表去交集即可獲得:3、10、35、92。

停詞(stop word):一種語言中沒有具體含義,一般不會作為搜尋關鍵字

倒排(索引)檔案:invertedfile

倒排索引(又稱反向索引、置入檔案、反向檔案):索引表的每一項都包含乙個屬性值和記錄屬性值各記錄位置的位址。所謂倒排,即不是由記錄來確定屬性值,而是由屬性值來確定各記錄的位置。

權重:越重要的詞權重越高。

問題:如何建立索引?

建立的大致步驟:原始文件-> 分詞元件(tokenizer) -> 詞彙單元(token)-> 語言處理元件(linguistic processor) -> 得到詞(term )->索引元件(indexer)

下面是建立索引的詳細步驟:

1、把原始文件交給分詞元件(tokenizer)

分詞元件(tokenizer)會做一下幾件事情,這一過程稱為tokenize,處理得到的結果為詞彙單元(toekn)

1)將文件分成乙個個的單詞

2)去除標點符號

3)去除停詞

2、詞彙單元(token)傳給語言處理元件(linguistic processor)

語言處理元件(linguistic processor)主要是對詞元(token)做一些處理,如英文的語言處理元件主要做以下工作

1)將所有字母變為小寫(lowercase)

2)將單詞縮減為詞根(stemming)

3)將單詞轉變為詞根形式(lemmetization)

語言處理元件得到的結果為詞(term)

stemming和lemmetization的區別

stemming和lemmetization的相同點:都將單詞最終變為詞根形式

stemming和lemmetization的區別:方式不同,stemming是採用縮減的方式將單詞縮減為詞根,lemmetization是採用轉化的方式將單詞轉變為詞根

stemming和lemmetization的演算法不同:stemming是採取某種固定的演算法進行縮減,如schools縮減為school,將」tional」變為」tion」。

lemmetization是通過實現約定的格式儲存到字典中,如drove轉化為drive,兩者會有交叉的地方。

3、得到的詞(term)傳遞給索引元件(indexer)

.zip:需要的包

.asc:對於asp的應用檔案

.sha1:驗證碼檔案

如何通過索引搜尋?

1、對查詢內容進行詞法分析、語法分析、語言處理

a) 詞法分析:區分查詢內容中單詞和關鍵字,如english and chinese中,and是關鍵字,english和chinese是單詞

b) 根據查詢語法的語法規則生成一棵樹

c) 語言處理,和建立索引時處理方式是一樣一樣的,如driven變為drive

2、搜尋索引,得到符合語法樹的文件集合

3、根據查詢語句和文件的相關性,對結果進行排序

權重

tf:越大越重要

df:越大越不重要

全文檢索技術原理

lucene是solr實現的基礎,而lucene的實現基礎是全文檢索技術 接下就談談基礎的全文檢索技術實現的原理。檢索是指對資料的,所以檢索技術是針對於某一種或特有的型別的資料。而針對於不同的資料型別對應有不同的檢索方式。結構化資料 具有固定格式或有限長度的資料,資料庫 元資料 非結構化資料 長度不...

全文檢索的基本原理

我們生活中的資料總體分為兩種 結構化資料和非結構化資料。結構化資料 指具有固定格式或有限長度的資料,如資料庫,元資料等。非結構化資料 指不定長或無固定格式的資料,如郵件,word文件等。當然有的地方還會提到第三種,半結構化資料,如xml,html等,當根據需要可按結構化資料來處理,也可抽取出純文字按...

什麼叫全文檢索 全文檢索概念

全文檢索是指計算機索引程式通過掃瞄文章中的每乙個詞,對每乙個詞建立乙個索引,指明該詞在文章中出現的次數和位置,當使用者查詢時,檢索程式就根據事先建立的索引進行查詢,並將查詢的結果反饋給使用者的檢索方式。這個過程類似於通過字典中的檢索字表查字的過程。全文檢索的方法主要分為按字檢索和按詞檢索兩種。按字檢...