发明名称 位标记字符串检索技术
摘要 本发明是一种字符串检索技术,以一个位(bit)对应若干个字符元,以n个位对应全部字符元,也就是分全部字符元为n组,并用一个数据的n个均为0的位,记为W,来标记组字符串的字符元信息。如果字符串S的一个字符元P<sub>1</sub>属于第n组,则将W相应的第n个位标记为1,类似地,根据S其它字符元P<sub>2</sub>、P<sub>3</sub>、P<sub>4</sub>…所属的组对W进行标记,完成全部字符元标记后的W,记录有S的信息,称为S的“位值”,这种方式称为1标记。根据逻辑代数的原理,也可用一个数据的n个均为1的位,记为<img file="200510057491.4_AB_0.GIF" wi="22" he="27" />,来标记组成字符串的字符元信息。如果S的一个字符元P属于第n组,则将数据<img file="200510057491.4_AB_0.GIF" wi="22" he="27" />相应的第n个位标记为0,这种方式称为0标记。通过对S<sub>a</sub>的“位值”W<sub>a</sub>、<img file="200510057491.4_AB_0.GIF" wi="22" he="27" /><sub>a</sub>与S<sub>b</sub>的“位值”W<sub>b</sub>、<img file="200510057491.4_AB_0.GIF" wi="22" he="27" /><sub>b</sub>进行比较,可以判断S<sub>b</sub>不包含、包含或可能包含检索关键词S<sub>b</sub>的所有字符元。例如,对W<sub>a</sub>与W<sub>b</sub>进行位蕴含运算,如果所有的位都有蕴含关系,则S<sub>b</sub>包含或可能包含“S<sub>a</sub>的所有字符元”。如果需要,再用字符逐位比较方法判断S<sub>b</sub>是否包含“S<sub>a</sub>”。位标记既可用于通常意义的检索,即判断数据库字符串是否包含关键词,也可以作“逆检索”,就是判断关键词是否包含数据库字符串,可用于语音输入、拼音输入及汉语分词中,匹配基本句型或词语。如果可用于标记的位数n,是字符串的平均长度m的2倍以上,可以用数个位(bit)的组合对应一组字符元进行标记,可以提高筛选效率,称为多位标记。多位标记,同样可用字符逐位比较方法最终判断字符串S<sub>b</sub>是否包含“S<sub>a</sub>”。位标记字符串检索技术作为一种字符串算法,不仅可用于数据库的字符串查找,也可用于各种数据结构的字符串查找。
申请公布号 CN101488127A 申请公布日期 2009.07.22
申请号 CN200510057491.4 申请日期 2005.09.13
申请人 徐文新 发明人 徐文新
分类号 G06F17/30(2006.01)I 主分类号 G06F17/30(2006.01)I
代理机构 代理人
主权项 1.一种字符串糊检索技术,其特征在于:W指一个数据的n个均为0的位(bit),用W来标记构成字符串的字符元信息,以其中j个位(j=1,2,3,…)为一个组合,则共有<img file="A200510057491C00021.GIF" wi="189" he="112" />个位的组合,相应地分全部字符元为<img file="A200510057491C00022.GIF" wi="186" he="114" />组,以一个位的组合对应一组字符元,进行标记。如果若干个字符串S的一个字符元P<sub>1</sub>属于第r组,则将W的构成第r个位的组合的j个位标记为1,类似地,根据S的其它字符元P<sub>2</sub>、P<sub>3</sub>、P<sub>4</sub>…所属的组对W进行标记,完成全部字符元标记后的W,记录有S的字符元信息,称为若干个字符串S的“位值”,此种方式称为1标记。W指一个数据的n个均为1的位(bit),用W来标记构成字符串的字符元信息,以其中j个位(j=1,2,3,…)为一个组合,则共有<img file="A200510057491C00023.GIF" wi="188" he="114" />个位的组合,相应地分全部字符元为<img file="A200510057491C00024.GIF" wi="186" he="114" />组,以一个位的组合对应一组字符元,进行标记。如果若干个字符串S的一个字符元P<sub>1</sub>属于第r组,则将W的构成第r个位的组合的j个位标记为0,类似地,根据S的其它字符元P<sub>2</sub>、P<sub>3</sub>、P<sub>4</sub>…所属的组对W进行标记,完成全部字符元标记后的W,记录有S的字符元信息,称为若干个字符串S的“位值”,此种方式称为0标记。记Sa的1标记“位值”为W<sub>a</sub>,记S<sub>a</sub>的0标记“位值”为W<sub>a</sub>,记S<sub>b</sub>的1标记“位值”为W<sub>b</sub>,记S<sub>b</sub>的0标记“位值”W<sub>b</sub>,下面方法均可用于字符串比较:或者,I.S<sub>a</sub>和S<sub>b</sub>均用1标记,以W<sub>a</sub>与W<sub>b</sub>进行比较,如果所有W<sub>a</sub>为1的位,W<sub>b</sub>相应的位也为1,则S<sub>b</sub>包含(含等于,下同)或可能包含S<sub>a</sub>的所有字符元。或者,II.S<sub>a</sub>和S<sub>b</sub>均用0标记,以W<sub>b</sub>与W<sub>a</sub>进行比较,如果所有W<sub>b</sub>为1的位,W<sub>a</sub>相应的位也为1,则S<sub>b</sub>包含或可能包含S<sub>a</sub>的所有字符元。或者,III.S<sub>a</sub>用1标记而S<sub>b</sub>用0标记,以W<sub>a</sub>与W<sub>b</sub>进行比较,如果W<sub>b</sub>与W<sub>a</sub>所有相应的位,不同时为1,则S<sub>b</sub>包含或可能包含S<sub>a</sub>的所有字符元。或者,IV.S<sub>a</sub>用0标记而S<sub>b</sub>用1标记,以W<sub>a</sub>与W<sub>b</sub>进行比较,如果W<sub>a</sub>与W<sub>b</sub>所有相应的位,不同时为0,则Sb包含或可能包含S<sub>a</sub>的所有字符元。
地址 200433上海市杨浦区邯郸路220号复旦大学中文系博士后流动站博士后信箱