3.1词典搜索的数据结构与通配符查询
提示:
詞典及容錯性檢索(詞典搜索的數(shù)據(jù)結(jié)構(gòu)與通配符查詢)
本節(jié)最重要的內(nèi)容是:
希望大家學到:
(1)了解詞典查找的數(shù)據(jù)結(jié)構(gòu) (2)理解通配符查詢的思想 (3)掌握編輯距離的計算 (4)理解自動校正技術(shù)的思路>>***其他內(nèi)容(拼寫校正)可轉(zhuǎn)***<<
文章目錄
- 詞典搜索的數(shù)據(jù)結(jié)構(gòu)
- 常用數(shù)據(jù)結(jié)構(gòu)
- 哈希函數(shù)
- 二叉樹
- 字典樹
- B樹
- 通配符查詢
- (1)輪排索引
- (2)支持通配符查詢的k-gram索引
詞典搜索的數(shù)據(jù)結(jié)構(gòu)
常用數(shù)據(jù)結(jié)構(gòu)
哈希函數(shù)
二叉樹
字典樹
B樹
內(nèi)部節(jié)點可以多于兩個
舉例:2-3 B樹只能有2-3個內(nèi)部結(jié)點
點擊直達>>為什么平衡二叉樹不適合索引:
索引是存在于索引文件中,是存在于磁盤中的。因為索引通常是很大的,因此無法一次將全部索引加載到內(nèi)存當中,因此每次只能從磁盤中讀取一個磁盤頁的數(shù)據(jù)到內(nèi)存中。而這個磁盤的讀取的速度較內(nèi)存中的讀取速度而言是差了好幾個級別。
注意,我們說的平衡二叉樹結(jié)構(gòu),指的是邏輯結(jié)構(gòu)上的平衡二叉樹,其物理實現(xiàn)是數(shù)組。然后由于在邏輯結(jié)構(gòu)上相近的節(jié)點在物理結(jié)構(gòu)上可能會差很遠。因此,每次讀取的磁盤頁的數(shù)據(jù)中有許多是用不上的。因此,查找過程中要進行許多次的磁盤讀取操作。
而適合作為索引的結(jié)構(gòu)應(yīng)該是盡可能少的執(zhí)行磁盤IO操作,因為執(zhí)行磁盤IO操作非常的耗時。因此,平衡二叉樹并不適合作為索引結(jié)構(gòu)。
通配符查詢
通配符查詢:
| 尾通配符查詢 | B樹 | mon* |
| 首通配符查詢 | 反向B樹 | *mon |
| 一般通配符查詢 | B樹和反向B樹 | se*mon |
查詢方法:
(1)輪排索引
在字符集中引入新的符號$,標識詞項開始和結(jié)束。
舉例:hello輪排索引部分
輪排索引特點:解決了通配符查詢問題,結(jié)構(gòu)簡單,詞典會非常大
(2)支持通配符查詢的k-gram索引
k-gram代表由k個字符組成的序列。
舉例:在詞項castle中 cas、ast、tle都是3-gram。
?如果用$字符標識詞項開始和結(jié)束。那么該詞項所有的3-gram有:$ca,cas,ast,stl,tle,le$。
總結(jié)
以上是生活随笔為你收集整理的3.1词典搜索的数据结构与通配符查询的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 政策推动加速5G发展 全球统一标准成大势
- 下一篇: 英特尔布局5G 提供端到端的解决方案