网页文本高亮显示方法及系统的制作方法

文档序号:6372143阅读:208来源:国知局
专利名称:网页文本高亮显示方法及系统的制作方法
技术领域
本发明涉及文本捜索技术领域,特别涉及一种网页文本高亮显示方法及系统。
背景技术
传统的文本高亮的做法一般是完全匹配和基于分词查找的方法。完全匹配是用户输入的关键词序列在网页文本中查找与关键词序列完全相同的文本串,井高亮显示。若网页文本中不存在与关键词序列完全相同的文本串,则无法高亮显示,即使网页文本存在关键词序列的某些子串(子串可以是关键词序列的一部分或全部),这些子串也能反映用户想要查找的内容,也不会将子串高亮显示,这对用户输入关键词序列的准确性要求较高,用户体验不好。分词方法主要分为两种基于规则的分词方法和基于统计的分词方法。基于规则 的分词方法的缺点在于无法有效地解决歧义切分和未登录词识别的问题。统计方法的缺点在于计算复杂性太高,导致切分效率降低,再加上受制于有限的训练语料库,分词精度提升比较困难。因此,基于分词的文本高亮算法最大的依赖是分词词典的优劣,对于ー个新词,在词典更新之前,是不能进行正常分词,就无法实现文本高亮。

发明内容
本发明要解决的技术问题是现有的基于分词的高亮显示方法中不能进行正常分词时就无法实现文本高亮的问题。为解决上述技术问题,本发明提供了一种网页文本高亮显示系统,包括文本获取模块,适于获取关键词序列,选取需要标识关键词的网页文本;查找标记模块,适于在所述网页文本中采用基于最大公共子串的方式查找并标记所述关键词序列的子串;闻売显不ネ旲块,适于在所述网页文本中闻売显不被标记的子串。其中,查找标记模块包括矩阵建立模块,适于分别以所述网页文本的长度和所述关键词序列的长度为行数和列数建立矩阵M ;矩阵初始化模块,适于初始化所述矩阵,若所述网页文本的第i个字符与所述关键词序列的第j个字符相同,则矩阵中的元素M[i] [j]=l,否则为0 ;子串标记模块,适于遍历所述矩阵的每个元素,标记元素为I的字符在所述网页文本中的位置。其中,所述子串标记模块还适于遍历所述矩阵时,分别从每个第一行和第一列的元素开始,沿矩阵中对角线方向遍历所述矩阵的元素,当连续为I的元素个数为k,k大于等于2,则只标记元素连续为I的位置对应的长度为k的子串在所述网页文本中的位置。其中,所述子串标记模块还适于在遍历所述矩阵时,沿矩阵对角线方向元素连续为I的个数n大于等于预定阈值吋,则只标记矩阵中n个连续I的位置对应的长度为n的子串在所述网页文本中的位置。其中,查找标记模块包括矩阵建立模块,适于分别以所述网页文本的长度和所述关键词序列的长度为行数和列数建立矩阵M ;矩阵初始化模块,适于初始化所述矩阵,判断所述网页文本的第i个字符与所述关键词序列的第j个字符是否相同,若相同,则判断元素M[i-l][j-l]的值m是否为0,若不为0,则矩阵中的元素M[i] [j]=m+l,否则M[i] [j]=0 ;子串标记模块,适于遍历所述矩阵的每个元素,标记元素不为0的字符在所述网页文本中的位置。其中,所述子串标记模块还适于遍历所述矩阵时,分别从每个第一行和第一列的元素开始,沿矩阵对角线方向遍历所述矩阵的元素,当连续不为0的元素个数为k,k大于等 于2,则只标记元素连续不为0的位置对应的长度为k的字串在所述网页文本中的位置。其中,所述子串标记模块还适于在遍历所述矩阵时,元素值p大于等于预定阈值吋,则只标记从该元素起沿对角线方向的反方向长度为P的子串在所述网页文本中的位置。其中,还包括西文字符处理模块,适于所述关键词序列包括英文或数字吋,以非英文或数字字符为边界,将所述英文或数字作为ー个字符处理。本发明还提供了一种网页文本高亮显示方法,包括以下步骤获取关键词序列,选取需要标识关键词的网页文本;在所述网页文本中采用基于最大公共子串的方式查找并标记所述关键词序列的子串;在所述网页文本中高亮显示被标记的子串。其中,所述在网页文本中采用基于最大公共子串的方式查找并标记所述关键词序列的子串的步骤具体包括分别以所述网页文本的长度和所述关键词序列的长度为行数和列数建立矩阵M ;初始化所述矩阵,若所述网页文本的第i个字符与所述关键词序列的j个字符相同,则矩阵中的元素M[i] [j]=l,否则为0 ;遍历所述矩阵的每个元素,标记元素为I的字符在所述网页文本中的位置。其中,遍历所述矩阵时,分别从每个第一行和第一列的元素开始,沿矩阵中对角线方向遍历所述矩阵的元素,当连续为I的元素个数为k,k大于等于2,则只标记元素连续为I的位置对应的长度为k的子串在所述网页文本中的位置。其中,在遍历所述矩阵时,沿矩阵对角线方向元素连续为I的个数n大于等于预定阈值时,则只标记矩阵中n个连续I的位置对应的长度为n的子串在所述网页文本中的位置。其中,所述在网页文本中采用基于最大公共子串的方式查找并标记所述关键词序列的子串的步骤具体包括分别以所述网页文本的长度和所述关键词序列的长度为行数和列数建立矩阵M ;初始化所述矩阵,判断所述网页文本的第i个字符与所述关键词序列的第j个字符是否相同,若相同,则判断元素M[i — l][j 一 I]的值m是否为0,若不为0,则矩阵中的元素 M[i] [j]=m+l,否则 M[i] [j]=0 ;遍历所述矩阵的每个元素,标记元素不为0的字符在所述网页文本中的位置。其中,遍历所述矩阵吋,分别从每个第一行和第一列的元素开始,沿矩阵对角线方向遍历所述矩阵的元素,当连续不为0的元素个数为k,k大于等于2,则只标记元素连续不为0的位置对应的长度为k的字串在所述网页文本中的位置。其中,在遍历所述矩阵吋,元素值p大于等于预定阈值吋,则只标记从该元素起沿对角线方向的反方向长度为P的子串在所述网页文本中的位置。其中,预定阈值大于等于2。其中,所述关键词序列包括英文或数字时,以非英文或数字字符为边界,将所述英文或数字作为ー个字符处理。本发明的网页文本高亮显示方法实现了网页文本的高亮显示,尤其是基于最大公共子串(Longest Common Subsequence, LCS)的高亮显示方法采用非完全匹配策略,无需分词即可实现网页文本的高亮显示,避免了传统方法中不能进行正常分词时就无法实现网页文本高亮的问题。


