中文字典搜索引擎及在中文字典中快速定位字的方法.pdf

上传人:r5 文档编号:504244 上传时间:2018-02-19 格式:PDF 页数:17 大小:711.80KB
返回 下载 相关 举报
摘要
申请专利号:

CN200410104045.X

申请日:

2004.12.31

公开号:

CN1632798A

公开日:

2005.06.29

当前法律状态:

终止

有效性:

无权

法律详情:

未缴年费专利权终止IPC(主分类):G06F 17/30申请日:20041231授权公告日:20081203终止日期:20111231|||授权|||实质审查的生效|||公开

IPC分类号:

G06F17/30; G06F17/20

主分类号:

G06F17/30; G06F17/20

申请人:

北京中星微电子有限公司;

发明人:

谭帅

地址:

100083北京市海淀区学院路35号世宁大厦15层

优先权:

专利代理机构:

北京同达信恒知识产权代理有限公司

代理人:

黄志华

PDF下载: PDF下载
内容摘要

本发明公开了一种在中文字典中快速定位字的方法,该方法为:将中文字典内中文字相对于该中文字典的起始位置的字典内偏移量形成索引表,根据输入中文字的GB2312/GBK编码来从索引表中获取该中文字对应的字典内偏移量,最后根据字典内偏移量和中文字典的起始位置来直接定位中文字。本发明同时公开了一种中文字典搜索引擎。本发明通过采用以中文字的GB2312/GBK编码排序方式从中文字典中定位输入的中文字,不仅速度快,而且在定位过程中占用资源少。

权利要求书

