图2.1 整词二分词典结构示意图
查询时根据待查词的首字哈希值能够确定以该字为首的所有词的位置。根据首字的不同可以将词典分为许多小数组,使分散的小数组均小于4kB,这样可以方便预取到内存中。比如可以将所有首字相同的词语放在一起。较大的数组也可以采取相应的措施将其分割成小数组。如果同一首字下的词语过多则可以考虑根据第二个字的哈希值对该首字下的词语再分,这种类似多级词典结构的词典构造。
这种词典结构简单,占用空间小且便于维护,但其效率低。这种词典结构对算法的要求比有序线性词典对算法的要求高。
3)基于逐字二分的分词词典机制
这种词典的结构与整词二分法的词典结构相同,只是在查询时逐字二分采用“逐字匹配”,每次仅比较单个的汉字。基于逐字二分的词典结构可做到效果和TRIE索引树一样,不需要预知待查词的长度,并在扫描汉字串的过程中就能得到所有可能的切分。所以这不是完全意义上的逐字匹配。逐字匹配查询效率高但词典文件复杂,整词二分效率差但其词典的数据结构简单。
4)基于TRIE索引树的分词词典机制
基于TRIE索引树的词典主要由首字散列表和TRIE索引树结点两部分组成。