[发明专利]一种中文词库的构造方法无效
| 申请号: | 200710050516.7 | 申请日: | 2007-11-15 |
| 公开(公告)号: | CN101158955A | 公开(公告)日: | 2008-04-09 |
| 发明(设计)人: | 傅彦;尚明生;陈安龙;王全礼;史伟 | 申请(专利权)人: | 电子科技大学 |
| 主分类号: | G06F17/30 | 分类号: | G06F17/30 |
| 代理公司: | 成都九鼎天元知识产权代理有限公司 | 代理人: | 温利平 |
| 地址: | 611731四川省*** | 国省代码: | 四川;51 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 中文 词库 构造 方法 | ||
技术领域
本发明涉及中文信息处理领域的中文词库存储和操作处理技术,具体来讲,涉及中文信息处理系统中的词库构造方法。
背景技术
词库处理的效率是影响中文信息处理系统性能的关键因素。在国内对词库存储的研究已经有很长一段时间了,传统的词库存储与操作算法一般都是使用AVL树或2-3树等树型结构来实现的。AVL树称为自平衡二叉查找树,任何节点的两个子树的高度差最大为一,查找、插入和删除可能需要通过一次或多次树旋转来重新平衡这个树,在旋转成叶子节点期间最多有logn个节点被旋转,在平均和最坏情况下的时间复杂度为O(logn)。2-3树即为三阶B-树,B-树是一种平衡的多路查找树,所有的数据都存放在叶子节点,而在叶子节点上存放的数据量是有限的,B-树的插入与删除必须满足插入或删除以后的树,依然满足B-树的特性,并且此过程有时比较复杂;在n个元素的2-3树中插入或删除元素需要O(logn)的时间复杂度。在中文分词系统中使用的二分查找算法,由于二分查找只适合有序的线性数组,其查找时间复杂度为O(log n),并且灵活性也受到限制,操作效率较低。
发明内容
本发明的目的在于克服上述现有技术中的不足,提供一种操作效率高的中文词库的构造方法。
为实现上述发明目的,本发明的中文词库的构造方法,其特征在于,包括以下步骤:
(1)、将首字相同的词条放到一张哈希表中,相同首字的词条在哈希表中的位置由哈希函数根据构成词条的汉字编码计算出的哈希值确定;
(2)、建立一个数组,该数组的索引值依据词条首字的汉字编码确定,数组元素值指向与索引值相对应的词条首字的哈希表;
(3)、依据词条首字的汉字编码,确定数组索引值,在数组中找到相应的数组元素,找到该词条首字的哈希表,再根据构成词条的汉字编码,用哈希函数计算出的哈希值,确定该词条在哈希表中的位置;
(4)根据词条的位置来对词条进行操作。
在上述步骤中,对词条的操作包括查找、删除以及更新等。
本发明提出了一种以汉字编码为基础的中文词库构造技术,由于采用数组和哈希表相结合的中文词库的构造方法,可以依据词条首字编码直接在数组中找到该词条首字对应的哈希表,再根据构成词条的汉字编码,用哈希函数计算出的哈希值,直接确定该词条在哈希表中的位置,哈希表查找效率为O(1),与查找时间复杂度分别近似为O(logn)的AVL树查找算法、2-3树查找算法以及二分查找算法相比,操作效率得到了提高。
附图说明
图1是本发明的词库在内存中的一种数据结构图;
图2是图1所示词库中的词条在内存中的一种数据结构图;
图3是图1所示词库中的词条在内存中的另一种数据结构图;
图4是图1所示词库中的词条在磁盘上的物理存储结构图;
具体实施方式
下面结合附图,对本发明优选具体实施方式进行描述。需要提醒注意的是,在以下的描述中,当采用的已知功能和设计的详细描述也许会淡化本发明的主题内容时,这些描述在这儿将被忽略。
图1是本发明一种具体实施方式的词库在内存中的数据结构图。在本实施例中,提取词条首字的GB码,将词条首字GB码的高位和低位作为二维数组PrefixIndex的索引值,即二维数组的下标,二维数组PrefixIndex存放不同哈希表的首地址。
具体来讲,本实施例的词库是根据汉字GB码的特点建立的,GB2312(1980年)一共收录了7445个字符,包括6763个汉字和682个其它符号。汉字区的内码范围高字节从B0-F7,低字节从A1-FE,占用72*94=6768个码位,其中有5个空位是D7FA-D7FE。依据此特点,本实施例的二维数组有72*94个数组元素,即PrefixIndex[0][0]、PrefixIndex[0][1]、PrefixIndex[0][2]......、PrefixIndex[72][94]。
将汉字所在的区号与位号组合在一起就构成了该汉字的外码——“区位码”,它用高低两个字节来表示,高字节表示汉字所在的区号,低字节表示汉字所在的位号。汉字的区位码是唯一的。GB码与区位码之间存在如下关系,假设一个汉字的GB码高位节为HighGB,低位节为LowGB,则此关系可表示为:
HighGB=区码+20H
LowGB=位码+20H
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于电子科技大学,未经电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200710050516.7/2.html,转载请声明来源钻瓜专利网。