1: 一种在中文字典中快速定位字的方法,所述中文字典中的中文字采用 GB2312/GBK编码;其特征在于,该方法包括如下步骤: A、建立中文字典内中文字的GB2312/GBK编码与该中文字在所述中文字 典中相对于中文字典起始位置的字典内偏移量之间的对应关系; B、根据输入的中文字的GB2312/GBK编码查询所述对应关系得到对应的 字典内偏移量; C、根据中文字典的起始存储位置和所述字典内偏移量直接在该中文字典中 定位所述输入的中文字。
2: 如权利要求1所述的方法,其特征在于,所述对应关系存储在一个索引 表中,将GB2312/GBK编码作为索引并按编码升序排列。
3: 如权利要求2所述的方法,其特征在于,步骤B包括如下步骤: 根据输入的中文字的第一字节所表示的GB2312/GBK表编号和所述索引表 的起始位置,确定该中文字所在的GB2312/GBK表中第一个中文字的编码在所 述索引表中的起始位置; 根据所述输入的中文字的第二字节所表示的该中文字在GB2312/GBK表中 的行号和列号,计算出该中文字相对于GB2312/GBK表中第一个字的表内偏移 量; 根据所述起始位置和所述表内偏移量确定出该中文字的编码在索引表的位 置,并读取字典内偏移量。
4: 如权利要求3所述的方法,其特征在于,在读取字典内偏移量之前还判 断对应的GB2312/GBK编码是否为空,如果是则结束定位并提示该输入的中文 字不在中文字典中,否则继续后续步骤。
5: 一种在中文字典中快速定位字的方法,所述中文字典中的中文字采用 GB2312/GBK编码;其特征在于,该方法包括如下步骤: A、将中文字典内中文字相对于该中文字典的起始位置的字典内偏移量,按 GB2312/GBK编码表和对应中文字的GB2312/GBK编码顺序保存以形成索引 表; B、根据输入中文字的编码中第一字节所表示的GB2312/GBK表编号和第 二字节所表示的该中文字在GB2312/GBK表中的行号和列号,计算出该中文字 所对应的字典内偏移量在所述索引表中的位置,并从该位置读取字典内偏移量; C、根据中文字典的起始存储位置和所述字典内偏移量直接在该中文字典中 定位所述输入的中文字。
6: 如权利要求5所述的方法,其特征在于,步骤B包括如下步骤: 根据输入的中文字的第一字节所表示的GB2312/GBK表编号和所述索引表 的起始位置,确定该中文字所在的GB2312/GBK表中的第一个中文字对应的字 典内偏移量在所述索引表的位置; 根据所述输入的中文字的第二字节所表示的该中文字在GB2312/GBK表中 的行号和列号,计算出该中文字在GB2312/GBK表中相对于第一个中文字的表 内偏移量; 根据所述第一个中文字对应的偏移量和所述表内偏移量确定出该中文字对 应的字典内偏移量在所述索引表中的位置,并读取字典内偏移量。
7: 如权利要求3所述的方法,其特征在于,在读取偏移量之前还判断偏移 量是否为空,如果是则结束定位并提示该输入的中文字不在中文字典中,否则 继续后续步骤。
8: 一种中文字典搜索引擎,用于从所述中文字典中快速定位输入的中文字, 所述中文字典内的中文字采用GB2312/GBK编码;其特征在于包括: 第一模块,用于建立和保存中文字典内中文字的GB2312/GBK编码与该中 文字在所述中文字典中相对于中文字典起始位置的字典内偏移量之间的对应关 系; 第二模块,用于接收输入的中文字,并利用该中文字的GB2312/GBK编码 从所述第一模块得到对应的字典内偏移量; 第三模块,用于根据中文字典的起始存储位置和所述字典内偏移量,直接 在该中文字典中定位所述输入的中文字并输出。
9: 如权利要求8所述的中文字典搜索引擎,其特征在于,所述第二模块包 括: 第一单元,用于根据输入的中文字的第一字节所表示的GB2312/GBK表编 号和所述索引表的起始位置,计算出该中文字所在的GB2312/GBK表中第一个 中文字的编码在所述索引表中的起始位置; 第二单元,用于根据所述输入的中文字的第二字节所表示的该中文字在 GB2312/GBK表中的行号和列号,计算出该中文字相对于GB2312/GBK表中第 一个字的表内偏移量; 第三单元,根据第一单元和第二单元的结果确定出该中文字的编码在索引 表的位置,并读取字典内偏移量。
10: 一种中文字典搜索引擎,用于从所述中文字典中快速定位输入的中文 字,所述中文字典内的中文字采用GB2312/GBK编码;其特征在于包括: 第一模块,用于按GB2312/GBK编码表和对应中文字的GB2312/GBK编码 顺序,保存中文字典内中文字相对于该中文字典的起始位置的字典内偏移量; 第二模块,用于接收输入的中文字,并根据输入中文字的编码中第一字节 所表示的GB2312/GBK表编号和第二字节所表示的该中文字在GB2312/GBK表 中的行号和列号,计算出该中文字所对应的字典内偏移量在所述第一模块中的 位置,并从第一模块读取字典内偏移量; 第三模块,用于根据中文字典的起始存储位置和所述字典内偏移量,直接 在该中文字典中定位所述输入的中文字并输出。
11: 如权利要求10所述的中文字典搜索引擎,其特征在于,所述第二模块 包括: 第一单元,用于根据输入的中文字的第一字节所表示的GB2312/GBK表编 号和所述索引表的起始位置,计算出该中文字所在的GB2312/GBK表中第一个 中文字的编码在所述索引表中的起始位置; 第二单元,用于根据所述输入的中文字的第二字节所表示的该中文字在 GB2312/GBK表中的行号和列号,计算出该中文字相对于GB2312/GBK表中第 一个字的表内偏移量; 第三单元,根据第一单元和第二单元的结果确定出该中文字的编码在索引 表的位置,并读取字典内偏移量。

说明书


