文本搜索方法及装置与流程

文档序号:16263279发布日期:2018-12-14 21:44阅读:135来源:国知局
文本搜索方法及装置与流程

本发明涉及文本处理领域,尤其涉及一种文本搜索方法及装置。

背景技术

数据搜索是文档阅读器中的一个重要功能,能够帮助用户有效的获取所需要的内容和信息,现有的文本搜索技术通过文本比对的方式进行搜索,但是由于文本的编码不统一造成效率低下,而且无法区别段落容易造成搜索误差。



技术实现要素:

本发明提供一种文本搜索方法及装置,通过将关键词和待搜索文本统一编码、并且以预设的维度为单位进行搜索,提高了搜索效率并且降低了搜索误差。

本发明一方面提供一种文本搜索方法,包括:对关键词和待搜索文本进行编码,获得所述关键词对应的第一编码和所述待搜索文本对应的第二编码;以预设的维度划分所述第二编码,获得多个编码集合;针对每个编码集合,根据所述第一编码在所述编码集合中进行匹配搜索,获得与所述第一编码匹配的编码段;根据所述编码段的起始字符和结束字符在所述待搜索文本中的位置,获取搜索结果。

本发明另一方面提供一种文本搜索装置,包括:

转换模块,用于对关键词和待搜索文本进行编码,获得所述关键词对应的第一编码和所述待搜索文本对应的第二编码;

划分模块,用于以预设的维度划分所述第二编码,获得多个编码集合;

搜索模块,用于针对每个编码集合,根据所述第一编码在所述编码集合中进行匹配搜索,获得与所述第一编码匹配的编码段;

获取模块,还用于根据所述编码段的起始字符和结束字符在所述待搜索文本中的位置,获取搜索结果。

本发明提供了一种文本搜索方法及装置,通过将搜索关键词和待搜索文本统一编码,并且根据需要以预设的维度为单位进行搜索,提高了文本搜索的效率并且降低了搜索误差。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例一提供的一种文本搜索方法的流程示意图;

图2为本发明实施例一提供的另一种文本搜索方法的流程示意图;

图3为本发明实施例一提供的又一种文本搜索方法的流程示意图;

图4为本发明实施例二提供的一种文本搜索装置的结构示意图;

图5为本发明实施例二提供的另一种文本搜索装置的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

图1为本发明实施例一提供的一种文本搜索方法的流程示意图,如图1所示,包括:

101、对关键词和待搜索文本进行编码,获得所述关键词对应的第一编码和所述待搜索文本对应的第二编码。

具体的,根据待搜索文本所在的平台可以得知关键词和待搜索文本的编码方式,常见的有gbk、utf-8等,接着对关键词和待搜索文本使用同一种跨平台的标准字符集进行编码。

102、以预设的维度划分所述第二编码,获得多个编码集合。

其中,所述维度可以按照搜索精度确定,例如,可以以页为维度,相应的,则针对每一页进行搜索,或者还可以以段落为维度,则相应的,针对每个段落进行搜索。具体的,用户可以根据平台的硬件情况、自身的需求以及待搜索文本的页数来定义预设的维度;例如当平台的硬件性能较差、待搜索文本的页数较少且希望尽快得到部分搜索结果时,则可以将预设的维度定义为段落。

103、针对每个编码集合,根据所述第一编码在所述编码集合中进行匹配搜索,获得与所述第一编码匹配的编码段。

具体的,其中每个编码集合的字符总数应该大于或者等于所述第一编码的字符总数。

104、根据所述编码段的起始字符和结束字符在所述待搜索文本中的位置,获取搜索结果。

具体的,根据编码段的起始字符和结束字符在待搜索文本中的位置可以获得待搜索文本中与关键词匹配的文本的起始文字和结束文字的在待搜索文本中的坐标。

以实际场景举例来说:假设当前的搜索词为“文本”,而在待搜索文本中有这样两个相邻段落,其结尾和起始分别为“…上下文”和“本文中…”。基于本方案,例如,以段落为维度进行搜索,在每一段对应的文本中进行匹配搜索则可以避免出现将第一段中的文和第二段中的本作为搜索结果的情况,从而提高文本搜索的准确性和可靠性。

为了提高文本搜索的可靠性,进一步,在本发明实施例一的基础上,在如图2所示,为本发明实施例一提供的另一种文本搜索方法的流程示意图,101具体包括:

201、根据所述关键词的编码方式,将所述关键词转化为对应的第一char型字符串;对所述第一char型字符串进行unicode编码,获得所述第一编码。

202、根据所述待搜索文本的编码方式,将所述待搜索文本转化为对应的第二char型字符串;对所述第二char型字符串进行unicode编码,获得所述第二编码。

具体的,为了消除不同的编码方式对文本搜索带来的问题,将关键词和待搜索文本转化为对应的char型字符串,接着将获得的char型字符串根据标准的unicode编码集进行编码,得到关键词对应的第一编码和待搜索文本对应的第二编码;上述方法提高了在不同编码方式下搜索文本的可靠性。