图I是本发明实施例的一种网页文本高亮显示方法流程图;图2是图I中步骤S200中ー种矩阵构造示意图;图3是图I中步骤S200中另ー种矩阵构造示意图;图4是采用图I中方法进行高亮显示的效果图;图5是本发明实施例的一种网页文本高亮显示系统结构图。
具体实施例方式下面结合附图和实施例,对本发明的具体实施方式
作进ー步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。如图I所示,本实施例的网页文本高亮显示方法包括步骤S100,获取关键词序列,选取需要标识关键词的网页文本。在文本搜索应用领域中,网页文本通常是当前窗ロ显示的文本,如一篇文档或网页中的文章。关键词序列是用户关心的主题词,通常通过编辑窗ロ由用户输入。步骤S200,在网页文本中查找并标记关键词序列的子串。本实施例中米用基于最大公共子串LCS的方式查找关键词序列的子串。LCS的解决方案包括递归求解、动态规划、普通的两重循环及矩阵的方式,本实施例中采用矩阵的方式查找关键词序列的子串,具体步骤包括分别以网页文本的长度和关键词序列的长度为行数和列数建立矩阵M (当然也可以是网页文本的长度为列,关键词序列的长度为行建立矩阵)。初始化该矩阵,若网页文本的第i个字符与关键词序列的第j个字符相同,则矩阵中的元素M[i] [j]=l,否则为O。以ABCDCDABECADCD为网页文本,BADCDCBA为关键词序列为例(为便于表示,上述大写字母代表ー个中文字符、英文单词、ー个数字串或其它可见字符)。初始化后的0-1矩阵M如图2所示。
遍历该矩阵的每个元素,标记元素为I的字符在网页文本中的位置。元素为I表示网页文本中存在关键词序列的某个字符,由于网页文本中可能存在包括关键词序列的长度大于I的子串,若毎次都标记元素为I的字符在网页文本中的位置,那么会对ー个长度大于I的子串中的每个字符都标记,使得遍历矩阵的效率降低,同时也会使高亮显示过程中遍历矩阵的效率降低。因此,在遍历矩阵时,分别从每个第一行和第一列的元素开始,沿矩阵对角线方向(如图2中箭头所示,从矩阵左上到右下的方向)遍历矩阵的元素,当连续为I的元素个数为k,k大于等于2,则标记元素连续为I的位置对应的长度为k的子串在网页文本中的位置。矩阵列的标号即为子串在网页文本中的位置标号。由于在实际应用中,单个字重复出现的概率很高,而且词通常是两个字以上,为了避免不必要的高亮显示,本实施例中,在遍历矩阵时,判断沿矩阵对角线方向元素连续为I的个数n是否大于等于预定阈值若大干,则标记矩阵中n个连续I的位置对应的长度为n的子串在网页文本中的位置。该预定阈值可根据用户需求进行设定,通常设为2以上的数
值。 本实施例中,标记子串在网页文本中的位置可采用任意的符号作为标记,例如在网页中显示高亮文本时,对待显示的高亮文本采用符合HTML或XML格式的标记进行标记,如〈b>作为起始标记,</b>作为结束标记。由于英文单词和数字是作为一个整体表达ー个意思,如java,其中的子串ja并没有意义,因此,关键词序列包括英文或数字吋,以非英文或数字字符为边界,将所述英文或数字作为ー个字符处理。即在高亮显示时以整个数字串,或以整个英文单词作高亮显示。步骤S300,在网页文本中高亮显示被标记的子串。高亮显示时,遍历网页文本,当检测到标记的子串,则以事先设定的背景顔色将该子串高亮显示。如检测到<b>时,记录标识有<b>字符的位置,当检测到该<b>后的第一个</b>吋,高亮显示<b>和</b>之间的子串。本实施例的文本高亮显示方法实现了文本的高亮显示,避免了传统方法中不能进行正常分词时就无法实现文本高亮的问题。在遍历上述的矩阵吋,需要遍历对角线方向上连续I的个数,当遍历到第一个I时,需要记住这个I的位置,然后遍历对角线上的下ー个元素,这种操作通常是采用栈的方式实现,即连续遍历到I时,将其对应位置入栈,直到不为I时,将所有I对应的位置出栈。在遍历矩阵时这种进栈出栈的方式会降低遍历的速度,尤其是当网页文本很长时,遍历效率会更低。因此,对上述过程进行了改进,主要对步骤S200进行了改进。其改进具体为在初始化矩阵时,判断网页文本的第i个字符与所述关键词序列的第j个字符是否相同,若相同,则判断元素M[i — l][j 一 I]的值m是否为0,若不为0,则矩阵中的元素M[i] [j]=m+l,否则M[i] [j]=0。初始化后的0-1矩阵如图3所示,从图3可看出,原图2中对角线方向上连续的数字I变为依次递增的数字。沿对角线方向上连续的不为0的数字中的最大数不但包含了子串的位置信息还包含了子串的长度信息,因此,在遍历矩阵时,只要找到元素值大于等于预定阈值(如大于等于2的数)的元素,若其元素值为P,则标记从该元素起沿对角线方向的反方向长度为P的子串在网页文本中的位置。采用本实施例的矩阵,大大减小了矩阵的遍历时间。当然,也可以在遍历矩阵的每个元素时,标记元素不为0的字符在所述网页文本中的位置,或者分别从每个第一行和第一列的元素开始,沿对角线方向遍历所述矩阵的元素,当连续不为O的元素个数为k,k大于等于2,则标记元素连续不为O的位置对应的长度为k的字串在所述网页文本中的位置。采用上述基于LCS的网页文本高亮显示方法的显示结果如图4所示,对于关键词序列“535个微博账号传播淫秽低俗信息被关闭”的高亮显示结果可看出(右侧浮层为高亮显示結果),数字535作为ー个整体高亮显示,网页文本中包含的中文字符串序列的子串都被闻売显不。本发明中不限于采用LCS的方式查找关键词序列的子串,还可以采用如模式匹配KMP算法等来查找关键词序列的子串。本实施例还提供了一种文本高亮显示系统,如图5所示,包括文本获取模块,适于获取关键词序列,选取需要标识关键词的网页文本;
查找标记模块,适于在所述网页文本中采用基于最大公共子串的方式查找并标记所述关键词序列的子串;闻売显不ネ旲块,适于在所述网页文本中闻売显不被标记的子串。其中,查找标记模块包括矩阵建立模块,适于分别以所述网页文本的长度和所述关键词序列的长度为行数和列数建立矩阵M ;矩阵初始化模块,适于初始化所述矩阵,若所述网页文本的第i个字符与所述关键词序列的第j个字符相同,则矩阵中的元素M[i] [j]=l,否则为0 ;子串标记模块,适于遍历所述矩阵的每个元素,标记元素为I的字符在所述网页文本中的位置。其中,所述子串标记模块还适于遍历所述矩阵时,分别从每个第一行和第一列的元素开始,沿矩阵中对角线方向遍历所述矩阵的元素,当连续为I的元素个数为k,k大于等于2,则只标记元素连续为I的位置对应的长度为k的子串在所述网页文本中的位置。其中,所述子串标记模块还适于在遍历所述矩阵时,沿矩阵对角线方向元素连续为I的个数n大于等于预定阈值吋,则只标记矩阵中n个连续I的位置对应的长度为n的子串在所述网页文本中的位置。其中,查找标记模块包括矩阵建立模块,适于分别以所述网页文本的长度和所述关键词序列的长度为行数和列数建立矩阵M ;矩阵初始化模块,适于初始化所述矩阵,判断所述网页文本的第i个字符与所述关键词序列的第j个字符是否相同,若相同,则判断元素M[i — I] [j 一 I]的值m是否为0,若不为0,则矩阵中的元素M[i] [j]=m+l,否则M[i] [j]=0 ;子串标记模块,适于遍历所述矩阵的每个元素,标记元素不为0的字符在所述网页文本中的位置。其中,所述子串标记模块还适于遍历所述矩阵时,分别从每个第一行和第一列的元素开始,沿矩阵对角线方向遍历所述矩阵的元素,当连续不为0的元素个数为k,k大于等于2,则只标记元素连续不为0的位置对应的长度为k的字串在所述网页文本中的位置。其中,所述子串标记模块还适于在遍历所述矩阵时,元素值p大于等于预定阈值吋,则只标记从该元素起沿对角线方向的反方向长度为P的子串在所述网页文本中的位置。其中,还包括西文字符处理模块,适于所述关键词序列包括英文或数字吋,以非英文或数字字符为边界,将所述英文或数字作为ー个字符处理。应当注意的是,在本发明的控制器的各个部件中,根据其要实现的功能而对其中的部件进行了逻辑划分,但是,本发明不受限于此,可以根据需要对各个部件进行重新划分或者组合,例如,可以将ー些部件组合为单个部件,或者可以将ー些部件进ー步分解为更多的子部件。本发明的各个部件实施例可以以硬件实现,或者以在ー个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP )来实现根据本发明实施例的控制器中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程 序可以存储在计算机可读介质上,或者可以具有ー个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何參考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“ー个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。
权利要求
1.一种网页文本高亮显示系统,其特征在于,包括 文本获取模块,适于获取关键词序列,选取需要标识关键词的网页文本; 查找标记模块,适于在所述网页文本中采用基于最大公共子串的方式查找并标记所述关键词序列的子串; 闻売显不I旲块,适于在所述网页文本中闻売显不被标记的子串。
2.如权利要求I所述的网页文本高亮显示系统,其特征在干,查找标记模块包括 矩阵建立模块,适于分别以所述网页文本的长度和所述关键词序列的长度为行数和列数建立矩阵M ; 矩阵初始化模块,适于初始化所述矩阵,若所述网页文本的第i个字符与所述关键词序列的第j个字符相同,则矩阵中的元素M[i] [j]=l,否则为O ; 子串标记模块,适于遍历所述矩阵的每个元素,标记元素为I的字符在所述网页文本中的位置。
3.如权利要求2所述的网页文本高亮显示系统,其特征在于,所述子串标记模块还适于遍历所述矩阵时,分别从每个第一行和第一列的元素开始,沿矩阵中对角线方向遍历所述矩阵的元素,当连续为I的元素个数为k,k大于等于2,则只标记元素连续为I的位置对应的长度为k的子串在所述网页文本中的位置。
4.如权利要求3所述的网页文本高亮显示系统,其特征在于,所述子串标记模块还适于在遍历所述矩阵时,沿矩阵对角线方向元素连续为I的个数n大于等于预定阈值时,则只标记矩阵中n个连续I的位置对应的长度为n的子串在所述网页文本中的位置。
5.如权利要求I所述的网页文本高亮显示系统,其特征在干,查找标记模块包括 矩阵建立模块,适于分别以所述网页文本的长度和所述关键词序列的长度为行数和列数建立矩阵M ; 矩阵初始化模块,适于初始化所述矩阵,判断所述网页文本的第i个字符与所述关键词序列的第j个字符是否相同,若相同,则判断元素M[i — I] [j 一 I]的值m是否为O,若不为O,则矩阵中的元素M[i] [j]=m+l,否则M[i] [j]=0 ; 子串标记模块,适于遍历所述矩阵的每个元素,标记元素不为O的字符在所述网页文本中的位置。
6.如权利要求5所述的网页文本高亮显示系统,其特征在于,所述子串标记模块还适于遍历所述矩阵时,分别从每个第一行和第一列的元素开始,沿矩阵对角线方向遍历所述矩阵的元素,当连续不为O的元素个数为k,k大于等于2,则只标记元素连续不为O的位置对应的长度为k的字串在所述网页文本中的位置。
7.如权利要求6所述的网页文本高亮显示系统,其特征在于,所述子串标记模块还适于在遍历所述矩阵吋,元素值P大于等于预定阈值吋,则只标记从该元素起沿对角线方向的反方向长度为P的子串在所述网页文本中的位置。
8.如权利要求f7中任一项所述的网页文本高亮显示系统,其特征在于,还包括西文字符处理模块,适于所述关键词序列包括英文或数字时,以非英文或数字字符为边界,将所述英文或数字作为ー个字符处理。
9.一种网页文本高亮显示方法,其特征在于,包括以下步骤 获取关键词序列,选取需要标识关键词的网页文本;在所述网页文本中采用基于最大公共子串的方式查找并标记所述关键词序列的子串; 在所述网页文本中高亮显示被标记的子串。
10.如权利要求9所述的网页文本高亮显示方法,其特征在于,所述在网页文本中采用基于最大公共子串的方式查找并标记所述关键词序列的子串的步骤具体包括 分别以所述网页文本的长度和所述关键词序列的长度为行数和列数建立矩阵M ; 初始化所述矩阵,若所述网页文本的第i个字符与所述关键词序列的第j个字符相同,则矩阵中的元素M[i][j]=l,否则为0 ; 遍历所述矩阵的每个元素,标记元素为I的字符在所述网页文本中的位置。
11.如权利要求10所述的网页文本高亮显示方法,其特征在于,遍历所述矩阵时,分别从每个第一行和第一列的元素开始,沿矩阵中对角线方向遍历所述矩阵的元素,当连续为I的元素个数为k,k大于等于2,则只标记元素连续为I的位置对应的长度为k的子串在所述网页文本中的位置。
12.如权利要求11所述的网页文本高亮显示方法,其特征在于,在遍历所述矩阵时,沿矩阵对角线方向元素连续为I的个数n大于等于预定阈值时,则只标记矩阵中n个连续I的位置对应的长度为n的子串在所述网页文本中的位置。
13.如权利要求9所述的网页文本高亮显示方法,其特征在于,所述在网页文本中采用基于最大公共子串的方式查找并标记所述关键词序列的子串的步骤具体包括 分别以所述网页文本的长度和所述关键词序列的长度为行数和列数建立矩阵M ; 初始化所述矩阵,判断所述网页文本的第i个字符与所述关键词序列的第j个字符是否相同,若相同,则判断元素M[i — l][j 一 I]的值m是否为0,若不为0,则矩阵中的元素M[i] [j]=m+l,否则 M[i] [j]=0 ; 遍历所述矩阵的每个元素,标记元素不为0的字符在所述网页文本中的位置。
14.如权利要求13所述的网页文本高亮显示方法,其特征在于,遍历所述矩阵时,分别从每个第一行和第一列的元素开始,沿矩阵对角线方向遍历所述矩阵的元素,当连续不为0的元素个数为k,k大于等于2,则只标记元素连续不为0的位置对应的长度为k的字串在所述网页文本中的位置。
15.如权利要求14所述的网页文本高亮显示方法,其特征在于,在遍历所述矩阵时,元素值P大于等于预定阈值时,则只标记从该元素起沿对角线方向的反方向长度为P的子串在所述网页文本中的位置。
16.如权利要求12或15所述的网页文本高亮显示方法,其特征在干,预定阈值大于等于2。
17.如权利要求扩15中任一项所述的网页文本高亮显示方法,其特征在于,所述关键词序列包括英文或数字吋,以非英文或数字字符为边界,将所述英文或数字作为ー个字符处理。
全文摘要
本发明公开了一种文本高亮显示系统,涉及文本搜索技术领域,包括文本获取模块,适于获取关键词序列,选取需要标识关键词的网页文本;查找标记模块,适于在所述网页文本中采用基于最大公共子串的方式查找并标记所述关键词序列的子串;高亮显示模块,适于在所述网页文本中高亮显示被标记的子串。本发明还公开了一种文本高亮显示方法。本发明的文本高亮显示系统及方法避免了现有技术中不能进行正常分词时就无法实现文本高亮的问题。
文档编号G06F17/30GK102779173SQ201210214629
公开日2012年11月14日 申请日期2012年6月25日 优先权日2012年6月25日
发明者刘付强 申请人:北京奇虎科技有限公司, 奇智软件(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1