CN101025750A - 基于离散性、交叉性、非完全性的特性字符串匹配方法 - Google Patents

基于离散性、交叉性、非完全性的特性字符串匹配方法 Download PDF

Info

Publication number
CN101025750A
CN101025750A CNA200710006052XA CN200710006052A CN101025750A CN 101025750 A CN101025750 A CN 101025750A CN A200710006052X A CNA200710006052X A CN A200710006052XA CN 200710006052 A CN200710006052 A CN 200710006052A CN 101025750 A CN101025750 A CN 101025750A
Authority
CN
China
Prior art keywords
array
character
actual
sliding window
perfect
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CNA200710006052XA
Other languages
English (en)
Other versions
CN100498789C (zh
Inventor
丁光耀
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from CN 200610021787 external-priority patent/CN1916896A/zh
Application filed by Individual filed Critical Individual
Priority to CNB200710006052XA priority Critical patent/CN100498789C/zh
Priority to US12/377,722 priority patent/US8015166B2/en
Priority to PCT/CN2007/001061 priority patent/WO2008031306A1/zh
Publication of CN101025750A publication Critical patent/CN101025750A/zh
Application granted granted Critical
Publication of CN100498789C publication Critical patent/CN100498789C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • G06F16/90344Query processing by using string matching techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/174Form filling; Merging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/194Calculation of difference between files

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • General Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种基于离散性、交叉性、非完全性的特性字符串匹配方法,其步骤为:A.用户在用户界面中设置或由信息处理设备自动设置离散数、交叉数、非完全数,输入检索词;B.信息处理设备根据用户输入的检索词,对指定的一个文本,以A步设置的离散数、交叉数、非完全数作为匹配约束条件,进行基于该三种特性的字符串匹配运算,输出精确检索、离散检索、交叉检索、交叉离散检索、非完全检索、离散非完全检索、交叉非完全检索、离散交叉非完全检索共八种检索方式中的一种方式的匹配结果。该种方法提供了八种信息检索方式且操作简单、灵活、方便,可进行定性、定量检索,检索功能强,应用领域广。

Description

基于离散性、交叉性、非完全性的特性字符串匹配方法
技术领域
本发明涉及基于离散性、交叉性、非完全性的特性字符串匹配方法,属于信息检索领域。
背景技术
随着网络信息技术的快速发展,网络信息形成了信息时代的巨大宝藏。信息检索呈现大众化、家庭化的趋势,用户如何进行信息检索构成网络信息的瓶颈。字符串匹配,尤其是非精确字符串匹配,则是信息检索的基础,其重要性犹如发动机之于各种运动机械,是各种信息检索的主要核心竞争技术,直接影响到信息检索的检索方式、检索功能、检索效果、用户界面等。
四十年来,国内外对非精确字符串匹配的方法研究一直采用基于错误因素的距离计算,最常用的是Levenshtein距离,也称为ED(Edit Distance)距离。这种基于错误因素距离计算方法,存在一些固有问题,造成了信息检索方式的过于单调且信息检索质量也受到一定的影响,问题主要体现在以下四点:
1)现有的基于错误因素距离计算的非精确字符串匹配研究思路,是一种基于问题现象的研究思路,如插入、删除、替换、交换、反向错误等。这些现象问题并非完全独立、可以严格界定,呈现出多样化特征,是典型的问题现象。例如,本质上可以用一个插入错误和一个删除错误定性地表示一个替换错误,用一个插入错误和一个删除错误定性地表示一个交换错误。理论上,基于错误因素的字符串匹配分类方法并不理想,字符串匹配至今没有形成科学的分类体系,这是其中的重要原因之一。
最直接的负面效果体现在:采用错误因素很难界定匹配问题的相关理念、特征、值域,选择何种字符串匹配方法处理特定性质的字符串匹配问题变得复杂化,因此,信息检索只能模糊化,信息检索方式只有精确检索和模糊检索(或非精确检索)。
2)现有的基于错误因素描述字符串匹配问题的多态性,直接影响到检索方式的分类以及质量。下表反映出基于错误因素对特定问题的错误现象进行描述的多态性。
        基于错误因素对特定问题进行描述的多态性表
文本  模式 基于错误因素描述
ABCDEFGH   ABCDEFGH 精确匹配(即子串匹配):不允许删除、插入、交换等错误
AB CDEFGH   CDEF 精确匹配(即子串匹配):允许前面、后面的删除
AB CDE FGH   CDF 非精确匹配:1、存在一个删除(E);或2、存在若干前面、后面删除,并且存在一个中间删除(E);或3、存在一个插入(F);或4、存在一个替换(E,F);等
AB CDEFGH   CEDF 非精确匹配:1、存在一个交换(DE,ED);或2、存在两个替换(D,E),(E,D);或3、存在一个插入(D)和一个删除(D);等
AB CDEFGH   CEFD 非精确匹配:1、存在一个删除(D)和一个插入(D);或2、存在两个插入(C),(D);或3、存在两个插入(E),(F);等
AB CD EFGH   ACEFXD 非精确匹配:1、存在两个删除(B),(D)和两个插入(X),(D);或2、存在两个删除(B),(D)和两个替换(G,X),(H,D);等
表中,忽略距离计算的量化影响,基于错误因素对特定文本与模式的匹配问题,存在多种基于错误因素的定性表示方法,反映出描述同一问题的多态性,不便于分类处理。
3)基于错误因素距离计算的非精确字符串匹配方法,由于通过距离计算对各种错误因素进行统一量化处理,如ED(Edit Distance)距离计算,使得匹配中不同错误因素的性质模糊化。距离只反映出文本与模式在特定错误模型下的差异量,但不能反映出所有错误现象、究竟是什么错误类型的差异,以及错误出现在什么位置等问题。因此,在提高查全率、查准率、定位精度,以及在定性定量检索上,缺少灵活方便的应对手段和方法。
4)另一方面基于错误因素距离计算的非精确字符串匹配方法,只考虑错误因素对精确匹配的负面影响,很少讨论错误因素在应用中的积极意义。例如:在本专利中,离散特性不再被看作一种错误,认识到离散特性在信息检索中有很多应用价值。例如,在信息输入中,可利用离散检索,让用户通过缺省输入,避免方言错误、避免模糊音输入、减少输入码长等;在数据库检索、网络搜索引擎中,可利用离散特性选择检索词,进行离散检索,提高查全率等。
以上问题,呈现出字符串匹配基础体系的不健全,直接影响到信息检索的检索方式、检索功能、检索效果以及用户操作界面,在信息检索中造成了检索方式单调(精确与模糊),检索质量、查全率不高,匹配方法的多样性,但却难以展开综合应用。亟待解决。
发明内容
本发明的目的在于解决上述问题,提出一种基于离散性、交叉性、非完全性的特性字符串匹配方法,该种方法提供了多种信息检索方式且操作简单、灵活、方便,检索功能强大。
本发明解决其技术问题所采用的技术方案为:一种基于离散性、交叉性、非完全性的特性字符串匹配方法,其步骤为:
A步  设置特性参数值并输入检索词  用户在用户界面中设置或由信息处理设备自动设置:反映离散性的离散数即检索词各字符出现在文本中的离散的字符数,反映交叉性的交叉数即检索词各字符出现在文本中的交叉的字符数或子串数,反映非完全性的非完全数即检索词各字符未出现在文本中的字符数;并由用户在用户界面中输入检索词;
B步  字符串匹配及输出:信息处理设备根据用户输入的检索词,对指定的一个文本,以A步设置的离散数、交叉数、非完全数作为匹配约束条件,进行基于该三种特性的字符串匹配运算,输出精确检索、离散检索、交叉检索、离散交叉检索、非完全检索、离散非完全检索、交叉非完全检索、离散交叉非完全检索共八种检索方式中的一种方式的匹配结果。
与现有技术相比,本发明的有益效果是:
一、本发明提出的三种特性参数:离散性、交叉性、非完全性,具有完全不同的性质和概念,是互为独立的特性,基于三种特性的字符串匹配研究思路更为科学地揭示了字符串匹配问题的内在规律,错误因素是三种特性的外在表现。可通过下表的示例比较,得到清楚的说明。
                     基于错误因素及本发明对特定问题的描述差异表