为了进一步提高文本搜索的效率,在本发明实施例一的基础上,如图3所示,为本发明实施例一提供的又一种文本搜索方法的流程示意图,103具体包括:

301、将所述编码集合的起始字符作为当前起始点;比对所述第一编码和待比对编码,所述待比对编码为当前起始点及其之后连续的n-1个字符组成的字符串,n为所述第一编码的长度。

具体的,待比对编码与第一编码的长度相同,n的取值为大于等于1的正整数。

302、若一致,则判定所述待比对编码属于与所述第一编码匹配的编码段,并将所述待比对编码后的相邻字符作为当前起始点,并返回执行所述比对所述第一编码和待比对编码的步骤,直至所述编码集合中的字符均被比对过。

具体的,比对第一编码和待比对编码对应的unicode编码是否相同。

303、若不一致,则检测当前起始点后相邻的第一字符是否属于所述第一编码;若属于,则将所述第一字符前的第m个字符作为当前起始点,并返回执行所述比对所述第一编码和待比对编码的步骤,直至所述编码集合中的字符均被比对过,其中,m为所述第一编码中与所述第一字符匹配的字符与所述第一编码的起始字符之间的长度;若不属于,将当前起始点后的相邻字符作为当前起始点,并返回执行所述检测当前起始点后相邻的第一字符是否属于所述第一编码的步骤,直至所述编码集合中的字符均被比对过。

104具体包括:

304、检测所述编码段的起始字符和结束字符在所述待搜索文本中是否处于同一行;若是,则将所述起始字符和结束字符所在位置之间的文本作为所述搜索结果;若不是,则将自所述起始字符所在位置起至所述起始字符所在行的结束位置之间的文本,和所述结束字符所在行的起始位置起至所述结束字符所在位置之间的文本,作为所述搜索结果。

具体的,将起始字符和结束字符在待所搜索文本中的坐标设置为(x1,y1)和(x2,y2),w为待所搜索文本的宽度;根据起始字符的纵坐标y1与结束字符的纵坐标y2对比,可以得知编码段的所有字符是否在同一行,若是,则将坐标为(x1,y1)和(x2,y2)之间的文本作为搜索结果;若不是,可以得知编码段的所有字符不在同一行,则将坐标值为(x1,y1)与(w,y1)之间的文本加上坐标值为(0、y2)和(x2,y2)之间的文本作为搜索结果。

以实际场景举例来说:假设当前的第一编码为“edh”和编码集合为“edhcfedh”,编码集合的起始字符“e”作为当前起始点,待比对编码为“edh”;开始执行比对第一编码和待比对编码的步骤,结果为一致,则判定待比对编码“edh”属于与第一编码“edh”匹配的编码段并将待比对编码后的相邻字符“c”作为当前起始点;返回执行比对第一编码和待比对编码的步骤,此时编码集合中“cfe”作为待比对编码,此时匹配结果为不一致,则检测当前起始点后相邻的第一字符“f”是否属于第一编码,结果为不属于,则将第一字符“f”作为当前起始点;返回执行检测当前起始点后相邻的第一字符是否属于第一编码的步骤,直至结果为属于,此时第一字符为“d”,计算第一编码中字符“d”与其起始字符的之间的长度,得到长度为1,并将上述第一字符前的第1个字符“e”作为当前起始点;接着返回执行比对第一编码和待比对编码的步骤,得到结果为一致;直至编码集合中的字符均被比对过,总共得到两个“edh”编码段;接着检测每个“edh”编码段的起始字符“e”和结束字符“h”在待搜索文本“edhcfedh”中是否处于同一行,若是,高亮显示从起始字符“e”到结束字符“h”之间的文本,若不是则高亮显示起始字符“e”到其本行的最后一个字符之间的文本以及其下一行的开始字符到结束字符“h”之间的文本。

为了在待搜索文本中突出搜索结果,以便用户进行查看,进一步,在前述任一实施方式的基础上,在104之后,还可以包括:

305、对所述搜索结果进行高亮处理。

具体的,用户可以根据需要设置高亮的属性,例如颜色、透明度、字体等。

本实施例提供了一种文本搜索方法,通过将搜索关键词和待搜索文本统一编码,并且用户可以根据需要以预设的维度为单位进行搜索,提高了文本搜索的效率并且降低了搜索误差。

图4为本发明实施例二提供的一种文本搜索装置的结构示意图,如图4所示,该装置包括:

转换模块41,用于对关键词和待搜索文本进行编码,获得所述关键词对应的第一编码和所述待搜索文本对应的第二编码;

划分模块42,用于以预设的维度划分所述第二编码,获得多个编码集合;

搜索模块43,用于针对每个编码集合,根据所述第一编码在所述编码集合中进行匹配搜索,获得与所述第一编码匹配的编码段;

获取模块44,还用于根据所述编码段的起始字符和结束字符在所述待搜索文本中的位置,获取搜索结果。

