【技术实现步骤摘要】
本专利技术涉及,属于信息检索领域。
技术介绍
随着网络信息技术的快速发展,网络信息形成了信息时代的巨大宝藏。信息检索呈现大众化、家庭化的趋势,用户如何进行信息检索构成网络信息的瓶颈。字符串匹配,尤其是非精确字符串匹配,则是信息检索的基础,其重要性犹如发动机之于各种运动机械,是各种信息检索的主要核心竞争技术,直接影响到信息检索的方式、用户界面以及信息检索的质量。四十年来,国内外对非精确字符串匹配的方法研究一直采用基于错误因素的距离计算,最常用的是Levenshtein距离,也称为ED(Edit Distance)距离。这种基于错误因素距离计算方法,存在一些固有问题,造成了信息检索方式的过于单调且信息检索质量也受到一定的影响,问题主要体现在以下四点1)现有的基于错误因素距离计算的非精确字符串匹配研究思路,是一种基于问题表象的研究思路,如插入、删除、替换、交换错误等,这些表象问题并非完全独立、可以严格界定。例如,本质上可以用一个插入错误和一个删除错误替代一个交换错误或者一个替换错误。理论上,基于表象的错误因素的分类方法并不理想,字符串匹配至今没有形成科学的分类体系,这也是其中的重要原因之一。最直接的负面效果体现在采用错误因素很难界定匹配问题的相关理念、特征、值域,选择何种字符串匹配方法处理特定性质的匹配问题变得复杂化,因此,信息检索只能模糊化,信息检索方式只有精确检索和模糊检索(或非精确检索)。2)现有的基于错误因素描述字符串匹配问题的多态性,直接影响到检索方式的分类以及质量。下表反映出基于错误因素对特定问题的错误现象进行描述的多态性。基于错误因素对特定问题 ...
【技术保护点】
一种基于离散性、交叉性、非完全性的字符串模式匹配方法,其步骤为:A步设置特性参数值:用户在用户界面中设置反映离散性的离散数即检索词各字符出现在文本中的离散的字符数;反映交叉性的交叉数即检索词各字符出现在文本中的交叉的字符数或子串 数;反映非完全性的非完全数即检索词各字符未出现在文本中的字符数;并由用户在用户界面中输入检索词;B步字符串匹配及输出:信息处理设备根据用户输入的检索词,对指定的一个文本,以A步设置的离散数、交叉数、非完全数作为匹配约束条件,进行 基于该三种特性的字符串匹配运算,输出精确检索、离散检索、交叉检索、离散交叉检索、非完全检索、离散非完全检索、交叉非完全检索、离散交叉非完全检索共八种检索方式中的一种方式的匹配结果。
【技术特征摘要】
1.一种基于离散性、交叉性、非完全性的字符串模式匹配方法,其步骤为A步设置特性参数值用户在用户界面中设置反映离散性的离散数即检索词各字符出现在文本中的离散的字符数;反映交叉性的交叉数即检索词各字符出现在文本中的交叉的字符数或子串数;反映非完全性的非完全数即检索词各字符未出现在文本中的字符数;并由用户在用户界面中输入检索词;B步字符串匹配及输出信息处理设备根据用户输入的检索词,对指定的一个文本,以A步设置的离散数、交叉数、非完全数作为匹配约束条件,进行基于该三种特性的字符串匹配运算,输出精确检索、离散检索、交叉检索、离散交叉检索、非完全检索、离散非完全检索、交叉非完全检索、离散交叉非完全检索共八种检索方式中的一种方式的匹配结果。2.根据权利要求1所述的一种基于离散性、交叉性、非完全性的字符串模式匹配方法,其特征在于,所述B步的字符串匹配及输出的具体步骤为a步输入参数合法性检验计算出检索词的长度m以及文本的长度n;对n、m、离散数、交叉数、非完全数,进行合法性检验,若不满足合法性,则退出匹配,并返回不匹配的结果;否则,交叉数、非完全数不能超过m-1,若超过则改为m-1;b步循环初始化设置滑动窗位置=1,表示文本中当前第一个正准备处理的位置;对检索词=p1p2……pm中的所有字符,进行稳定的升序排序,并存储在数组PT中,数组PT中同时存储了各字符在检索词中原来的位置,分别称为数组PT中存储的字符子数组PTc以及数组PT中存储的位置子数组PTp;从文本中的第一个字符开始,选取长度为min(m+离散数-1,n-滑动窗位置)的子串作为滑动窗子串,在该滑动窗子串前增加一个小于任何字符的特殊符号,对滑动窗子串的字符进行稳定的升序排序,并存储在数组WT中,数组WT中同时存储了各字符在文本中原有的位置,且特殊符号的位置为零,分别称为数组WT中存储的字符子数组WTc以及数组WT中存储的位置子数组WTp;其中min为最小值函数;c步判定循环是否结束若(n-滑动窗位置+1+非完全数)小于m,则结束处理,并返回不匹配结果;d步进行下一个滑动窗子串匹配的参数初始化滑动窗位置开始,在文本中选取长度为min(m+离散数,n-滑动窗位置+1)的子串作为滑动窗子串,再删除数组WT中最小的存储的位置以及对应的字符,然后对滑动窗子串的最后一个字符进行稳定插入排序,插入到数组WT中,若(n-滑动窗位置+1)<(m+离散数)则不用再进行插入排序;数组POS中全部初始化为-1,实际离散数=0,实际交叉数=0,实际非完全数=0,数组WT的位置W=1,数组PT的位置P=1,最大位置=最小位置=WTp中的第一个数值;e步滑动窗子串匹配是否结束若数组WT比较结束或者数组PT比较结束,则转g步;f步滑动窗子串字符与检索词的字符进行循环比较根据WTc中位置W存储的字符与PTc中位置P存储的字符的比较情况,分别进行以下情况处理若WTc中位置W存储的字符<PTc中位置P存储的字符,则位置W增加1,转e步;若WTp中位置W存储的字符>PTp中位置P存储的字符,则位置P增加1,实际非完全数增加1;若实际非完全数小于或等于非完全数,则转e步,否则,滑动窗位置增加1,转c步;若WTc中位置W存储的字符=PTc中位置P存储的字符,则将WTp中位置W存储的数值存储到数组POS中,其存储位置为PTp中位置P存储的数值;若WTp中位置W存储的数值>最大位置,则将WTp中位置W存储的数值存入最大位置中;若WTp中位置W存储的数值<最小位置,则将WTp中位置W存储的数值存入最小位置中;位置W增加1,位置P增加1,转e步;g步判定滑动窗子串是否满足约束条件求实际非完全数=(实际非完全数+m-位置P+1);若实际非完全数>非完全数,则滑动窗位置增加1,转c步;求实际离散数=(最大位置-最小位置+1-m+实际非完全数);若实际离散数>离散数,则滑动窗位置增加1,转c步;计算实际交叉数;若实际交叉数>交叉数,则滑动窗位置增加1,转c步;h步计算出匹配度临时变量=Sqrt([m-实际非完全数-实际离散数÷(最大位置-最小位置+1)]÷(最大位置-最小位置+实际非完全数+1)×[(m-实际非完全数-实际交叉数)÷m]);其中Sqrt为开方函数;匹配度=Round(100×临时变量);其中Round为四舍五入函数;i步结束匹配并返回如下结果返回匹配度,数组POS,实际离散数,实际交叉数,实际非完全数。3.根据权利要求1所述的一种基于离散性、交叉性、非完全性的字符串模式匹配方法,其特征在于,所述B步的字符串匹配及输出的具体步骤为a步输入参数合法性检验计算出检索词的长度m以及文本的长度n;对n、m、离散数、交叉数、非完全数,进行合法性检验,若不满足合法性,退出匹配,并返回空指针结果;否则,交叉数、非完全数不能超过m-1,若超过则改为m-1;b步循环初始化设置有一个节点的OUT链,该节点中包含如下初始信息最大位置=0、最小位置=0,匹配度=100;设置滑动窗位置=1,表示文本中当前第一个正准备处理的位置;对检索词=p1p2……pm中的所有字符,进行稳定的升序排序,并存储在数组PT中,数组PT中同时存储了各字符在检索词中原来的位置,分别称为数组PT中存储的字符子数组PTc以及数组PT中存储的位置子数组PTp;从文本中的第一个字符开始,选取长度为min(m+离散数-1,n-滑动窗位置)的子串作为滑动窗子串,在该滑动窗子串前增加一个小于任何字符的特殊符号,对滑动窗子串的字符进行稳定的升序排序,并存储在数组WT中,数组WT中同时存储了各字符在文本中原有的位置,且特殊符号的位置为零,分别称为数组WT中存储的字符子数组WTc以及数组WT中存储的位置子数组WTp;其中min为最小值函数;c步判定循环是否结束若(n-滑动窗位置+1+非完全数)小于m,则删除OUT链首节点,退出匹配并返回OUT链;d步进行下一个滑动窗子串匹配的参数初始化滑动窗位置开始,在文本中选取长度为min(m+离散数,n-滑动窗位置+1)的子串作为滑动窗子串,再删除数组WT中最小的存储的位置以及对应的字符,然后对滑动窗子串的最后一个字符进行稳定插入排序,插入到数组WT中,若(n-滑动窗位置+1)<(...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。