文档搜索方法和装置及文档处理器的制作方法

文档序号:6462689阅读:146来源:国知局

专利名称::文档搜索方法和装置及文档处理器的制作方法
技术领域
:本发明总体上涉及文档处理的
技术领域
,更具体地说,涉及文档搜索方法和装置及文档处理器。
背景技术
:诸如AdobeReader,MSWord,UltraEditor和web浏览器是当前被广泛地^"吏用的文档处理器(下面统称为"文档处理器")。文档处理器最常用的功能之一是"搜索",即,在文档中查找词或词组。然而,几乎所有的文档处理器都只能根据由用户指定的完整的扩展词组来进行查找,而不能根据词组的片段,例如缩写字符串来进行查找。换句话说,如果用户仅仅知道一个词组的缩写而不能完整地拼写出其扩屑少:i组,则上述"搜索"功能是无法工作的。例如,如果用户利用文档处理器阅读DB2SQL参考手册,要查询有关递归通用表表达式"RCTE"(对应于扩展词组"Recursivecommontableexpression")的讨论,但是用户只知道该词组的缩写字符串"RCTE"而无法拼写出该缩写所对应的扩展词组,则当前AdobeReader、MSWord等文档处理器中的"搜索"功能无法根据用户提供的待查找的缩写字符串"RCTE"在指定文档中搜索到其所对应的扩展词组"Recursivecommontableexpression9*0针对如何通过缩写字符串在文档中搜索扩展词组的问题,以下是现有技术中一些解决方案。在UltraEditor中,可使用"正则表达式(RegularExpression),,来通过缩写字符串查找到其对应的扩展词组。由于UltraEditor在其搜索工具中集成了"正则表达式,,,因此可使用"正则表达式,,的规则,通过词组的首字母缩写和其它一些特殊的字符来构建正则表达式,并利用该正则表达式在文档中搜索缩写字符串所对应的扩;ll词组。但是,不熟悉计算机技术的用户掌握"正则表达式"是很困难的,因此UltraEditor中的该项功能难以在通常用户中普及。而且,AdobeReader,MSWord,以及几乎所有的web浏览器都不支持"正则表达式"。美国专利No.6934767提供了一种方法,该方法基于在前和在后的字定义符来自动查找到一个缩写的子串,确定其是一组缩写子串中的一个,并通过以该缩写子串的扩展子串代替该缩写子串来产生扩展字符串。这种方法需要事先准备缩写子串和扩展子串之间的对应表,并且这种对应^t于特定的用户可能是不同的,所以该方法不适于用作为通常的搜索功能。
发明内容鉴于上述现有技术中存在的问题,根据本发明的第一方面,提供一种文档搜索方法,包括步骤按照预定提取规则提取降搜索文档中相应词的首字符以形成首字符串;构建所提取的首字符串与待搜索文档的对应关系;在首字符串与待查找的缩写字符串之间进行匹配;以及根据匹配结果和对应关系,确定待查找的缩写字符串所对应的扩展词组及其在待搜索文档中的位置。##本发明的第二方面,提供一种文档搜索装置,包括提取单元,用于按照预定提取规则提取待搜索文档中相应词的首字符以形成首字符串;构建单元,用于构建所提取的首字符串与待搜索文档的对应关系;匹配单元,用于在首字符串与待查找的缩写字符串之间进行匹配;以及定位单元,用于根据匹配结果和对应关系,确定待查找的缩写字符串所对应的扩vH词组及其在待搜索文档中的位置。根据本发明的第三方面,提供一种包括有上述本发明第二方面的文档搜索装置的文档处理器。通it^发明,即使用户仅仅知道缩写词组而不能完整地拼写出其扩展词组,也可精确、高效地实现搜索功能,在待搜索文档中定位缩写词组的扩展词组。通过结合附图对本发明的具体实施方式的描述,本发明的以上的和其它目的、特点和优点将变得明显,在附图中图l是示出了根据本发明的文档搜索方法的一个实施例的流程简图;以及图2是示出了根据本发明的文档搜索装置的一个实施例的方框图。具体实施方式图l是示出了根据本发明的文档搜索方法的一个实施例的流程简图。如图所示,若已知一个缩写字符串,需要在待搜索文档中搜索该缩写字符串所对应的扩展词组,则根据本发明的方法的具体流程如下依据预定的提取规则,从待搜索文档中提^Nl应词的首字符以形成首字符串(S20)。取决于不同的提取规则,可以对文档中所有的词进行提取,或者可以对例如表示文档主要意思的词进行提取。用户可按实际需要自定义提取规则,后文将对此点进行进一步详述。构建被提取的首字符串以及待搜索文档之间的对应关系,包括首字符中每一个字符所对应的扩展词及其在待搜索文档中的具体位置(S30)。例如可4吏用映射表等数据结构来记录这种对应关系。执行待查找的缩写字符串与所提取的首字符串之间的匹配,以从首字符串中查找到该缩写字符串(S40)。可使用本领域通用的各种字符串匹配方法来实现该匹配。根据上述匹配处理的结果,结合所构建的首字符串与待搜索文档之间的对应关系,确定与待查找的缩写字符串对应的扩展词组及其在待搜索文档中的具体位置,从而可在待搜索文档中定位该缩写字符串对应的扩展词组(S50),如果需JW对下一个待查找的缩写字符串进行搜索(步骤S60中的判断结果为"是"),则流程返回到步骤S40重复执行;否则,流程结束(S70)。下面给出本发明上述的文档搜索方法的一个具体例子。假设用户正在浏览有关Java线程的文章,并需要在该文章中如下所示的文档部分中利用待查找的缩写字符串"JVM,,搜索其对应的扩展词组"JavaVirtualMachine",但用户不知道如何正确拼写该扩雇^词组。Chapter1.IntroductiontoThreadingThisisabookaboutusingthreadsintheJavaprogramminglanguageandtheJavavirtualmachine.Thetopicofthreadsisveryimportantin9Java—soimportantthatmanyfeaturesofathreadedsystemarebuiltintotheJavalanguageitself,whileotherfeaturesofathreadedsystemarerequiredbytheJavavirtualmachine.ThreadingisanintegralpartofusingJava.根据本发明,第一步,根据预定的提取规则,从上述待搜索文档中提取相应词的首字符以构建如下首字符串CIT...TbutJDlJvmttiJitmftsbJliwoftsrJvmTipuJ...提取所依据的预^则可以由用户根据需要设定。例如,名词、动词、形容词、副词是文档的内容的主要组成元素,这些词表示文档的主要意思。因此,可将提取规则设定为只提M搜索文档中名词、动词、形容词、副词的首字符。或者,可事先定义"小词库",然后提取待搜索文档中不在该"小词库"中的词的首字符。用户可以自定义"小词库",库中存储一些用户不希望被提取的小词,如a,an,the,仇is等.如果用户将提取规则设定为"去除小词",则在提取过程中将不提取"小词库"中出现的小词的首字符,当然,用户也可以不设定"去除小词"的换_取规则,则提取过程也提取小词的首字符。如EOF(EndOfFile),如果用户不设定"去除小词"的提取规则,则of的"o"将被提取到首字符串中,本例子中就是将提取规则设定为不对某些小词,例如"a","the","and","about","in,,等执行提取处理。另外,注意到在本例中将数字规定为是提取时需要忽略的小词,但是,在某些待查找的缩写字符串中本身包^^数字的情况下,例如"3GPP",在掮_取时也应当考虑提取数字首字符。对于文档中的包含文字的图片,一般不需要搜索,对于表格,可以设定特别的预定规则来支持本发明的通过缩写字符串在文档中搜索扩展词组的功能。例如,将表格的不同单元设定为不同的段落,使用和段落文;M目同的方法进行缩写字符串搜索。对于待搜索文档中存在首字符为大写字母的词的情形,如果用户认定只有这些首字符为大写字母的词为缩写字符串的潜在对应的扩JL词组,则可将提取规则设定为"只提取首字符是大写字母的词".如此,在提取过程中只处理这类词。当然,如果用户认定首字符为小写字母的词也为缩写字符串的潜在对应的扩展词组,则提取过程将不区分首字符大小写,例如当用户指定首字符为小写字母的词也为潜在的对应的扩展词组,则当文档中含有词组"unidentifiedflyingobject"时,首字符串"ufo"提取出来.此外,文档中可能存在一些本身就是缩写词的词,如"JVM"。用户可以通过自定义提取规则去认定这些词,例如设定提取规则为将连续三个以上的大写字母认定为缩写词,则提取过程将这些缩写词的每个字母都提取出来(而不是只提取首字母),如"JVM","FVT"等。容易理解,用户可根据文档搜索的目的和效率设定合适的提取规则,并且可应用上述提^t规则中的一种或者多种的组合。第二步,构建所提取的首字符串和提取所依据的待搜索文档之间的对应关系,例如如表l所示的映射表。表1所提取的首字符串和待搜索文档的映射关系1CChapter+Loc(1)2IIntroduction+Loc(2)NJava+Loc(N)N+lVvirtual+Loc(N+l)N+2mmachine+Loc(N+2)Ml中可以清楚地看出,该表中左起第一栏是所提取的首字符串中每个字符在该首字符串中的编号,左起第二栏是所4C取的首字符串中各个首字符,左起第三栏是各首字符所对应的待搜索文档中的扩展词及其在待搜索文档中的位置。例如,表1中第一行的信息表示所提取的首字符串中的字符"c"是该首字符串中第一个字符,其在待搜索文档中对应的扩展词为"Ch叩ter",并且该词在待搜索文档中的位置是Loc(l)。该位置Loc(l)例如可以表示是待搜索文档中第几个词,或者也可以扩展词在待搜索文档窗口中的坐标(第几行第几列)。只要这种位置能够用来在待搜索文档中定位该扩展词即可。本领域技术人员理解,还可以采取除了图1中的映射表以外的其它形式的数据结构来记录所提取的首字符串和待搜索文档的对应关系,例如关系型数据库、数据链表、数组等。容易理解,表l中左起第一栏的信息并不是实现本发明的方法所必需的。笫三步,根据上述的映射关系,使用字符串匹配方法在待查找的缩写字符串"JVM"和所提取的首字符串之间执行匹配,即,在映射表l中找到与待查找的缩写字符串"JVM"匹配的首字符,例如所^取首字符串中编号为"N","N+r,"N+2"的首字符,并得到这些首字符所对应的扩展词分别为"Java","virtual","machine".可分别通过映射表中位置信息Loc(N),Loc(N+l)和Loc(N+2)来定位这些扩展词在待搜索文档中的位置。所使用的字符串匹配方法可以是本领域常用的方法,例如,本领域技术人员常用的直接匹配方法,又名为BruteForce方法,或者文献中给出的Knuth-Morris-Pratt方法[参考D.E.Knuth,J.H.MorrisJrandV.R.Pratt,Fastpatternmatchinginstrings,SIAMJ.Comput.6(1)(1977)323-350、Boyer-Moore方法[参考R.S.BoyerandJ.S.Moore,Afaststringsearchingalgorithm.,Comm.ACM20(10)(1977)762-772以及Aho-Corasick方法[参考A.V.AhoandM.Corasick,Efficientstringmatching:anaidtobibliographicsearch,Comm.ACM18(6)(1975)333-340,等等,只要该方法法能够从首字符串中找到待查找的缩写字符串,都可以应用于本发明。第四步,得到待查找的缩写字符串所对应的扩展词及其在待搜索文档中的位置后,即可在待搜索文档中定位并突出显示搜索结果"Javavirtualmachine"。如此,如果用户想要在文档中查找"JVM",则其可在搜索输入区域中^A待查找的缩写字符串"JVM",然后例如通过点击鼠标启动本发明的文档搜索方法,就可以容易地从首字符串中查找到缩写字符串"Jvm"两次,并且可以根据映射表l在待搜索文档中定位缩写字符串"JVM"所对应的扩展词词组"Javavirtualmachine",如上述文档中下划线所示,本领域技术人员理解,本发明的方法并不限于上述的具体例子中描述的细节,而是可以做出许多改变。如下所述。本发明的方法可将待搜索文档按段落分成若干部分,针对各部分分别提取成几个首字符串进行处理。其优点是可提高搜索速度,且可避免将跨段的几个词认定为待查找的缩写字符串的对应扩展词组.为此,在提取过程中以文档段落为单位分别提取首字符串;当遇到换行符视为一个段落结束。每个段^取后分别对应一个单独的首字符串,并对整个文档提取出的所有首字符串按照段落顺序进行编号。在搜索过程中,根据段落编号能够快速实现段落和扩展词组的双向定位。在上述例子中,可以针对每个段落分别构建各自的映射表,或者针对所有段落构建一个总的映射表,但是增加有关段落编号的参数来区分映射表中与待搜索文档中各斜目关联的对应关系信息。例如,在上述的映射表l中,可在左起第一栏的首字符编号中增加段落编号信息,可用M"(M,N)"表示从文档的第M个段落中提取的首字符串中第N个首字符,M即是段号信息。对于每个段落,具^1取过程按上述的处理进行,不再赘述。通过这种方式,对于从前段末尾和后段开头的几个单词(跨段词)提取的首字符,由于存在段落编号信息进行区分,不a定其与待查找的缩写字符串相匹配,因此减少了错误的搜索结果.当然,用户可以对文档中的指定部分进行搜索,该指定部分不一定是一个或者多个完整的段落,而可以是文档中的任意部分。可以通过各种方式来指定待搜索文档的范围,例如设定搜索范围是从文档的第M段第L行笫N个词至第M,段第L,行第N,个词结束的内容,或者,直接用指点装置,例如鼠标拖拽来选定搜索范围。本发明的方法中提取处理和对应关系构建处理的执行时机可根据需要由用户确定。例如,可在实际执行文档搜索之前进行ll取首字符串和构建对应关系等预处理.也可以自定义预处理在后台进行,即,4吏得在系统的闲时事先自动处理系统内的所有文档,以提高搜索度。若预处理过程在后台进行,则涉及到如何更新的问题。也就是说,预处理过的文档,可能在实际批ft文档搜索之前又被用户修改,此时搜索结果将出现m。可使用的解决方案是一_9>#搜索文档被更新,自动根据对文档的修改来更新执行提取和构建对应关系的处理结果;或者,记^Jt应关系构建时间,在实际执行文档搜索之时或之前比较当前文档的最后修改时间和对应关系构建时间,如果对应关系构建时间晚于当前文档的最后4务改时间,则更新执行提取和构建对应关系的处理结果;或者,用户显式更新,以取得当前文档的实际内容并对修改的文档执行提取和构建对应关系的处理,当然也可以在进行搜索时启动提取和构建对应关系的处理。在这种方式中,既可对修改的文档的整体重新执行提取和构建对应关系的处理,也可以根据修改的内容,只针对修改部分来更新提取和构建对应关系处理的结果,图2是示出根据本发明的文档搜索装置200的方框图。如图所示,文档搜索装置200包括依次耦合在一起的提取单元210、构建单元220、匹配单元230和定位单元240。提取单元210依据预定的提取规则,从待搜索文档中提^UN应词的首字符以形成首字符串。该提取单元210可实现如上述本发明的文档搜索方法中步骤S20的处理。可根据用户所设定的提取规则来确定的相应词。这种提取规则例如是在上述步骤S20中所使用的各种提取规则,构建单元220构建被提取的首字符串以及待搜索文档之间的对应关系。该构建单元220可实现如上述本发明的文档搜索方法中步骤S30的处理。这种对应关系包括首字符串中每一个字符所对应的扩展词及其在待搜索文档中的具体位置,并且例如可采取如上iiAl所述的映射表、关系型数据库、数据M、数组等数据结构的形式来记录。匹配单元230执行待查找的缩写字符串与所提取的首字符串之间的匹配,以从首字符串中查找到该缩写字符串.该匹配单元230可实现如上述本发明的文档搜索方法中步骤S40的处理。可使用本领域通用的各种字符串匹配方法来实现该匹配。例如在上述步寐S40中所使用的直接匹配方法,Knuth-Morris-Pratt方法、Boyer-Moore方法以及Aho-Corasick方法等。定位单元240根据匹配单元的处理结果,结合所构建的首字符串与搜索文档之间的对应关系,确定与待查找的缩写字符串对应的扩展词组及其在待搜索文档中的具体位置。该定位单元240可实现如上述本发明的文档搜索方法中步骤S50的处理,从而可在待搜索文档中定位与该待查找的缩写字符串对应的扩Jl词组。提取单元210和构建单元220执行提取处理和对应关系构建处理的时机可根据需要由用户确定。例如,提取单元210和构建单元220可被配置成在实际执行文档搜索之前进行提取首字符串和构建对应关系的预处理。具体处理方式例如可参照上述本发明的方法步骤中描述的各种实施方式,在此不再赞述。此外,提取单元210可配置成将待搜索文档按段落分成若干部分,针对各部分分别拔:取成几个首字符串来进行处理。构建单元220可针对每个段落分别构建各自的对应关系,或者针对所有段落构建总体的对应关系,以段落编号作为标识信息。具体处理方式例如可参照上述本发明的文档搜索方法中分段落对待搜索文档执行步骤S20和步骤S30的方式,在此不再赘述。本领域技术人员理解,本发明的文档搜索装置200中的各个组成功能单元例如可通过软件、硬件或两者相结合的方式来实现。可在现有技术中通用的文档处理器中结合本发明上述的文档搜索装置200,从而可完成如图1中所示的本发明的通过缩写字符串在文档中进行搜索的方法。因此,这种可实现本发明的文档搜索方法的文档处理器也应被认为包括在本发明的公开内容中。此外,本发明还提出一种机器可读程序,当该程序安装到机器,例如计算机中并运行时,可执行上述本发明的文档搜索方法。用于承载上述机器可读程序的存储介质也包括在本发明的公开中。所述存储介质包括但不限于软盘、光盘、磁光盘、存储卡、存储棒,等等。尽管上面已经通it^本发明的具体实施例的描i^t本发明进行了披露,但是,应该理解,本领域的技术人员可在所附权利要求的精神和范围内设计对本发明的各种修改、改进或者等同物。这些修改、改进或者等同物也应当被认为包括在本发明的保护范围内。权利要求1.一种文档搜索方法,包括步骤按照预定提取规则提取待搜索文档中相应词的首字符以形成首字符串;构建所提取的首字符串与待搜索文档的对应关系;在首字符串与待查找的缩写字符串之间进行匹配;以及根据匹配结果和对应关系,确定待查找的缩写字符串所对应的扩展词组及其在待搜索文档中的位置。2.如权利要求1所述的文档搜索方法,其中所述提取步骤中的预定提取规则为如下中的至少一种提取待搜索文档中所有词的首字符;对待搜索文档中不表示主要意思的小词不进行提取处理;只提取待搜索文档中首字符是大写字母的词的首字符;和提取待搜索文档中连续多个以上的大写字母中的每一个字母。3.如权利要求l所述的文档搜索方法,其中所提取的首字符串与待搜索文档的对应关系包括首字符串中各个字符在待搜索文档中对应的扩展词及其在待搜索文档中的位置。4.如权利要求3所述的文档搜索方法,其中所述对应关系采用如下形式中的至少一种来记录映射表、关系型lt据库、数据M、数组。5.如权利要求l所述的文档搜索方法,其中在实际执行文档搜索之前预先执行所述提取步骤和对应关系构建步骤,一4搜索文档被更新,根据对文档的修改来更新执行提取和构建对应关系的处理结果。6.如权利要求l所述的文档搜索方法,其中在实际执行文档搜索之前预先执行所述提取步骤和对应关系构建步骤,所述方法还包括步骤记录对应关系构建时间;在实际执行文档搜索之时或者之前比较当前文档的最后修改时间和对应关系构建时间;如果对应关系构建时间晚于当前文档的最后修改时间,则更新执行提取和构建对应关系的处理结果。7.如权利要求l所述的文档搜索方法,其中使用如下字符串匹配方法中的至少一种来执行所提取的首字符串与待查找的缩写字符串之间的匹配BruteForce方法,Knuth誦Morris-Pratt方'法、Boyer-Moore方'法以及Aho國Corasick方法。8.如权利要求l所述的文档搜索方法,其中所述提取步骤以待搜索文档的段落为单位分别提取首字符串,将换行符作为一个段落结束的标志,每个段M取后分别对应一个单独的首字符串,并对整个文档提取出的所有首字符串按照段落顺序进行编号;以及在对应关系构建步骤中针对每个段落分别构建各自的对应关系,或者针对所有段落构建总体的对应关系,其中根据有关段落编号的信息来识别总体的对应关系中针对各个段落的对应关系部分。9.一种文档搜索装置,包括提取单元,用于按照预定提取规则提WWt索文档中相应词的首字符以形成首字符串;构建单元,用于构建所提取的首字符串与待搜索文档的对应关系;匹配单元,用于在首字符串与待查找的缩写字符串之间进行匹配;以及定位单元,用于根据匹配结果和对应关系,确定待查找的缩写字符串所对应的扩展词组及其在待搜索文档中的位置。10.如权利要求9所述的文档搜索装置,其中,所述提取单元被配置成按照下述预定^C取规则中的至少一种来执行4^取提W^搜索文档中所有词的首字符;对待搜索文档中不表示主要意思的小词不进行提取处理;只提M搜索文档中首字符是大写字母的词的首字符;和提取待搜索文档中连续多个以上的大写字母中的每一个字母。11.如权利要求9所述的文档搜索装置,其中所述构建单元构建的首字符串与待搜索文档的对应关系包括首字符串中各个字符在待搜索文档中对应的扩廣Jg及其在待搜索文档中的位置。12.如权利要求ll所述的文档搜索装置,其中所述对应关系采用如下形式中的至少一种来记录映射表、关系型数据库、数据M、数组。13.如权利要求9所述的文档搜索装置,其中所述提取单元和所述对应关系构建单元被配置成在实际执行文档搜索之前预先进行所述的提取处理和对应关系构建处理,一旦待搜索文档被更新,则根据对文档的修改来更新执行4I:取和构建对应关系的处理结果.14.如权利要求9所述的文档搜索装置,其中所述提取单元和所述对应关系构建单元被配置成在实际执行文档搜索之前预先进行所述的提取处理和对应关系构建处理,以及,所述文档搜索装置被配置成执行以下操作记录对应关系构建时间;在实际执行文档搜索之时或者之前比较当前文档的最后修改时间和对应关系构建时间;以及如果对应关系构建时间晚于当前文档的最后修改时间,则更新执行^1取处理和构建对应关系处理的结果。15.如权利要求9所述的文档搜索装置,其中所述匹配单元被配置成^^用如下字符串匹配方法中的至少一种来执行所提取的首字符串与待查找的缩写字符串之间的匹配BruteForce方法,Knuth-Morris-Pratt方法、Boyer-Moore方法以及Aho國Corasick方法。16.如权利要求9所述的文档搜索装置,其中,所述提取单元被配置成以待搜索文档的段落为单位分别提取首字符串,将换行符作为一个段落结束的标志,每个段落提取后分别对应一个单独的首字符串,并对整个文档^l:取出的所有首字符串按照段落顺序进行编号;以及,所述构建单元被配置成针对每个段落分别构建各自的对应关系,或者针对所有段落构建总体的对应关系,其中根据有关段落编号的信息来识别总体的对应关系中针对各个段落的对应关系部分。17.—种文档处理器,包括如权利要求9-16中任一项所述的文档搜索装置。全文摘要本发明提供了一种文档搜索方法,包括步骤按照预定提取规则提取待搜索文档中相应词的首字符以形成首字符串;构建所提取的首字符串与待搜索文档的对应关系;在首字符串与待查找的缩写字符串之间进行匹配;以及根据匹配结果和对应关系,确定待查找的缩写字符串所对应的扩展词组及其在待搜索文档中的位置。还提供一种用于实现上述方法的文档搜索装置,以及包含有这种文档搜索装置的文档处理器。通过本发明,即使用户仅仅知道缩写词组而不能完整地拼写出其扩展词组,也可精确、高效地实现搜索功能,在待搜索文档中定位缩写词组的扩展词组。文档编号G06F17/30GK101593179SQ20081009817公开日2009年12月2日申请日期2008年5月26日优先权日2008年5月26日发明者财周,杨建龙,沈星星,钟嘉田申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1