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