文本  模式 现有基于错误因素的描述 本发明基于三种特性的描述
BCDEFGH  ABCDEFGH 精确匹配(即子串匹配):不允许删除、插入、交换等错误 精确匹配(即子串匹配):不允许离散、交叉、非完全
ABCDEFGH  CDEF 精确匹配(即子串匹配):只允许前面、后面的删除 精确匹配(即子串匹配):不允许离散、交叉、非完全
ABCDEFGH  CDF 非精确匹配:1、存在一个删除(E);或2、存在若干前面、后面删除并且存在一个中间删除;或3、存在一个插入(F);或4、存在一个替换(E,F);等 离散匹配:只存在一个离散(E)
ABCDEFGH  CEDF 非精确匹配:1、存在交换(DE,ED);或2、存在两个替换(D,E),(E,D);3、存在插入(D)和删除(D);等 交叉匹配:只存在一个交叉(D)
ABCDEFGH  CEFD 非精确匹配:1、存在删除(D)和插入(D);或2、存在两个插入(C),(D);或3、存在两个插入(E),(F)等 交叉匹配:只存在一个交叉(D)
ABCDEFGH  ACEFXD 非精确匹配:1、存在两个删除(B),(D)和两个插入(X),(D);或2、在两个删除(B),(D)和两个替换(G,X),(H,D);等 离散交叉非完全匹配:存在一个离散(B)、一个交叉(D)、一个非完全(X)
可见,基于错误因素对特定文本与模式的字符串匹配问题,存在多种基于错误因素的描述方法,反映出描述同一问题的多态性,不便于细致的分类处理。而本发明对同一问题只存在一种描述方法,准确地反映了文本与模式的匹配关系,因此可以准确地分类。上表中关于两个子串匹配问题,基于错误因素有两种不同的描述方法;本发明对两个子串匹配问题,只存在一种描述方法,更为符合子串的定义。通过上表对比,还可以清楚地了解到离散特性与删除错误的差异,交叉特性与交换错误的差异,非完全性与插入错误的差异。
二、由三种特性进行组合,可以将信息检索方式严格地分为8种不同的类型,为用户提供了8种可供选择的信息检索方式。且基于特性的字符串匹配,不是简单地把特性看成一种消极错误。例如,利用离散检索,可让用户通过检索词的缺省输入,避免方言错误、避免模糊音输入、减少输入码长等。而现有的基于错误因素距离计算的字符串匹配方法,由于错误因素的可替代性,不能形成科学的分类体系,因此检索方式只有精确和模糊方式。
三、本发明具体通过设置三种特性值的大小,作为字符串匹配的约束条件参数,在提高查全率、查准率、定位精度上,提供更为灵活、方便、定性、定量的应对手段和方法,以满足不同性质的检索要求,方便用户对特定问题查全率、查准率、定位精度的综合考虑、随意调节。设置的特性值越大,检索条件越宽松,查全率越高;特性值越小,检索条件越严格,查准率越高;设置的某特性值为零,表示不允许该种特性的匹配,因此,可以通过设置特性参数值零,进行有选择的定性、定量检索,充分发挥各特性在信息检索中的潜在应用价值,这正是特性字符串匹配优越性的具体表现。
四、对不同的检索方式,可进行统一的集成化字符串匹配编程,用一个字符串匹配程序,满足8种信息检索方式的特定性质的信息检索。各种检索方式只是输入的检索特性值的不同,应用程序设计人员不必考虑选择何种字符串匹配方法进行不同方式的信息检索,而是对三种特性值进行统一处理,更方便其实施、推广。
五、由于各种因素造成的不可预知的文本信息错误,如:传输错误、自动识别输入错误、存储错误等,会造成信息检索的遗漏,一些有用但有错误的信息无法正常检出。在本发明中,通过适当设置离散数、交叉数、非完全数,既可实现容错检索。
六、A步设置特性参数值并输入检索词时,用户界面可以为三种特性参数的部分组合,三种参数即可以全由用户设置,也可部分或所有特性参数不由用户设置而由信息处理设备自动设置,形成少于三个特性参数甚至无特性参数组成的用户界面,此时,未出现在用户界面中的特性参数值为信息处理设备根据特殊用途自动设置的隐含值。这种用户界面特性参数组合方式,可适应于特殊的应用要求与环境,减少用户需要考虑的特性参数设置数目,用户只需输入检索词、更少的特性参数值即可,方便用户的操作。
上述的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,数组WT的位置W=1,数组PT的位置P=1,最大位置=0;最小位置=n;
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步  计算出相似度:
相似度=(2m-2×实际非完全数-实际交叉数)÷(2m+实际离散数-实际非完全数);
i步  结束匹配并返回如下结果:
返回相似度,数组POS,实际离散数,实际交叉数,实际非完全数。
这种基于特性的字符串匹配运算过程,通过离散数、交叉数、非完全数的数值,用一个程序即可自动进行不同的8种信息检索方式的统一匹配,并返回满足不同特性约束条件的匹配结果,实现了更为规范的信息检索集成化环境。
返回的相似度,代表了文本与模式满足特性约束条件的匹配程度,为零到1的实数。例如:若返回的相似度为0.50,则表示模式与文本匹配的子字符序列有50%的相似程度。可以根据所有检出文本的最大相似度进行排序输出,方便用户选择。返回的数组POS则记录了具体匹配的位置。返回的实际离散数、实际交叉数、实际非完全数,则记录了匹配的子字符序列的实际匹配状况,便于进一步的后续处理。这些返回数据可以组织成一个结构数据返回,也可以单独地返回。
匹配过程中,当实际非完全数不满足约束条件,立即进行下一个滑动窗的匹配,且只有当实际非完全数以及实际离散数,满足给定约束条件的情况下,才计算实际交叉数的大小,因此该方法的时间复杂性为:
平均时间复杂度接近于0(nm+nd);
最坏时间复杂度为0(nm+nd+nmLog2(m))≈0(nmLog2(m))。
上述的B步中的字符串匹配及输出的第二种作法的具体步骤为:
a步  输入参数合法性检验:
计算出检索词的长度m以及文本的长度n;对n、m、离散数、交叉数、非完全数,进行合法性检验,若不满足合法性,退出匹配,并返回空指针结果;否则,交叉数、非完全数不能超过m-1,若超过则改为m-1;
b步  循环初始化:
设置有一个节点的OUT链,该节点中包含如下初始信息:最大位置=0、最小位置=0,相似度=1;
设置滑动窗位置=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)<(m+离散数)则不用再进行插入排序;
数组POS中全部初始化为-1,实际非完全数=0,数组WT的位置W=1,数组PT的位置P=1,最大位置=0;最小位置=n;
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步  计算出相似度:
相似度=(2m-2×实际非完全数-实际交叉数)÷(2m+实际离散数-实际非完全数);
i步  将匹配结果插入OUT链:
滑动窗位置增加1;将相似度、最大位置、最小位置、数组POS、实际离散数、实际交叉数、实际非完全数组织成一个新节点;
若(新节点中的最小位置>OUT链最后一个节点中的最大位置)则将新节点直接插入OUT链最后,转c步;
若(新节点中的最小位置小于或等于OUT链最后一个节点中的最大位置)且(新节点相似度>OUT链最后一个节点相似度)则将新节点替换OUT链最后一个节点,转c步;否则放弃新节点,转c步。
以上的字符串匹配运算的第二种作法的具体步骤与第一种作法的步骤基本相同,不同的仅仅是:
为适应全文检索,a步中不符合参数要求时,返回的是一个空指针,表示无匹配的子字符串;b步中增设了一个OUT链,用于记录文本中的所有满足匹配条件的无重叠子字符序列以及相应信息;相应的c步中不再输出不匹配结果,而改为输出OUT链;并在i步中根据匹配的结果对OUT链进行修改。实际匹配时,可能存在满足约束条件的,有位置重叠的两个子字符序列,或者有位置重叠的连环多个子字符序列,解决的方法为:对于有位置重叠的两个子字符序列,或者有位置重叠的连环多个子字符序列,只输出相似度大的子字符序列。根据相似度,选择有位置重叠的匹配结果,可以提高定位精度。
若返回的OUT链为空,表示不匹配,否则OUT链包含了所有匹配出的子字符序列,每个子字符序列包括:相似度、最大位置、最小位置、数组POS、实际离散数、实际交叉数、实际非完全数。
因此,第二种作法除具有第一种作法的全部优点外,还为信息检索用户提供了一个全面、详细的检索词在指定文本中的匹配信息,为用户对信息的取舍给出了最完整的参考信息。
该方法的时间复杂性为:
平均时间复杂度接近于0(nm+nd);
最坏时间复杂度为0(nmLog2(m)。
上述的g步中的计算实际交叉数的第一种作法为:
(1)步初始化:假设用数组LPOS存放最大可间隔升序序列,且数组LPOS的第一个位置的数值初始化为-1,LP用于指示当前数组LPOS处理的位置并初始化为1;数组POS最后添加一个结束标志,取数组POS中第一个数值到比较数据中;
(2)步判断是否结束:若比较数据为结束标记,转(4)步;
(3)步循环处理:根据比较进行三种情况处理;
若比较数据大于数组LPOS中LP位置的数据,则LP增加1,将比较数据存储到数组LPOS中LP位置处,取数组POS中下一个数值到比较数据中,转(2)步;
若比较数据小于数组LPOS中LP位置的数据,则从数组LPOS中第一个位置向后进行折半查找,搜索第一个大于或等于比较数据的数据,并用比较数据改写该数据,取数组POS中下一个数值到比较数据中,转(2)步;
若比较数据等于数组LPOS中LP位置的数据,则取数组POS中下一个数值到比较数据中,转(2)步;
(4)步得出实际交叉数:实际交叉数=m-实际非完全数-LP+1。
这是一种基于字符为单位的交叉数计算方法。
数组POS在匹配过程中,用于存放检索词中已经匹配的字符在文本中的出现位置,数组POS中数据的特点是:除数值-1以外,其它数据均为大于0的整数,且互不相等。数组POS的最大可间隔升序序列的长度是指:按数组POS中数据的位序,在数组POS寻找出一个最大可间隔升序序列,该序列的数据个数即为最大可间隔升序序列的长度。由于数值-1代表了未匹配的字符,因此数值-1不计入最大可间隔升序序列中。
通过最大可间隔升序序列的长度,即可求出文本与模式匹配时的实际交叉数。从而通过该方法准确地计算出实际交叉数,并与设置的交叉数进行比较,筛选出满足交叉数约束条件的文本,并给出检索词与指定检索文本的交叉特性匹配状况,方便、灵活地满足用户的检索要求。交叉数的另一个作用是配合离散数、非完全数计算相似度,方便检出文本的排序,或者匹配结果的选择,满足用户的检索要求。
该算法的时间复杂度为:0(mlog2(m))。
上述的g步中的计算实际交叉数的第二种作法为:
(1)步初始化:最大连续序列长度=0,当前连续序列长度=1,连续后继整数出现总数=0;依次将数组POS中大于零的全部数值存入临时数组中,临时数组最后添加一个结束标志;若临时数组中的非零元素个数小于等于1,直接返回交叉数等于零的结果;否则,用数组LPOS存放最大可间隔升序序列,且数组LPOS的第一个位置的数值初始化为临时数组中第一个数值;LP用于指示当前数组LPOS处理的位置,并初始化为1;取临时数组中第二个数值到比较数据中;
(2)步判断是否结束:若比较数据为结束标记,转(5)步;
(3)步进行连续性处理:若比较数据减1等于上一个位置的数据,则当前连续序列长度增加1,连续后继整数出现总数增加1,转(4)步;否则将当前连续序列长度与最大连续序列长度中较大的数值,重新存入最大连续序列长度中,当前连续序列长度=1;
(4)步根据比较进行两种情况处理
若比较数据大于数组LPOS中LP位置的数据,则LP增加1,将比较数据存储到数组LPOS中LP位置处,取临时数组中下一个数值到比较数据中,转(2)步;
若比较数据小于数组LPOS中LP位置的数据,则从数组LPOS中第一个位置向后进行折半查找,搜索第一个大于比较数据的数据,并用比较数据改写该数据;取临时数组中下一个数值到比较数据中,转(2)步;
(5)步实际交叉数=m-实际非完全数-LP-连续后继整数出现总数+Max(最大连续序列长度,当前连续序列长度)-1,其中Max为求最大值函数。
该第二种作法是对第一种作法的改进,称为基于子串为单位的交叉数计算方法:当模式中的一个子串整体出现交叉时,算作一个交叉;而第一种方法的交叉数则为该子串的长度。这种改进方式的理由为:当模式中的一个子串整体出现交叉时,认为整体是一个有语义的结构子串,例如两个英文单词间的整体交叉算作一个交叉数。这种改进处理方式更符合检索的实际,使得整体交叉的相似度明显高于第一种方法的相似度,其输出的相似度与用户的实际要求更一致,便于用户优先选择。
该算法的时间复杂度为:0(mlog2(m))。
上述的A步设置特性参数值时,特性参数值不由信息设备自动设置的特性参数,用户界面则有相应的供用户设置特性参数的数值输入框。
上述的用户界面中的数值输入框为单纯数值输入框或者组合框,在数值输入框的每个框附近还显示有相应特性参数名称。
上述的A步输入检索词时,用户界面有一个文本框供用户输入检索词。
上述的A步设置特性参数值后,信息处理设备根据用户在用户界面中设置或由信息处理设备自动设置的离散数、交叉数、非完全数,还进行检索方式的判断,判断出检索方式属于精确检索、离散检索、交叉检索、离散交叉检索、非完全检索、离散非完全检索、交叉非完全检索、离散交叉非完全检索共八种检索方式中的一种方式,并提供给用户界面显示出检索方式的名称。
这样的用户界面给用户提供了一种灵活、方便、简单、容易的操作方式:通过对特性参数设置不同的数值,即可自动显示相应信息检索方式的名称,供用户选择不同的信息检索方式,同时数值框的数值还代表了信息检索的约束条件。因此,通过设置不同的特性参数,可进行不同的定性、定量的信息检索。用户界面的提示信息醒目、直观,使用户操作容易,无需学习。
下面结合附图和具体实施方式对本发明作进一步的详细说明。
附图说明
图1是本发明实施例一的方法中字符串匹配及输出的流程示意图。
图2是本发明实施例二的方法中字符串匹配及输出的流程示意图。
图3是本发明实施例一的精确检索方式的用户界面。
图4是本发明实施例一的离散检索方式的用户界面。
图5是本发明实施例一的交叉检索方式的用户界面。
图6是本发明实施例一的离散交叉检索方式的用户界面。
图7是本发明实施例一的非完全检索方式的用户界面。
图8是本发明实施例一的离散非完全检索方式的用户界面。
图9是本发明实施例一的交叉非完全检索方式的用户界面。
图10是本发明实施例一的离散交叉非完全检索方式的用户界面。
图11是本发明实施例二的离散交叉非完全检索的用户界面。
图12是本发明实施例二的离散交叉检索的用户界面。
图13是本发明实施例二的离散检索的用户界面。
具体实施方式
实施例一
本发明的第一种具体实施方式为,一种基于离散性、交叉性、非完全性的特性字符串匹配方法,其步骤为:
A步  设置特性参数值并输入检索词  用户在用户界面中设置或由信息处理设备自动设置:反映离散性的离散数即检索词各字符出现在文本中的离散的字符数,反映交叉性的交叉数即检索词各字符出现在文本中的交叉的字符数或子串数,反映非完全性的非完全数即检索词各字符未出现在文本中的字符数;并由用户在用户界面中输入检索词;
B步  字符串匹配及输出:信息处理设备根据用户输入的检索词,对指定的一个文本,以A步设置的离散数、交叉数、非完全数作为匹配约束条件,进行基于该三种特性的字符串匹配运算,输出精确检索、离散检索、交叉检索、离散交叉检索、非完全检索、离散非完全检索、交叉非完全检索、离散交叉非完全检索共八种检索方式中的一种方式的匹配结果。
图1的流程图为本例中B步的字符串匹配及输出的流程示意图。图1示出其大体流程为:a步 输入特性参数合法性检验;b步 循环初始化:初始化滑动窗位置为1,滑动窗大小=检索词长度+离散数;c步判定循环是否结束;如果循环结束,输出不存在符合条件的匹配结果,否则执行后面d步、e步、f步,当前滑动窗子串与检索词进行比较;g步计算实际离散数、实际交叉数、实际非完全数,并判定是否满足特性约束条件?如里不满足条件,则滑动窗向前移动一个字符位置,转c步;否则,执行h步根据三个实际特性参数计算相似度;i步返回满足特性约束条件的匹配结果。
本例中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,数组WT的位置W=1,数组PT的位置P=1,最大位置=0;最小位置=n;
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步  计算出相似度:
相似度=(2m-2×实际非完全数-实际交叉数)÷(2m+实际离散数-实际非完全数);
i步  结束匹配并返回如下结果:
返回相似度,数组POS,实际离散数,实际交叉数,实际非完全数。
以上g步中的实际交叉数的作法可以为:
(1)步初始化:假设用数组LPOS存放最大可间隔升序序列,且数组LPOS的第一个位置的数值初始化为-1,LP用于指示当前数组LPOS处理的位置并初始化为1;数组POS最后添加一个结束标志,取数组POS中第一个数值到比较数据中;
(2)步判断是否结束:若比较数据为结束标记,转(4)步;
(3)步循环处理:根据比较进行三种情况处理;
若比较数据大于数组LPOS中LP位置的数据,则LP增加1,将比较数据存储到数组LPOS中LP位置处,取数组POS中下一个数值到比较数据中,转(2)步;
若比较数据小于数组LPOS中LP位置的数据,则从数组LPOS中第一个位置向后进行折半查找,搜索第一个大于或等于比较数据的数据,并用比较数据改写该数据,取数组POS中下一个数值到比较数据中,转(2)步;
若比较数据等于数组LPOS中LP位置的数据,则取数组POS中下一个数值到比较数据中,转(2)步;
(4)步得出实际交叉数:实际交叉数=m-实际非完全数-LP+1。
这种方式计算的实际交叉数为以字符为单位的实际交叉数。
以上g步中的计算实际交叉数的作法还可以为:
(1)步初始化:最大连续序列长度=0,当前连续序列长度=1,连续后继整数出现总数=0;依次将数组POS中大于零的全部数值存入临时数组中,临时数组最后添加一个结束标志;若临时数组中的非零元素个数小于等于1,直接返回交叉数等于零的结果;否则,用数组LPOS存放最大可间隔升序序列,且数组LPOS的第一个位置的数值初始化为临时数组中第一个数值;LP用于指示当前数组LPOS处理的位置,并初始化为1;取临时数组中第二个数值到比较数据中;
(2)步判断是否结束:若比较数据为结束标记,转(5)步;
(3)步进行连续性处理:若比较数据减1等于上一个位置的数据,则当前连续序列长度增加1,连续后继整数出现总数增加1,转(4)步;否则将当前连续序列长度与最大连续序列长度中较大的数值,重新存入最大连续序列长度中,当前连续序列长度=1;
(4)步根据比较进行两种情况处理
若比较数据大于数组LPOS中LP位置的数据,则LP增加1,将比较数据存储到数组LPOS中LP位置处,取临时数组中下一个数值到比较数据中,转(2)步;
若比较数据小于数组LPOS中LP位置的数据,则从数组LPOS中第一个位置向后进行折半查找,搜索第一个大于比较数据的数据,并用比较数据改写该数据;取临时数组中下一个数值到比较数据中,转(2)步;
(5)步实际交叉数=m-实际非完全数-LP-连续后继整数出现总数+Max(最大连续序列长度,当前连续序列长度)-1,其中Max为求最大值函数。
这种方式计算的实际交叉数为以子串为单位的实际交叉数。
本例中A步设置特性参数值时,特性参数值不由信息设备自动设置的特性参数,用户界面则有相应的供用户设置特性参数的数值输入框。用户界面中的数值输入框为单纯数值输入框或者组合框,在数值输入框的每个框附近还显示有相应特性参数名称。A步输入检索词时,用户界面有一个文本框供用户输入检索词。
本例中A步设置特性参数值后,信息处理设备根据用户在用户界面中设置或由信息处理设备自动设置的离散数、交叉数、非完全数,还进行检索方式的判断,判断出检索方式属于精确检索、离散检索、交叉检索、离散交叉检索、非完全检索、离散非完全检索、交叉非完全检索、离散交叉非完全检索共八种检索方式中的一种方式,并提供给用户界面显示出检索方式的名称。
下面是依据本例的方法具体设计的用户界面及其检索实例的结果。
用户界面根据数值输入框设置的不同数据,可以呈现八种信息检索方式名称,进行八种不同方式的信息检索。
1、八种信息检索方式之一的精确检索方式的用户界面实例:
图3为精确检索方式的用户界面,该种方式,对用户提供的检索词进行精确检索,为缺省方式。离散数、交叉数、非完全数均为0,表示检索词中的字符不允许离散,不允许交叉,不允许非完全,必须完整地出现在被检索出的文本中。
检索实例:文本=“中华人民共和国 信息产业部
检索词=“ 信息产业部
通过本例的方法进行匹配后,能检索出文本“中华人民共和国信息产业部”。该例相似度为:100%。(注:加粗并添加下划线的字符为匹配的字符)
2、八种信息检索方式之二的离散检索方式的用户界面实例:
图4为离散检索方式的用户界面,该种方式,离散数>0,表示对用户提供的检索词进行离散检索,被检出的文本满足的条件为:检索词出现在文本中的字符不允许交叉,不允许非完全,但其离散的字符数允许小于或等于设置的离散数。
示例:文本=“…… string pattern  matching……”,设置离散数=10
检索词=“ string matching
用检索词“ string matching”,通过本例的字符串匹配方法,进行离散检索,能检索出文献数据库中的文章“…… string pattern  matching……”。该例匹配的实际离散数为8个字符,其中“pattern”为文本中离散的字符,相似度为:79%。
示例:文本=“…… strin g  patt er n  mat chin g……”,设置离散数=8
检索词=“ strg paten machg
通过本例的字符串匹配方法,同样能检索出文献数据库中的文章“……strin g  patt er n  mat ching……”。该例匹配的实际离散数为7个字符,其中“in”“t”“r”“t”“in”为文本中离散的字符,其相似度为:82%。
该例进行基于离散特性的定性、定量(离散数=8)检索,让英语拼写不准确的人如释重负,不需要输入完整的英文单词作为检索词,充分体现了基于离散特性字符串匹配的优越性能。
3、八种信息检索方式之三的交叉检索方式的用户界面实例:
图5为交叉检索方式的用户界面,该种方式,交叉数>0,表示对用户提供的检索词进行交叉检索,被检出的文本满足的条件为:检索词出现在文本中的字符不允许离散,不允许非完全,但其交叉的字符数或子串数允许小于或等于设置的交叉数。
例如:文本=“ 拼音笔划声调组合输入法”
检索词=“ 拼音声调笔划
并设置交叉数=5(注:一个中文符号为两个字符长度)。
通过本例的字符串匹配方法,进行交叉检索,可以检索出文本“拼音笔划声调组合输入法”。该例匹配的以字符为单位的实际交叉数为4,以子串为单位的实际交叉数为1,其中“笔划”或“声调”为交叉的字符,该例的以字符为单位的相似度为83%,以子串为单位的相似度为96%。
具体实施时,实际交叉数的计算方法,可根据检索的需要选择其中的一种进行计算。一般以子串为单位计算,更符合实际要求。
4、八种信息检索方式之四的离散交叉检索方式的用户界面实例:
图6为离散交叉检索方式的用户界面,该种方式,离散数>0且交叉数>0,表示对用户提供的检索词进行离散交叉检索,被检出的文本满足的条件为:检索词出现在文本中的字符不允许非完全,但允许离散,允许交叉,其交叉的字符数或子串数允许小于或等于设置的交叉数,其离散的字符数允许小于或等于设置的离散数。
例如:文本=“ 拼音笔划声调组合输入法”
检索词=“ 拼音声调笔划
并设置交叉数=5,离散数=5。
通过本例的字符串匹配方法,进行离散交叉检索,可以检索出“拼音、笔划、声调组合输入法”的文本。该例匹配的以字符为单位的实际交叉数为4,以子串为单位的实际交叉数为1;实际离散数也为4。其中“笔划”或“声调”为交叉的字符,而两个中文“、”号为离散的字符,该例以字符为单位的相似度为71%,以子串为单位的相似度为82%。
若离散数设置为零,或者交叉数设置为零,均不能用检索词“拼音声调笔划”检索出文本“拼音、笔划、声调组合输入法”。
5、八种信息检索方式之五的非完全检索方式的用户界面实例:
图7为非完全检索方式的用户界面,该种方式,非完全数>0,表示对用户提供的检索词进行非完全检索,被检出的文本满足的条件为:检索词出现在文本中的字符不允许离散和交叉,但允许非完全,其非完全的字符数允许小于或等于设置的非完全数。
例如:文本=“中华人民共和国 信产部项目
检索词=“ 部项目
并设置非完全数=5。
通过本例的字符串匹配方法,进行非完全检索,可以检索出“中华人民共和国信产部项目”的文本。该例匹配的实际非完全数=4,其中“息”与“业”为非完全匹配的字符,该例相似度为:83%。
6、八种信息检索方式之六的离散非完全检索方式的用户界面实例:
图8为离散非完全检索方式的用户界面,该种方式,离散数>0且非完全数>0,表示对用户提供的检索词进行离散非完全检索,被检出的文本满足的条件为:检索词出现在文本中的字符不允许交叉,但允许离散和非完全,其离散的字符数允许小于或等于设置的离散数,其非完全的字符数允许小于或等于设置的非完全数。
例如:文本=“ 拼音笔划组合输入法”
检索词=“ 拼音声调 笔划
并设置离散数=4,非完全数=4。
通过本例的字符串匹配方法,进行离散非完全检索,可以检索出  “拼音、笔划组合输入法”的文本。该例匹配的实际离散数为2,实际非完全数为4,其中中文“、”为离散的字符,而“声调”为非完全匹配的字符,该例相似度为:73%。
7、八种信息检索方式之七的交叉非完全检索方式的用户界面实例:
图9为交叉非完全检索方式的用户界面,该种方式,交叉数>0且非完全数>0,表示对用户提供的检索词进行交叉非完全检索,被检出的文本满足的条件为:检索词出现在文本中的字符不允许离散,但允许交叉和非完全,其交叉的字符数或子串数允许小于或等于设置的交叉数,其非完全的字符数允许小于或等于设置的非完全数。
例如:文本=“ 拼音笔划组合输入法”
检索词=“ 拼音划笔
并设置交叉数=4,非完全数=4。
通过本例的字符串匹配方法,进行交叉非完全检索,可以检索出“拼音笔划组合输入法”的文本。该例匹配的以字符为单位的实际交叉数为2,以子串为单位的实际交叉数为1;实际非完全数为2。其中“笔”或“划”为交叉的字符,而中文“、”号为非完全的字符,该例以字符为单位的相似度为78%,以子串为单位的相似度为83%。
8、八种信息检索方式之八的离散交叉非完全检索方式的用户界面实例:
图10为离散交叉非完全检索方式的用户界面,该种方式,离散数>0且交叉数>0且非完全数>0,表示对用户提供的检索词进行离散交叉非完全检索,被检出的文本满足的条件为:检索词出现在文本中的字符,其离散的字符数允许小于或等于设置的离散数、交叉的字符数或子串数允许小于或等于设置的交叉数,其非完全的字符数允许小于或等于设置的非完全数。
例如:文本=“ 拼音笔划声调组合输入法”
检索词=“ 声调- 拼音- 笔划
并设置离散数=5,交叉数=5,非完全数=5。
通过本例的字符串匹配方法,进行离散交叉非完全检索,可以检索出“拼音、笔划、声调组合输入法”的文本。该例匹配的实际离散数为4,匹配的以字符为单位的实际交叉数为4,以子串为单位的实际交叉数为1;实际非完全数为2。其中两个中文“、”号为离散的字符,“声调”为交叉的字符,而两个西文“-”号为非完全匹配的字符。该例以字符为单位的相似度为67%,以子串为单位的相似度为77%。
以上信息检索方式中的特性参数值,用户不必每次检索都进行设置,可按上一次检索的特性参数值进行信息检索。
以上信息检索方式用户界面,用户每当修改任意一个数值框中的数值,将自动调整信息检索方式的名称。显然本例的信息检索方式的判断及显示的规则为:
若离散数=0且交叉数=0且非完全数=0,则为精确检索方式;若离散数>0且交叉数=0且非完全数=0,则为离散检索方式;若离散数=0且交叉数>0且非完全数=0,则为交叉检索方式;若离散数>0且交叉数>0且非完全数=0,则为离散交叉检索方式;若离散数=0且交叉数=0且非完全数>0,则为非完全检索方式;若离散数>0且交叉数=0且非完全数>0,则为离散非完全检索方式;若离散数=0且交叉数>0且非完全数>0,则为交叉非完全检索方式;若离散数>0且交叉数>0且非完全数>0,则为离散交叉非完全检索方式。
本例的这种判别方法及其对应的输入值,以0代表“不允许”,其检索约束条件最严格,查准率最高;大于0的整数代表检索约束条件,数值越大,检索约束条件越宽松,查全率越高。数值越小,检索条件越严格,查准率越高。它能最简单、直观的反映不同要求的信息检索,并且进行处理时最为简便、有效。
实施例二
本例的方法与实施例一的方法基本相同,不同的仅仅是B步的字符串匹配及输出的具体步骤。
图2的流程图为本例中B步的字符串匹配及输出的流程示意图,其大体流程为:a步输入特性参数合法性检验;b步循环初始化:初始化滑动窗位置为1,滑动窗大小=检索词长度+离散数,初始化有一个头节点的OUT链;c步判定循环是否结束,如果循环结束,删除OUT链头节点,并返回OUT链,否则执行后面d步、e步、f步,当前滑动窗子串与检索词进行比较;g步计算实际离散数、实际交叉数、实际非完全数,并判定是否满足特性约束条件?如里不满足条件,则滑动窗向前移动一个字符位置,转c步;否则,执行h步根据三个实际特性参数计算相似度;i步将匹配结果组成一个新节点;若无位置重叠,新节点插入OUT链最后,否则选择新节点与OUT链最后节点中相似度大的节点,替换OUT链最后一个节点;滑动窗向前移动一个字符位置,转c步。
本例中B步的字符串匹配及输出的完整具体步骤为:
a步  输入参数合法性检验:
计算出检索词的长度m以及文本的长度n;对n、m、离散数、交叉数、非完全数,进行合法性检验,若不满足合法性,退出匹配,并返回空指针结果;否则,交叉数、非完全数不能超过m-1,若超过则改为m-1;
b步  循环初始化:
设置有一个节点的OUT链,该节点中包含如下初始信息:最大位置=0、最小位置=0,相似度=1;
设置滑动窗位置=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)<(m+离散数)则不用再进行插入排序;
数组POS中全部初始化为-1,实际非完全数=0,数组WT的位置W=1,数组PT的位置P=1,最大位置=0;最小位置=n;
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步  计算出相似度:
相似度=(2m-2×实际非完全数-实际交叉数)÷(2m+实际离散数-实际非完全数);
i步  将匹配结果插入OUT链:
滑动窗位置增加1;将相似度、最大位置、最小位置、数组POS、实际离散数、实际交叉数、实际非完全数组织成一个新节点;
若(新节点中的最小位置>OUT链最后一个节点中的最大位置)则将新节点直接插入OUT链最后,转c步;
若(新节点中的最小位置小于或等于OUT链最后一个节点中的最大位置)且(新节点相似度>OUT链最后一个节点相似度)则将新节点替换OUT链最后一个节点,转c步;否则放弃新节点,转c步。
由于在实际匹配时,文本中可能出现多个满足检索约束条件的子串,且可能存在有位置重叠的两个子字符序列,或者有位置重叠的连环多个子字符序列,将产生许多冗余的重叠信息,对此,本例的方法,对于有位置重叠的两个子字符序列,或者有位置重叠的连环多个子字符序列,在其输出的OUT链上只输出相似度大的子字符序列,使输出信息既全面又不冗余。
若返回的OUT链为空,表示不匹配,否则OUT链包含了所有匹配出的子字符序列,每个子字符序列包括:相似度、最大位置、最小位置、数组POS、实际离散数、实际交叉数、实际非完全数等匹配信息。
因此,本例的作法除具有实施例一的全部优点外,还为信息检索系统提供了一个全面、详细的检索词在指定文本中的匹配信息,为信息检索系统对检出文本的取舍给出了最完整的参考信息。
下面是本例的方法的实际检索例子及用户界面
图11为离散交叉非完全检索的用户界面,该实例的用户界面中,用“离散”对应的英文单词“Discrete”的首字母D表示离散,用“交叉”对应的英文单词“Cross”的首字母C表示交叉,用“非完全”对应的英文单词“Non complete”的首字母N表示非完全。
该种方式,离散数>0且交叉数>0且非完全数>0,表示对用户提供的检索词进行离散交叉非完全检索,被检出的文本满足的条件为:检索词出现在文本中的字符,其离散的字符数允许小于或等于设置的离散数、交叉的字符数或子串数允许小于或等于设置的交叉数,其非完全的字符数允许小于或等于设置的非完全数。
实例:文本=“声调、 拼音笔划声调拼音笔划声调
检索词=“ 拼音- 笔划- 声调
并设置N=5,C=5,D=5。
通过本例的字符串匹配方法,进行离散交叉非完全检索,可以检索出文本“声调、拼音、笔划或声调、拼音笔划声调”。该例中,存在满足约束条件的有位置重叠的连环多个子字符序列,匹配处理后OUT链输出两个无位置重叠的匹配子串:“ 拼音笔划声调”和“ 拼音笔划声调”。OUT链的第一个节点包含第一个匹配子串“ 拼音笔划声调”及其相关信息:该子串的的实际离散数为4,实际交叉数为0,实际非完全数为2,其中“、”和“或”为离散的字符,而两个西文“-”号为非完全匹配的字符,该例相似度为:80%。
OUT链的第二个节点包含第二个匹配子串“ 拼音笔划声调”及其相关信息:实际离散数为0,实际交叉数为0,实际非完全数为2,其中两个西文“-”号为非完全匹配的字符,该子串的相似度为:92%。
本发明在A步设置特性参数值并输入检索词时,用户界面可以为三种特性参数输入框的部分组合,甚至没有特性参数输入框。也即部分或所有特性参数不由用户设置而由信息处理设备自动设置,形成少于三个特性参数甚至无特性参数输入组成的用户界面,此时,未出现在用户界面中的特性参数值,为信息处理设备根据特殊用途自动设置的隐含值。这种用户界面特性参数组合方式,可适应于特殊的应用要求与环境,减少用户需要考虑的特性参数设置数目,用户只需输入检索词、更少的特性参数值即可,方便用户的操作。
例如,将非完全特性不由用户设置而由信息处理设备自动设置为0,离散、交叉特性则可由用户选择设置的用户界面。该种界面只有离散数和交叉数两个特性值,用户可以选择精确、离散、交叉、离散交叉共4种信息检索方式。如图12所示:
图12中的“X”=“精确”或“离散”或“交叉”或“离散交叉”。
又如,将非完全及交叉特性均不由用户设置而由信息处理设备自动设置为0,离散特性则可由用户选择设置的用户界面,该种界面根据离散数参数值,用户可以选择精确和离散2种信息检索方式。如图13所示:
图13中的“X”=“精确”或“离散”。
再如,将非完全数由信息处理设备自动设置为(m/10的四舍五入整数值),其中m为检索词的长度;交叉数由信息处理设备自动设置为(m/5的四舍五入整数值);离散特性则可由用户选择设置的用户界面。该种界面根据设置的离散数、交叉数、非完全数值,可得到6种信息检索方式。用户界面如图13所示:
图13中的“X”=如下6种信息检索名称之一:
当输入的检索词长度小于等于2,计算出非完全数=0、交叉数=0。若用户设置离散数=0,则进行精确检索;若用户设置离散数=3,则进行离散检索。
当输入的检索词长度为4,计算出非完全数=0、交叉数=1。若用户设置离散数=0,则进行交叉检索;若用户设置离散数=5,则进行离散交叉检索。
当输入的检索词长度大于等于5,计算出非完全数≥1、交叉数≥1。若用户设置离散数=0,则进行交叉非完全检索;若用户设置离散数=5,则进行离散交叉非完全检索。
这种交叉数、非完全数的信息处理设备自动设置方式,实现了这样一种信息检索操作理念:检索词越长,信息处理设备自动设置的交叉数、非完全数越大,检索匹配中允许的交叉、非完全字符越多;检索词越短,信息处理设备自动设置的交叉数、非完全数越小,检索匹配中允许的交叉、非完全字符越少。这种设置方式,更好地保证了检出文本的检出质量与定位精度。
这种信息处理设备自动设置的处理方法,符合大众的操作理念、习惯、要求,如同傻瓜相机、无级变速轿车的操作理念;而三种特性全部出现在用户界面中,由用户有选择地进行特性参数设置的操作理念,如同专业相机、多级变速轿车的操作理念。
以上用户界面中的特性参数名称,以及信息检索方式名称,在具体实施时,还可规定其它文字符号替代。
本发明用于信息检索的字符串匹配方法、数值输入框、数值的大小,相应地影响到信息检索的检索性能、检索方式以及提供多大约束的检索。
本发明充分考虑了信息检索功能的扩展,以及用户对信息检索操作上的需求:用户通过任意选择三种特性参数的数值框,输入不同的数值,即可选择8种检索方式之一,进行不同性质、满足不同约束要求的信息检索。本发明操作简单、灵活、方便,并且在功能上为查全、查准、定位精确提供了灵活多样的应对手段和方法,可以进行定性、定量检索。
本发明的基于三种特性的字符串匹配方法,应用于信息检索领域,如各种语言的网络信息搜索、网站内检索、数据库检索、电子词典、数据查询、信息输入、操作系统文件名检索等。不仅如此,在生物技术领域也有其用武之地:DNA匹配是目前遗传基因研究中的重要课题,基于特性的字符串匹配方法,以其灵活、方便、多样的定性、定量匹配功能,同样能够适应于DNA匹配的要求,进行DNA序列的定性、定量匹配分析。