具体的,转换模块41根据待搜索文本所在的平台可以得知关键词和待搜索文本的编码方式,接着对关键词和待搜索文本使用同一种跨平台的标准字符集进行编码并将获得的编码结果发送给划分模块42。划分模块42中预设的维度可以按照搜索精度确定,并且其中每个编码集合的字符总数应该大于或者等于所述第一编码的字符总数,并将获得的编码集合发送给搜索模块43。获取模块44中根据编码段的起始字符和结束字符在待搜索文本中的位置可以获得待搜索文本中与关键词匹配的文本的起始文字和结束文字的在待搜索文本中的坐标。

在图4所示实施方式的基础上,图5为本发明实施例二提供的另一种文本搜索装置的结构示意图,如图5所示,该转换模块41包括:

第一编码单元411,用于根据所述关键词的编码方式,将所述关键词转化为对应的第一char型字符串;

第二编码单元412,用于对所述第一char型字符串进行unicode编码,获得所述第一编码;

第一编码单元411,还用于根据所述待搜索文本的编码方式,将所述待搜索文本转化为对应的第二char型字符串;

第二编码单元412,还用于对所述第二char型字符串进行unicode编码,获得所述第二编码。

具体的,为了消除不同的编码方式对文本搜索带来的问题,第一编码单元411将关键词和待搜索文本转化为对应的char型字符串,并将获得的char型字符串发送给第二编码单元412,第二编码单元412根据标准的unicode编码集进行编码,可以得到关键词对应的第一编码和待搜索文本对应的第二编码;上述方法提高了在不同编码方式下搜索文本的可靠性。

实际应用中,进行匹配搜索的方式有多种,可选的,在前述任一实施方式的基础上,搜索模块43包括:

选择单元431,用于将所述编码集合的起始字符作为当前起始点;

比对单元432,用于比对所述第一编码和待比对编码,所述待比对编码为当前起始点及其之后连续的n-1个字符组成的字符串,n为所述第一编码的长度;

处理单元433,用于若比对结果为一致,则判定所述待比对编码属于与所述第一编码匹配的编码段,并将所述待比对编码后的相邻字符作为当前起始点,并返回执行所述比对所述第一编码和待比对编码的步骤,直至所述编码集合中的字符均被比对过;所述处理单元,还用于若所述比对结果为不一致,则检测当前起始点后相邻的第一字符是否属于所述第一编码;若属于,则将所述第一字符前的第m个字符作为当前起始点,并返回执行所述比对所述第一编码和待比对编码的步骤,直至所述编码集合中的字符均被比对过,其中,m为所述第一编码中与所述第一字符匹配的字符与所述第一编码的起始字符之间的长度;若不属于,将当前起始点后的相邻字符作为当前起始点,并返回执行所述检测所述待比对编码后相邻的第一字符是否属于所述第一编码的步骤,直至所述编码集合中的字符均被比对过。

具体的,选择单元431获取编码集合的第一个字符并设置为当前起始点,比对单元432从待比对编码中获得与第一编码相同长度的字符串,接着与第一编码进行比对并将对比结果发送给处理单元433,处理单元433得到的比对结果为一致时,将待比对编码后的相邻字符作为当前起始点并发送给比对单元432;处理单元433得到的比对结果为不一致时,获得当前起始点后相邻的第一字符且该第一字符属于第一编码,根据第一字符的位置获得新的当前起始点的位置并发送给比对单元432,直至编码集合中的字符均被比对过。

此外,为了避免因匹配搜索获得的编码段的起始位置和结束位置不在同一行导致的搜索结果不准确,可选的,在前述任一实施方式的基础上,获取模块44包括:

检测单元441,用于检测从所述匹配模块获取的所述编码段的起始字符和结束字符在所述待搜索文本中是否处于同一行;

获取单元442,用于若检测结果为是,则将所述起始字符和结束字符所在位置之间的文本作为所述搜索结果;

获取单元442,还用于若所述检测结果为不是,则将自所述起始字符所在位置起至所述起始字符所在行的结束位置之间的文本,和所述结束字符所在行的起始位置起至所述结束字符所在位置之间的文本,作为所述搜索结果。

具体的,检测单元441根据编码段的起始字符和结束字符的在待搜索文本中的坐标判断起始字符和结束字符是否在同一行,并将检测结果发送给获取单元442,获取单元442根据得到的检测结果为将对应的文本作为搜索结果。

再可选的,在前述任一实施方式的基础上,该装置还包括:

标注模块45,用于对从所述获取模块获得的所述搜索结果进行高亮处理。

具体的,标注模块45高亮处理搜索结果,并可以设置高亮处理的属性,以优化用户体验。

本实施例提供了一种文本搜索装置,用户可以通过该装置将搜索关键词和待搜索文本统一编码,并且用户可以根据需要以预设的维度为单位进行搜索,提高了文本搜索的效率并且降低了搜索误差。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1