全文資訊檢索介紹及演算法分析

2021-04-13 02:26:08 字數 1496 閱讀 2410

全文資訊檢索介紹及演算法分析

一、摘要

本文主要介紹了全文資訊檢索的概念、應用領域、演算法分類、技術難點和演算法比較。及一款實現全文檢索的資料結構和演算法。

、什麼是全文資料庫和全文資訊檢索

儲存在資料庫中的記錄資料,從型別上可以分為兩種。其一是結構化資料,象字元、日期、數值、貨幣等,這些資料都是具有有限長度或固定格式的資料;其二是非結構化資料,也叫全文資料,象簡歷、簡介、**等,這些資料都是以不定長、非固定格式儲存的字元型資料。

現有的資料庫系統,都是以結構化資料為檢索的主要目標,因為實現相對簡單。比如數值檢索,可以建立一張排序好的索引表,以二分法實現查詢,速度很快。但對於非結構化資料,即全文資料,要想實現檢索,相對難度要大的很多了。

當然,你也許會說:「這個多簡單呀,把全文資料讀到記憶體,然後進行比較查詢不就可以了?」。不錯,的確是乙個很樸素想法。不過最嚴重的問題是,如果資料庫中有1萬條,10萬條,100萬條記錄的話,可以想象一下檢索所消耗的時間了吧?!如果乙個全文資料庫系統,對一條檢索命令的響應時間超過了半分鐘,那麼沒有使用者是能夠容忍的了。

因此,全文檢索的主要目的,就是實現對大容量的非結構化資料的快速查詢。

三、應用領域

現在,隨著計算機使用的越來越普及,資料的積累越來越多,全文檢索的要求也就越來越迫切了。目前,主要的應用領域是:圖書館資料庫、情報資料庫、專利資料庫、醫藥資料庫、辦公自動化、歷史資料庫、電子出版系統、等等。

索引方式

索引比

索引速度

檢索速度

誤查

漏查

詞索引0.8 ~ 2.0慢快

有有字索引0.3 ~ 2.0

稍快稍慢有無

五、一款中文全文資訊檢索演算法的實現

這個演算法是2023年設計並實現的。十年過去了,新版本中使用了更高階的技術,因此該演算法已經廢棄,並得以公開給大家。計算機界有乙個著名的命題:程式 = 資料結構 + 演算法。而公開的這個設計,正是資料結構和演算法的完美體現。呵呵,不吹牛了,看看如何實現的吧。

i 基本原理

六、結束語

學習計算機軟體設計,最重要的一門課程就是《資料結構》。這套全文檢索演算法,正是依靠精妙的資料結構構建出來的,其實說起來也很簡單,就是鍊錶陣列。2023年的時候,pc機大多執行著 dos + windows 3.1 + 中文環境(gb2312),這套演算法正是適應當時的環境而設計的。現在十年過去了,隨著計算機軟硬環境的提公升和全文資料量的增長,該演算法雖然已經廢棄,但通過該演算法,大家一定能體會出「資料結構」的重要性。2023年,我又設計了新的全文檢索演算法,使用的是「資料結構」中的「雜湊表」。不過現在保密,也許10年後再公布吧,嘿嘿。 

全文檢索介紹

全文檢索介紹 資料分類 非結構化資料搜尋 全文搜尋 倒排索引 inverted index 建立索引 1 將文件切分為乙個乙個單獨的詞 2 去除標點符號 3 去除停詞 stop word 1 將單詞轉為小寫 lowercase 2 將單詞縮減為詞根形式 stemming 3 將單詞轉變為詞根形式 l...

Lucene 全文檢索技術介紹

前言 本文只介紹了全文檢索的基礎概念,後面陸續會介紹 lucece 的使用。我們生活種的資料總體分為兩種 結構化資料和非結構化資料 常見的結構化資料也就是資料庫中的資料。在資料庫中搜尋很容易實現,通常都是使用sql語句進行查詢,而且能很快的得到查詢結果。為什麼資料庫搜尋很容易?因為資料庫中的資料儲存...

oracle全文索引(全文檢索)的介紹,使用和創

全文索引 背景介紹 很多時候需要根據key words關鍵字去匹配對應的值,對於大量的資料而已,如果使用like,或者instr函式,速度則會很慢,這個時候,全文檢索對比其他的模糊查詢,有著明顯的速度優勢。但是因為分詞,所以會占用的一定的空間。如果空間足夠以及對速度有一樣的需求,可以考慮全文檢索。根...