Claims (9)

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,数组WT的位置W=1,数组PT的位置P=1,最大位置=0;最小位置=n;
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步计算出相似度:
相似度=(2m-2×实际非完全数-实际交叉数)÷(2m+实际离散数-实际非完全数)
i步结束匹配并返回如下结果:
返回相似度,数组POS,实际离散数,实际交叉数,实际非完全数。
3、根据权利要求1所述的一种基于离散性、交叉性、非完全性的特性字符串匹配方法,其特征在于,所述B步的字符串匹配及输出的具体步骤为:
a步输入参数合法性检验:
计算出检索词的长度m以及文本的长度n;对n、m、离散数、交叉数、非完全数,进行合法性检验,若不满足合法性,退出匹配,并返回空指针结果;否则,交叉数、非完全数不能超过m-1,若超过则改为m-1;
b步循环初始化:
设置有一个节点的OUT链,该节点中包含如下初始信息:最大位置=0、最小位置=0,相似度=1;
设置滑动窗位置=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)<(m+离散数)则不用再进行插入排序;
数组POS中全部初始化为-1,实际非完全数=0,数组WT的位置W=1,数组PT的位置P=1,最大位置=0;最小位置=n;
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步计算出相似度:
相似度=(2m-2×实际非完全数-实际交叉数)÷(2m+实际离散数-实际非完全数);
i步将匹配结果插入OUT链:
滑动窗位置增加1;将相似度、最大位置、最小位置、数组POS、实际离散数、实际交叉数、实际非完全数组织成一个新节点;
若(新节点中的最小位置>OUT链最后一个节点中的最大位置)则将新节点直接插入OUT链最后,转c步;
若(新节点中的最小位置小于或等于OUT链最后一个节点中的最大位置)且(新节点相似度>OUT链最后一个节点相似度)则将新节点替换OUT链最后一个节点,转c步;否则放弃新节点,转c步。
4、根据权利要求2、3所述的一种基于离散性、交叉性、非完全性的特性字符串匹配方法,其特征在于,所述的g步中的计算实际交叉数的作法为:
(1)步初始化:假设用数组LPOS存放最大可间隔升序序列,且数组LPOS的第一个位置的数值初始化为-1,LP用于指示当前数组LPOS处理的位置并初始化为1;数组POS最后添加一个结束标志,取数组POS中第一个数值到比较数据中;
(2)步判断是否结束:若比较数据为结束标记,转(4)步;
(3)步循环处理:根据比较进行三种情况处理;
若比较数据大于数组LPOS中LP位置的数据,则LP增加1,将比较数据存储到数组LPOS中LP位置处,取数组POS中下一个数值到比较数据中,转(2)步;
若比较数据小于数组LPOS中LP位置的数据,则从数组LPOS中第一个位置向后进行折半查找,搜索第一个大于或等于比较数据的数据,并用比较数据改写该数据,取数组POS中下一个数值到比较数据中,转(2)步;
若比较数据等于数组LPOS中LP位置的数据,则取数组POS中下一个数值到比较数据中,转(2)步;
(4)步得出实际交叉数:实际交叉数=m-实际非完全数-LP+1。
5、根据权利要求2、3所述的一种基于离散性、交叉性、非完全性的特性字符串匹配方法,其特征在于,所述的g步中的计算实际交叉数的作法为:
(1)步初始化:最大连续序列长度=0,当前连续序列长度=1,连续后继整数出现总数=0;依次将数组POS中大于零的全部数值存入临时数组中,临时数组最后添加一个结束标志;若临时数组中的非零元素个数小于等于1,直接返回交叉数等于零的结果;否则,用数组LPOS存放最大可间隔升序序列,且数组LPOS的第一个位置的数值初始化为临时数组中第一个数值;LP用于指示当前数组LPOS处理的位置,并初始化为1;取临时数组中第二个数值到比较数据中;
(2)步判断是否结束:若比较数据为结束标记,转(5)步;
(3)步进行连续性处理:若比较数据减1等于上一个位置的数据,则当前连续序列长度增加1,连续后继整数出现总数增加1,转(4)步;否则将当前连续序列长度与最大连续序列长度中较大的数值,重新存入最大连续序列长度中,当前连续序列长度=1;
(4)步根据比较进行两种情况处理
若比较数据大于数组LPOS中LP位置的数据,则LP增加1,将比较数据存储到数组LPOS中LP位置处,取临时数组中下一个数值到比较数据中,转(2)步;
若比较数据小于数组LPOS中LP位置的数据,则从数组LPOS中第一个位置向后进行折半查找,搜索第一个大于比较数据的数据,并用比较数据改写该数据;取临时数组中下一个数值到比较数据中,转(2)步;
(5)步实际交叉数=m-实际非完全数-LP-连续后继整数出现总数+Max(最大连续序列长度,当前连续序列长度)-1,其中Max为求最大值函数。
6、根据权利要求1所述的一种基于离散性、交叉性、非完全性的特性字符串匹配方法,其特征在于,所述的A步设置特性参数值时,特性参数值不由信息设备自动设置的特性参数,用户界面则有相应的供用户设置特性参数的数值输入框。
7、根据权利要求6所述的一种基于离散性、交叉性、非完全性的特性字符串匹配方法,其特征在于:所述的用户界面中的数值输入框为单纯数值输入框或者组合框,在数值输入框的每个框附近还显示有相应特性参数名称。
8、根据权利要求1所述的一种基于离散性、交叉性、非完全性的特性字符串匹配方法,其特征在于,所述的A步输入检索词时,用户界面有一个文本框供用户输入检索词。
9、根据权利要求1所述的一种基于离散性、交叉性、非完全性的特性字符串匹配方法,其特征在于,所述的A步设置特性参数值后,信息处理设备根据用户在用户界面中设置或由信息处理设备自动设置的离散数、交叉数、非完全数,还进行检索方式的判断,判断出检索方式属于精确检索、离散检索、交叉检索、离散交叉检索、非完全检索、离散非完全检索、交叉非完全检索、离散交叉非完全检索共八种检索方式中的一种方式,并提供给用户界面显示出检索方式的名称。
CNB200710006052XA 2006-09-08 2007-01-24 基于离散性、交叉性、非完全性的特性字符串匹配方法 Expired - Fee Related CN100498789C (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CNB200710006052XA CN100498789C (zh) 2006-09-08 2007-01-24 基于离散性、交叉性、非完全性的特性字符串匹配方法
US12/377,722 US8015166B2 (en) 2006-09-08 2007-04-02 Method for characteristic character string matching based on discreteness, cross and non-identical
PCT/CN2007/001061 WO2008031306A1 (fr) 2006-09-08 2007-04-02 Procede de mise en correspondance de chaines de caracteres caracteristiques base sur des nombres discret, croise et non identique

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN200610021787.5 2006-09-08
CN 200610021787 CN1916896A (zh) 2006-09-08 2006-09-08 基于离散性、交叉性、非完全性的字符串模式匹配方法
CNB200710006052XA CN100498789C (zh) 2006-09-08 2007-01-24 基于离散性、交叉性、非完全性的特性字符串匹配方法

Publications (2)

Publication Number Publication Date
CN101025750A true CN101025750A (zh) 2007-08-29
CN100498789C CN100498789C (zh) 2009-06-10

Family

ID=38744048

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB200710006052XA Expired - Fee Related CN100498789C (zh) 2006-09-08 2007-01-24 基于离散性、交叉性、非完全性的特性字符串匹配方法

Country Status (3)

Country Link
US (1) US8015166B2 (zh)
CN (1) CN100498789C (zh)
WO (1) WO2008031306A1 (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102890719A (zh) * 2012-10-12 2013-01-23 浙江宇视科技有限公司 一种对车牌号进行模糊搜索的方法及装置
CN103544277A (zh) * 2013-10-22 2014-01-29 深圳市捷顺科技实业股份有限公司 一种查询目标文本的方法及装置
CN103814375A (zh) * 2011-09-29 2014-05-21 乐天株式会社 信息处理装置、信息处理方法、信息处理装置用程序、以及记录介质
CN106024013A (zh) * 2016-04-29 2016-10-12 努比亚技术有限公司 语音数据搜索方法及系统
CN107239500A (zh) * 2017-05-03 2017-10-10 成都国腾实业集团有限公司 一种字符串匹配方法及系统
CN107273681A (zh) * 2017-06-09 2017-10-20 广州慧扬健康科技有限公司 诊断录入的智能排序系统

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2009206227B2 (en) * 2008-01-24 2013-08-01 Sra International, Inc. System and method for variant string matching
US8533579B2 (en) * 2009-10-21 2013-09-10 Symantec Corporation Data loss detection method for handling fuzziness in sensitive keywords
US9047258B2 (en) * 2011-09-01 2015-06-02 Litera Technologies, LLC Systems and methods for the comparison of selected text
US9087030B2 (en) * 2012-07-16 2015-07-21 International Business Machines Corporation Handling excessive input characters in a field
KR102518540B1 (ko) * 2017-11-27 2023-04-07 현대자동차주식회사 카풀 멤버의 매칭 장치 및 방법
US10528556B1 (en) * 2017-12-31 2020-01-07 Allscripts Software, Llc Database methodology for searching encrypted data records

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4180854A (en) * 1977-09-29 1979-12-25 Hewlett-Packard Company Programmable calculator having string variable editing capability
US5568639A (en) * 1993-11-24 1996-10-22 Menai Corporation Method and apparatus for providing an object-oriented file structuring system on a computer
US5715468A (en) * 1994-09-30 1998-02-03 Budzinski; Robert Lucius Memory system for storing and retrieving experience and knowledge with natural language
US6983227B1 (en) * 1995-01-17 2006-01-03 Intertech Ventures, Ltd. Virtual models of complex systems
US20070061735A1 (en) * 1995-06-06 2007-03-15 Hoffberg Steven M Ergonomic man-machine interface incorporating adaptive pattern recognition based control system
US6026398A (en) * 1997-10-16 2000-02-15 Imarket, Incorporated System and methods for searching and matching databases
CN1538322B (zh) * 2003-04-14 2010-04-21 中兴通讯股份有限公司 一种用于消除字符串模糊匹配冗余的过滤方法
US7788248B2 (en) * 2005-03-08 2010-08-31 Apple Inc. Immediate search feedback

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103814375A (zh) * 2011-09-29 2014-05-21 乐天株式会社 信息处理装置、信息处理方法、信息处理装置用程序、以及记录介质
CN103814375B (zh) * 2011-09-29 2015-04-22 乐天株式会社 信息处理装置、信息处理方法
CN102890719A (zh) * 2012-10-12 2013-01-23 浙江宇视科技有限公司 一种对车牌号进行模糊搜索的方法及装置
CN102890719B (zh) * 2012-10-12 2015-12-16 浙江宇视科技有限公司 一种对车牌号进行模糊搜索的方法及装置
CN103544277A (zh) * 2013-10-22 2014-01-29 深圳市捷顺科技实业股份有限公司 一种查询目标文本的方法及装置
CN106024013A (zh) * 2016-04-29 2016-10-12 努比亚技术有限公司 语音数据搜索方法及系统
CN107239500A (zh) * 2017-05-03 2017-10-10 成都国腾实业集团有限公司 一种字符串匹配方法及系统
CN107273681A (zh) * 2017-06-09 2017-10-20 广州慧扬健康科技有限公司 诊断录入的智能排序系统
CN107273681B (zh) * 2017-06-09 2021-07-20 广州慧扬健康科技有限公司 诊断录入的智能排序系统

Also Published As

Publication number Publication date
WO2008031306A1 (fr) 2008-03-20
US8015166B2 (en) 2011-09-06
CN100498789C (zh) 2009-06-10
US20100174728A1 (en) 2010-07-08

Similar Documents

Publication Publication Date Title
CN100498789C (zh) 基于离散性、交叉性、非完全性的特性字符串匹配方法
Chaudhuri et al. Extending autocompletion to tolerate errors
KR100272389B1 (ko) 정보검색 방법, 정보검색 장치 및 정보검색 프로그램을 격납하는 매체
Chang et al. A survey of web information extraction systems
US6470347B1 (en) Method, system, program, and data structure for a dense array storing character strings
CA2546896C (en) Extraction of facts from text
US6018735A (en) Non-literal textual search using fuzzy finite-state linear non-deterministic automata
US8447775B2 (en) Database query user interface to assist in efficient and accurate query construction
US8805861B2 (en) Methods and systems to train models to extract and integrate information from data sources
US8145665B2 (en) Bit string search apparatus, search method, and program
US20050154690A1 (en) Document knowledge management apparatus and method
EP1857945A1 (en) Tree search, totalizing, sort method, information processing device, and tree search, totalizing, and sort program
US20110271179A1 (en) Methods and systems for graphically visualizing text documents
CN1661593B (zh) 一种计算机语言翻译方法及其翻译系统
CN103365992B (zh) 一种基于一维线性空间实现Trie树的词典检索方法
CN103440232A (zh) 一种科技论文标准化自动检测编辑方法
CN110795526B (zh) 一种用于检索系统的数学公式索引创建方法与系统
CN103440233A (zh) 一种科技论文标准化自动检测编辑系统
CN116097241A (zh) 使用语义角色的数据准备
Navarro et al. Time-optimal top-k document retrieval
JP2669601B2 (ja) 情報検索方法及びシステム
Ridley An expert system for quality control and duplicate detection in bibliographic databases
CN113590650A (zh) 基于特征表达式的结构化查询语句甄别方法及装置
CN1598814A (zh) 同义词分类检索系统及方法
JPH05204981A (ja) 情報記憶・検索システム及びその表示方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20090610

Termination date: 20130124

CF01 Termination of patent right due to non-payment of annual fee