质数代换字符串检索技术的制作方法

文档序号:6331811阅读:154来源:国知局
专利名称:质数代换字符串检索技术的制作方法
技术领域
本发明是一种以质数代表基本字符,以质数乘积值代表字符串,对质数乘积值用一个质数或数个质数之乘积进行除法运算,如能整除,或模运算值为0,则可认为其所代表字符串包含这些质数所对应的某一个字符或某几个字符的数据库检索技术。主要目的是实现“用任意层级的偏旁组合检索任意汉字”,同时也可用于改进一般数据库字符串的模糊检索。
背景技术
繁难汉字不能用五笔字形等通用形码输入,通常采用全拼输入法或内码输入,效率低下,迄今未见有效解决方法。
另一方面,数据库中字符串模糊检索采用逐位比较方式进行,如判断字符串bdopfqew中是否包含字符f,计算机以f对字符串从b开始进行逐位比较,效率不高,即使对数据库中字符串字段进行索引,也不能有效地提高模糊检索的效率。
研究一种有效的汉字检索查找方法,同时改进一般数据库字符串模糊检索技术,有文化和经济等多方面效益,发明内容本发明主要针对繁难汉字的检索提出,所以下文重点就汉字检索作说明,其它数据库字符串模糊检索可参照实施。
GBK范围内有“蘮”,但通常形码不能输入此字,故必须通过字典查得其读音为ji,再在全拼输入法中输入ji,翻到28页才出现“蘮”字,费时费力。汉字是由偏旁构成的,理当可以编制一个汉字偏旁数据库,利用组成偏旁查找相应汉字。如“蘮”由艹、罽两个偏旁构成,其中的“罽”又由罒、厂、剡构成,其中的“剡”又由炎、刂构成,其中的“炎”又火、火构成。由于不同的用户对偏旁的分解会有差异,故理想的汉字偏旁数据库必须包含一个汉字的任意层级偏旁,如“罽”必须分解成由艹、罽、罒、厂、剡、炎、刂、火、火,才能实现“任意层级的偏旁检索任意汉字”的目的。
在此基础上,为了简化程序的编写,提高检索速度,本发明提出用若干个质数N来代表汉字的数百个基本偏旁P,由数个基本偏旁P1、P2…组成的上级偏旁S则赋予值M=N1*N2…,而全部汉字H均有由其组成偏旁P1、P2、P3…相应质数N1、N2、N3…的乘积F值,而F值也同时是不同层级偏旁S1、S2…相应的M1、M2…的乘积。
由基本偏旁P、上级偏旁S、全部汉字H对应的质数N、质数乘积M及H可以构建汉字结构信息数据库。数据库中F1值如能被N1整除,则相应的汉字H1必包含相应的偏旁P1;不能被N1整除的Fn值,相应的汉字Hn则不含相应的偏旁P1。
同样,数据库中F2值如能被N1*N2…整除,则相应的汉字H2必同时包含相应的偏旁P1、P2…,不能被N1*N2…整除的Fn值,相应的汉字Hn则不同时包含相应的偏旁P1、P2…。
因此,可以快速而方便地实现“任意层级的偏旁检索任意汉字”。
一、偏旁代表值N的赋值基本原则1.通常以一个质数N代表一个基本偏旁,如7为代表“木”,11代表“亻”。
也可以一个质数N代表几个形近偏旁,原因在于汉字中有不易截然区分之偏旁,如“莫”之中间是“日”,或是“曰”,并不直观,故给“日”和“曰”赋予同一质数47。另处,作为是一种查询检索技术,是迅速地查得结果,并列表供用户作最后挑选,故可用一个质数同时代表若干个罕用偏旁,如以3581代表 “兂”等偏旁。
2.GBK范围21000个汉字,可以用小于5000的600-700个质数N,代表基本偏旁P,约2000个上级编旁的M值则为基本偏旁的相应质数的乘积,即N1*N2,其余约20000个汉字的F值为基本偏旁的相应质数的乘积,即N1*N2…,同时也是各级偏旁的值M的乘积,即M1*M2…。
3.基本偏旁赋予质数N,应该优先给构成复杂汉字的基本偏旁赋予较小的质数N,以避免复杂汉字的F值过大,导致溢出,或不必要地采用多字节数据类型来容纳F值,降低性能。如构成爨、躨、 灨、虪、鱍等字的火、大、木、氵、虍、鬲、犬等基本偏旁应尽可能赋予小于199的质数N,以使这些汉字的F值不过大,是必要的。
二、汉字代表值F的数据类型选择的基本原则1.GBK范围21000个汉字F值的数据类型,以采用双精度较为适当,但应以全部F值小于1.00000000000000E+15为原则,以避免计算机存贮时对大于此值的F值进行截尾,导致此部分F值不是相应N1*N2…的乘积,而造成此部分F值无效。
2.如果希望加快检索速度,F值可采用长整型的数据类型,但GBK范围21000个汉字的F值不易控制在2147483647以内。如果不对汉字作深度细致折分,而采用较大偏旁可以实现,但达不到“用任意层级的偏旁检索任意汉字”的目的。另外,也可以采用一个质数N代表数个基本偏旁的方法,但代价是查询检索会同时出现非目的汉字。
3.对于超出GBK范围汉字,以至全部5万余汉字,实现“用任意层级的偏旁检索任意汉字”,并同时实现形近字、繁简互查,或有必要采取更多字节的数据类型。如货币数据类型最大值922 337 203 685 477.5807,可对F值除10000后保存为货币数据类型,查询时则相应地将值乘10000,容易实现F值的存贮运算,但货币数据类型运算速度远较双精度为慢,是否采用,应视计算机性能及应用需求而定。十进制数据类型精度高于双精度的浮点数据类型,其最大值为79 228 162 514 264 337 593 543 950 335,用来表示F值非常方便,但其运算性能尚待评估。
三、关于数据库的运算建议1.对数据库中字符串字段进行索引,并不能有效地提高模糊检索的效率。采用本发明转换之后字符串表现为质数乘积,因而可以进行索引和排序以提高效率。如果检索偏旁为P1、P2…,则对应的除数为N1*N2…,可以利用索引功能,对数据库中小于N1*N2…的Fn值,不进行运算,仅计算等于大于N1*N2…的Fn值。为有效利用此一特点,可对常用偏旁赋予较大质数,则屡次查询的N1*N2…值平均数较大,有利于减少运算量。
2.模运算值为0,与进行整除运算意义相同,但模运算只支持长整数。
具体实施例方式
实施例1以400至600个质数N代表汉字的基本偏旁、笔画,如以2代表“大”,3代表“丁”,5代表“口”,7代表“木”,11代表“亻”,再用这些基本偏旁之质数的乘积F值给全部汉字赋值,如“可”由“丁”“口”构成,3*5=15,则“可”之F值为15。同理,“奇”之F值为2*5*7=30,“柯”之F值为7*3*5=105,“何”之F值为11*3*5=165。由此,可以构建包含所有汉字及其对应值F的数据库。
通个这种方式给全部汉字赋值后,如果某个汉字包含某一个部首,则该汉字之F值必能为某一部首之质数N整除。如“柯”包含“口”,“柯”之F值必能为“口”之质数N“5”整除;从另一面说,也就是数据库中所有F值能被N“5”整除的汉字必含“口”旁。而所有值F能被15整除的字必同时含“丁”“口”(3*5=15)两个偏旁,通过此种方式可以查找到所有包含“可”旁的汉字。
此一方式,尤其适合于用若干个常见的偏旁查找繁难而不知读音的汉字,如用“木、缶、冖、鬯、乂、匕”等偏旁中的若干个查找 测试条件操作系统Window xp,赛扬800Hz,内存256M,技嘉810主板。
测试结果以access构建GBK范围21000个汉字信息数据库,F值采用双精度数据类型,用VB6.0为编程,以任意偏旁和偏旁组合查询汉字,初步测试,平均费时在1秒内。
实施例2用2、3、5、7、11、13、17、19、23、29、31、37、41、43、47、53、59、61、67、71、73、79、83、89、97、101、103、107、109、113、127、131、137、139、149、151、157、163、167、173、179、181、191、193、197、199、211、223、227、229、233、239、241、251、257、263等56个质数代表丛a-z和A-Z等56个英文字母,则英文词可以用这些质数的乘积F来表示。如able值为2*3*37*11=2442,由此可能建立一个英文单词及其对应F值之数据库。而数据为中所有后缀含able的单词,必能被2442整除,从而可以用能否被2442整除,来查找所有后缀含able的单词。
用这一方法查找会检索到bale等非目的词,不是准确查询,但可以有效地缩小检索范围,然后用字符比较方式作二次检索实现准确查询。
权利要求
1.一种字符串模糊检索技术,其特征在于以若干个质数N1、N2…代表若干个基本字符P1、P2…,以若干个质数之乘积N1*N2…,称为F值,代表对应基本字符P1P2组成的字符串H,则字符串H1、H2、H3、H4…有各自组成基本字符之对应质数的乘积F1、F2、F3、F4…。如果Fn能被N1*N2…整除,则对应字符串Hn包含N1、N2…所对应的基本字符P1、P2…,从而实现字符串模糊检索。对于长整数数据类型,也可用模运算值为0实现检索。
2.按照权利要求1所述的方法,其特征在于以此为基础,简化以多项键词对字符串进行模糊检索的程序代码编写。
3.按照权利要求1所述的方法,其特征在于对数据库中字符串代表值F进行排序、索引,其中小于N1*N2…的F值可不必进行整除或模运算,以提高效率。
4.按照权利要求1所述的方法,其特征在于以汉字为基本字符的汉语词语、专有名词数据库,为避免采用大质数造成数据溢出,使用一个质数代表数个汉字构建数据库,用整除或模运算作初步检索缩小范围,再用通常的字符串逐位比较方法作进一步检索。
5.按照权利要求1及4所述的方法,其特征在于其它语言中,以单词为基本字符的词组、专有名词数据库,为避免采用大质数造成数据溢出,用一个质数代表数个单词构建数据库,作初步检索缩小范围,再用通常的字符串逐位比较方法作进一步的检索。
6.按照权利要求1所述的方法,其特征在于给汉字基本偏旁P1、P2…赋以质数N1、N2…,而汉字H1、H2、H3、H4…则有由各自组成偏旁的相应质数的乘积F1、F2、F3、F4…。如果Fn能被N1*N2…整除,则对应汉字Hn包含N1、N2…所对应的基本偏旁P1、P2…,从而快速有效地用任意层级的偏旁组合检索任意汉字。
7.按照权利要求4及6所述的方法,其特征在于基本原则是以一个质数代表一个基本偏旁,但也可以用一个质数代表数个相近偏旁。
8.按照权利要求1所述的方法,其特征在于其它语言中,以音节为单位赋予质数N,一个单词之F值为其组成音节P1、P2…相应质数之乘积,即N1*N2…,以此构建词汇数据库,实行模糊检索。
全文摘要
一种以若干个质数N1、N2…代表若干个基本字符P1、P2…,以数个质数之乘积N1*N2…,称为F值,代表对应基本字符P1、P2组成的字符串H,由此,字符串H1、H2、H3、H4…有各自基本字符之对应质数的乘积F1、F2、F3、F4,以此建立字符串信息库。如果其中Fn能被N1*N2…整除,则对应字符串Hn包含N1、N2…所对应的基本字符P1、P2…,从而实现数库字符串字段模糊检索。对于长整数数据类型,也可用模运算值为0方法实现同样检索。如果给汉字基本偏旁P1、P2…赋以质数N1、N2…,那么,汉字H1、H2、H3、H4…则有由各自组成偏旁之相应质数的乘积F1、F2、F3、F4…。如果Fn能被N1*N2…整除,则汉字Hn包含N1、N2…所对应的基本偏旁P1、P2…,从而可以快速有效地用任意层级的偏旁组合检索任意汉字。
文档编号G06F17/30GK1588364SQ200410067258
公开日2005年3月2日 申请日期2004年10月19日 优先权日2004年10月19日
发明者徐文新 申请人:徐文新
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1