中文字典搜索引擎及在中文字典中快速定位字的方法

    【技术领域】

    本发明涉及一种中文字典搜索引擎及在中文字典中快速定位字的方法。

    背景技术

    对文字的搜索技术,常见有遍历和折半查找等技术。在中文字词的搜索技术中,一般用遍历等方法,即一条一条词目进行对比查找。

    这种搜索方法随机性强,采用简单的算法则需要相当的时间方可获得结果,而采用复杂的方法又对处理的效率和内存空间需求也相当大。因此,对于中等规模的中文字词数据量的搜索应用,如中文字典,这种方法便不适用了。总之,采用现的搜索方法在中文字典中定位文字时,速度均比较慢,从而导致效率低下。

    【发明内容】

    本发明提供一种中文字典搜索引擎及在中文字典中快速定位字的方法,以解决现有技术在中文字典中定位字时存在效率低的问题。

    为解决上述问题,本发明提供以下技术方案:

    一种在中文字典中快速定位字的方法,所述中文字典中的中文字采用GB2312/GBK编码;该方法包括如下步骤:

    A、建立中文字典内中文字的GB2312/GBK编码与该中文字在所述中文字典中相对于中文字典起始位置的字典内偏移量之间的对应关系;

    B、根据输入的中文字的GB2312/GBK编码查询所述对应关系得到对应的字典内偏移量;

    C、根据中文字典的起始存储位置和所述字典内偏移量直接在该中文字典中定位所述输入的中文字。

    一种在中文字典中快速定位字地方法,所述中文字典中的中文字采用GB2312/GBK编码;该方法包括如下步骤:

    A、将中文字典内中文字相对于该中文字典的起始位置的字典内偏移量,按GB2312/GBK编码表和对应中文字的GB2312/GBK编码顺序保存以形成索引表;

    B、根据输入中文字的编码中第一字节所表示的GB2312/GBK表编号和第二字节所表示的该中文字在GB2312/GBK表中的行号和列号,计算出该中文字所对应的字典内偏移量在所述索引表中的位置,并从该位置读取字典内偏移量;

    C、根据中文字典的起始存储位置和所述字典内偏移量直接在该中文字典中定位所述输入的中文字。

    一种中文字典搜索引擎,用于从所述中文字典中快速定位输入的中文字,所述中文字典内的中文字采用GB2312/GBK编码;其特征在于包括:

    第一模块,用于建立和保存中文字典内中文字的GB2312/GBK编码与该中文字在所述中文字典中相对于中文字典起始位置的字典内偏移量之间的对应关系;

    第二模块,用于接收输入的中文字,并利用该中文字的GB2312/GBK编码从所述第一模块得到对应的字典内偏移量;

    第三模块,用于根据中文字典的起始存储位置和所述字典内偏移量,直接在该中文字典中定位所述输入的中文字并输出。

    所述第二模块包括:

    第一单元,用于根据输入的中文字的第一字节所表示的GB2312/GBK表编号和所述索引表的起始位置,计算出该中文字所在的GB2312/GBK表中第一个中文字的编码在所述索引表中的起始位置;

    第二单元,用于根据所述输入的中文字的第二字节所表示的该中文字在GB2312/GBK表中的行号和列号,计算出该中文字相对于GB2312/GBK表中第一个字的表内偏移量;

    第三单元,根据第一单元和第二单元的结果确定出该中文字的编码在索引表的位置,并读取字典內偏移量。

    本发明将中文字典内中文字相对于该中文字典的起始位置的字典内偏移量,按GB2312/GBK编码表和对应中文字的GB2312/GBK编码顺序保存以形成索引表,根据输入中文字的GB2312/GBK编码来查询到对应的字典內偏移量,最后根据字典内偏移量和中文字典的起始位置来定位中文字,因而,使每个字词的搜索时间基本固定可控,不仅定位中文字的时间短和效率高,而且在定位过程中占用的资源少,可节省內存及存储器空间。

    【附图说明】

    图1、图2为本发明中两种索引表的示意图;

    图3、图4分别为采用图1、图2所示索引表实现字定位的流程图。

    图5为本发明的中文字典搜索引擎的结构框图。

    【具体实施方式】

    本发明通过采用以中文字的GB2312或GBK编码排序方式从中文字典中定位输入的中文字。其核心思想是:将中文字典內中文字相对于该中文字典的起始位置的字典內偏移量形成索引表,根据输入中文字的GB2312/GBK编码来从索引表中获取该中文字对应的字典內偏移量,最后根据字典內偏移量和中文字典的起始位置来直接定位中文字。

    汉字的GBK编码和GB2312编码都是一种国家制定的中文编码表,由两个字节描述一个汉字。GBK是GB2312的扩展编码。本实施例主要以GBK编码为例进行说明。

    基本GBK表格式如下:

    CC0   1   2   3   4   5   6   7   8   9   A   B   C   D   E   F

    4藹  藺  藼  藽  藾  蘀  蘁  蘂  蘃  蘄  蘆  蘇  蘈  蘉  蘊  蘋

    5蘌  蘍  蘎  蘏  蘐  蘒  蘓  蘔  蘕  蘗  蘘  蘙  蘚  蘛  蘜  蘝

    6蘞  蘟  蘠  蘡  蘢  蘣  蘤  蘥  蘦  蘨  麋  蘫  蘬  蘭  蘮  蘯

    7蘰  蘱  蘲  蘳  蘴  蘵  蘶  蘷  蘹  蘺  蘻  蘽  蘾  蘿  虀

    8虁  虂  虃  虄  虅  虆  虇  虈  虉  虊 虌  虒  虓  處  虖

    9虗  虘  虙  虛  虜  虝  號  虠  虡  虣  虤  虥  虦  虧  虨  虩

    A虪  獭  挞  蹋  踏  胎  苔  抬  台  泰  酞  太  态  汰  坍  摊

    B贪  瘫  滩  坛  檀  痰  潭 谈  坦  毯  袒  碳  探  叹  炭

    C汤  塘  搪  堂  棠  膛  唐  糖  倘  躺  淌  趟  烫  掏  涛  滔

    D绦  萄  桃  逃  淘  陶  讨  套  特  藤  腾  疼  誊  梯  剔  踢

    E锑  提  题  蹄  啼  体  替  嚏  惕  涕  剃  屉  天  添  填  田

    F甜  恬  舔  腆  挑  条  迢  眺  跳  贴  铁  帖  厅  听  烃

    中文字GBK编码为两个字节,其中第一字节为该表(Table)的编号,其范围为:81~FE;第二字节的高四位为行(Row)标号,其范围为:4~F,第二字节的低四位为列(Column)标号,其范围为:0~F。例如表中“谭”字的编码为:CCB7。

    对于GBK一共有:FE-81+1=254-129+1=126个表,每个表有:F-4+1=15-4+1=12行,每个表有F-0+1=15-0+1=16列。因此,每个表包含16(列)×12(行)=192个汉字,总共有:126(表)×192(字)=24192字。

    字典中的文字顺序可以随意排列。只是这个字后的词,必须仅跟其后,以便在定位到第一个字时,能够快速的查询到以该字开头的词。如:

    人

    人民

    人员

    阿

    阿姨

    阿妹

    在本实施例中,索引表的建立可以采用两种方式(但不限于两种):

    一种方式是采用中文字典内中文字的GBK编码与该中文字在所述中文字典中相对于中文字典起始位置的字典内偏移量之间的对应关系,将中文字的GBK编码作为索引。

    如图1所示,在索引表中,中文字的GBK编码按升序排列,中文字典中排列的中文字相对于该字典的起始位置的偏移量占用4个字节。如图中所示,GBK表的第一个表即编号为“81”的GBK表在索引表的最前面,该GBK中的字按行的先后顺序排列。如表开始位置的索引编码为“8140”,即代表81号GBK表中的第一个字,该编码对应的是该字在中文字典中相对于字典起始位置的偏移量;开始位置之后的编码为“8411”,即代表81号GBK表中的第二个字,以此类推。

    在获取该中文字对应的字典内偏移量时根据输入的中文字的GBK编码来从索引表中查询到对应的偏移量。

    第二种方式是将中文字典内中文字相对于该中文字典的起始位置的字典内偏移量,按GBK编码表和对应中文字的GBK编码顺序保存来建立索引表。

    如图2所示,在索引表中,字典内偏移量的排列顺序与中文字的GBK编码升序排列相对应。如图中所示,索引表从开始位置起的连续4个字节保存的是GBK表的第一个表即编号为“81”的GBK表中的第一个字(即GBK编码为“8410”)对应的字典内偏移量,在之后的连续4个字节为第二个字对应的偏移量。以此类推。

    在建立索引表过程中,如果某一个GBK编码之后的编码所代表的字不在中文字典中,则在图1的索引表中将相应位置的编码置空,在图2所示的索引表中将相应位置的字典内偏移量置空。置空是指设置特定的与其他编码或字典内偏移量不同的标记。

    因此,根据索引表的不同,字定位的实现有所有不同。采用图1所示索引表实现字定位的过程如图3所示:

    步骤1、建立中文字典内中文字的GBK编码与该中文字在所述中文字典中相对于中文字典起始位置的字典内偏移量之间的对应关系,如图1所示。

    步骤2、根据输入的中文字的第一字节所表示的GBK表编号和所述索引表的起始位置,确定该中文字所在的GBK表中第一个中文字的编码在所述索引表中的起始位置。

    步骤3、根据所述输入的中文字的第二字节所表示的该中文字在GBK表中的行号和列号,计算出该中文字相对于GBK表中第一个字的表内偏移量。

    步骤4、根据所述起始位置和所述表内偏移量确定出该中文字的编码在索引表的位置,并读取字典内偏移量。

    步骤5、根据中文字典的起始存储位置和所述字典内偏移量直接在该中文字典中定位所述输入的中文字。

    为了能对空字符及时给予提示,在步骤4中,读取字典内偏移量之前判断对应的GBK编码是否为空,如果是则结束定位并提示该输入的中文字不在中文字典中,否则继续步骤5。

    采用图2所示索引表实现字定位的过程如图4所示:

    步骤11、将中文字典内中文字相对于该中文字典的起始位置的字典内偏移量,按GBK编码表和对应中文字的GBK编码顺序保存以形成索引表;

    步骤12、根据输入的中文字的第一字节所表示的GBK表编号和所述索引表的起始位置,确定该中文字所在的GBK表中的第一个中文字对应的字典内偏移量在所述索引表的起始位置;

    步骤13、根据所述输入的中文字的第二字节所表示的该中文字在GBK表中的行号和列号,计算出该中文字在GBK表中相对于第一个中文字的表内偏移量;

    步骤14、根据所述第一个中文字对应的偏移量和所述表内偏移量确定出该中文字对应的字典内偏移量在所述索引表中的位置,并读取字典内偏移量。

    步骤15、根据中文字典的起始存储位置和所述字典内偏移量直接在该中文字典中定位所述输入的中文字。

    为了能对空字符及时给予提示,在步骤14读取偏移量之前还判断偏移量是否为空,如果是则结束定位并提示该输入的中文字不在中文字典中,否则继续步骤15。

    从以下可看出,两者的区别在于索引表和在索引表中获取偏移量有所区别。对表的对于图1所示的索引表,主要根据是根据输入的中文字的GBK编码来定位该编码在索引表的位置,对于图2所示的索引表,主要根据输入的中文字的GBK编码来定位对应的偏移量在索引表中的位置。下面通过字典内偏移量占用4字节(byte)空间来说明。

    (1)根据输入的中文字的GBK编码中第一字节编码计算出该字所在GBK表的定位号:

    7E(总表数)-(FE-第一字节编码)-1,其中以81为起始,FE为终结,起始号81为0。

    (2)输入的中文字所在的GBK表在索引表中的起始位置:

    定位号×192(每个表的字数)×N;对于图1的索引,N为2,即每个字的GBK编码的字节数(如果编码与对应的字典内偏移量连续存放,即前两个字节为编码,紧接着的为4个字节的字典内偏移量,在这种情况下N就为2+4,即6个字节);对于图2,N为4,即每个字典内偏移量占用的字节数。

    (3)根据输入的中文字的GBK编码的第二字节计算出字的表内偏移量:

    [192(总字数)-(256-第二字节编码(Hex))]×N,其中,256为最后字编码(FF)+1;对于图1的索引,N为2+4,即每个字的GBK编码的字节数;对于图2,N为4,即每个字典内偏移量占用的字节数。

    (4)将GBK表在索引表中的起始位置加上表内偏移量即可获得输入的中文字对应的字典内偏移量。

    根据上述的描述,本发明同样可以得到从中文字典中快速定位输入的中文字的中文字典搜索引擎,该搜索引擎与计算机装置中处理器、存储器和输入设备部件实现中文字定位。如图5所示,中文引擎包括:

    第一模块,用于建立和保存中文字典内中文字的GB2312/GBK编码与该中文字在所述中文字典中相对于中文字典起始位置的字典内偏移量之间的对应关系;

    第二模块,用于接收输入的中文字,并利用该中文字的GB2312/GBK编码从所述第一模块得到对应的字典内偏移量;

    第三模块,用于根据中文字典的起始存储位置和所述字典内偏移量,直接在该中文字典中定位所述输入的中文字并输出。

    上述第二模块包括:

    第一单元,用于根据输入的中文字的第一字节所表示的GB2312/GBK表编号和所述索引表的起始位置,计算出该中文字所在的GB2312/GBK表中第一个中文字的编码在所述索引表中的起始位置;

    第二单元,用于根据所述输入的中文字的第二字节所表示的该中文字在GB2312/GBK表中的行号和列号,计算出该中文字相对于GB2312/GBK表中第一个字的表内偏移量;

    第三单元,根据第一单元和第二单元的结果确定出该中文字的编码在索引表的位置,并读取字典内偏移量。

    同样,另外一种中文字典搜索引擎(其结构参考图5)包括:

    第一模块,用于按GB2312/GBK编码表和对应中文字的GB2312/GBK编码顺序,保存中文字典内中文字相对于该中文字典的起始位置的字典内偏移量;

    第二模块,用于接收输入的中文字,并根据输入中文字的编码中第一字节所表示的GB2312/GBK表编号和第二字节所表示的该中文字在GB2312/GBK表中的行号和列号,计算出该中文字所对应的字典内偏移量在所述第一模块中的位置,并从第一模块读取字典内偏移量;

    第三模块,用于根据中文字典的起始存储位置和所述字典内偏移量,直接在该中文字典中定位所述输入的中文字并输出。

    所述第二模块包括:

    第一单元,用于根据输入的中文字的第一字节所表示的GB2312/GBK表编号和所述索引表的起始位置,计算出该中文字所在的GB2312/GBK表中第一个中文字的编码在所述索引表中的起始位置;

    第二单元,用于根据所述输入的中文字的第二字节所表示的该中文字在GB2312/GBK表中的行号和列号,计算出该中文字相对于GB2312/GBK表中第一个字的表内偏移量;

    第三单元,根据第一单元和第二单元的结果确定出该中文字的编码在索引表的位置,并读取字典内偏移量。

    对采用GB2312编码的中文字的定位处理与上述方法同理,不再赘述。

    显然,本发明的索引表还可以是其他形式,因此,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若对本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

中文字典搜索引擎及在中文字典中快速定位字的方法.pdf_第1页
第1页 / 共17页
中文字典搜索引擎及在中文字典中快速定位字的方法.pdf_第2页
第2页 / 共17页
中文字典搜索引擎及在中文字典中快速定位字的方法.pdf_第3页
第3页 / 共17页
点击查看更多>>
资源描述

《中文字典搜索引擎及在中文字典中快速定位字的方法.pdf》由会员分享,可在线阅读,更多相关《中文字典搜索引擎及在中文字典中快速定位字的方法.pdf(17页珍藏版)》请在专利查询网上搜索。

本发明公开了一种在中文字典中快速定位字的方法,该方法为:将中文字典内中文字相对于该中文字典的起始位置的字典内偏移量形成索引表,根据输入中文字的GB2312/GBK编码来从索引表中获取该中文字对应的字典内偏移量,最后根据字典内偏移量和中文字典的起始位置来直接定位中文字。本发明同时公开了一种中文字典搜索引擎。本发明通过采用以中文字的GB2312/GBK编码排序方式从中文字典中定位输入的中文字,不仅速度。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1