具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明一实施例提供的网页信息的处理方法的流程示意图,如图1所示,本实施例提供的网页信息的处理方法具体包括:
S101:根据待处理网页中的文本信息分布,建立所述待处理网页的文档对象模型Dom树。
其中,上述文档对象模型(Document Object Model,简称Dom)树包括一个以上的节点,所述Dom树包括多个节点,所述节点与所述待处理网页中的文本信息分布相对应。
通常,构成网页的HTML的标签具有可嵌套性,一个网页中所有标签组成的DOM模型通常呈现树状结构,因此,通过一些常见的针对DOM树的操作,从而总结归纳出待抽取部分的特征(例如待处理网页中的文本信息分布特征),建立所述待处理网页的文档对象模型Dom树,有关DOM树结构的技术可以参考现有技术中的相关内容,本发明对此不作限定。
可选地,在本实施例的步骤101之前还可以对原始网页信息进行预处理,例如,将原始网页信息中的不要的信息进行去除,留下需要的部分,即预处理网页信息,具体的预处理方式可以参照现有技术中对网页信息的预处理方式,本发明对此不作限定。
S102:根据所述Dom树中的多层节点,确定所述Dom树的主题文本节点。
具体地,若所述Dom树中第1层节点为根节点,第2层节点为所述根节点的下一级节点,所述第3层节点为所述第2层节点的下一级节点,以此类推,直至第n层节点为止;
则上述步骤102具体实现时可以包括:
根据所述Dom树中第i层节点中的每个子节点包含的文本总数,确定所述第i层中的第i代表节点,所述第i代表节点中包含的文本总数大于所述第i层中除所述第i代表节点之外的其他节点包含的文本总数;
确定所述第i+1层中所述第i代表节点的下一级节点包含的文本总数,确定第i+1层中的第i+1代表节点,所述第i+1代表节点包含的文本总数大于所述第i代表节点的下一级节点中除所述第i+1代表节点之外的其他节点所包含的文本总数;将i加1,重复执行该步骤,直至获取第n层中的第n代表节点;
将所述第n代表节点确定为所述Dom树的主题文本节点;其中,i为整数,且大于或等于2。
需要说明的是,所述第一层节点中的代表节点为所述根节点;
则根据所述Dom树中第i层节点中的每个子节点包含的文本总数,确定所述第i层中的第i代表节点,具体实现时可以包括:
从第i-1层节点中的第i-1代表节点开始,查询第i层节点中的每个子节点包含的文本总数,确定所述第i层节点中文本总数最多的子节点;
若所述第i层节点中文本总数最多的子节点对应的文本总数占第i-1层节点中的第i-1代表节点的文本总数的比例大于等于预设的比例阈值,则将第i层节点中文本总数最多的子节点作为第i层节点中的第i代表节点;
若所述第i层节点中文本总数最多的子节点对应的文本总数占所述第i-1层节点中的第i-1代表节点的文本总数的比例小于预设的比例阈值,则根据预设的权重计算参数,计算所述第i层节点中的每个子节点的文本权重,将文本权重值最大且大于权重阈值的子节点作为第i层节点中的第i代表节点;
其中,本发明实施例中的比例阈值的范围例如可以设置为70%至75%;
需要说明的是,上述权重计算参数例如包括:文本总长度、文本与链接的比例、文本总长度与节点的比例或文本中噪音关键词的比例;其中,计算权重的算法可以是现有技术中的权重算法,本发明对此不限限定。
需要说明的是,上述计算第二层节点中的每个子节点的文本权重之后,若文本权重值最大但小于等于权重阈值时,则直接可以将上一层(第一层)节点的代表子节点作为该DOM树的主题文本节点输出,而不再继续向下一层节点进行查找。由此可以得出:当某一层节点中文本总数最多的子节点对应的文本总数占其上一层节点中的代表子节点的文本总数的比例小于预设的比例阈值时,需要根据预设的权重计算参数,计算该层节点中的每个子节点的文本权重,将文本权重值最大且大于权重阈值的子节点作为该层节点中的代表子节点;假设计算该层节点中的每个子节点的文本权重之后,若文本权重值最大但是小于等于权重阈值时,则直接将该层的上一层节点的代表子节点作为DOM树的主题文本节点,不再继续向下一层节点查找。
需要说明的是,在本实施例中,对建立好的Dom树中所有的节点进行统计时,进行统计的信息例如还可以包括:非链接中文字数、非链接中文标点符号数目、非链接英文数目、非链接英文标点符号数目、非链接数字数目、节点自身非链接中文数目、节点自身非链接中文标点符号数目、节点自身非链接英文数目、节点自身非链接英文标点符号数目、节点自身非链接数字数目、链接中文数目、链接英文数目、链接中文标点符号数目、链接英文数目、链接数字数目、节点自身链接中文数目、节点自身链接英文数目、节点自身链接中文标点符号数目、节点自身链接英文标点符号数目、节点自身链接数字数目、链接数目、节点自身链接数目、实际文本长度(字节)、自身实际文本长度(字节)、无效字符数目、自身无效字符数目、图像数目、自身图像数目、模板链接数目、模板中文字数、模板英文字数等信息。
S103、将所述Dom树的主题文本节点对应的文本信息确定为所述待处理网页的主题信息。
通过本发明实施例所述的方法可以确定待处理网的主题类型,例如新闻类网页、博客类网页、图片类网页、视频类网页、百科类网页、论坛类网页、评论类网页、搜索类网页等。
本发明实施例根据待处理网页中的文本信息分布,建立所述待处理网页的文档对象模型Dom树,其中,所述Dom树包括一个以上的节点,所述节点与所述待处理网页中的文本信息分布相对应,且所述节点中至少包括一个标识所述文本信息的标签;对所述Dom树中的所有节点进行信息统计,获取所述Dom树的主题文本节点;将所述Dom树的主题文本节点对应的文本信息确定为所述待处理网页的主题信息;由于本发明采用基于DOM树结构的信息统计技术,能够快速获取Dom树的主题文本节点,从而能够快速确定待处理网页的主题信息,因此可以提高网页信息处理的准确率和效率。
下面结合Dom树的结构示意图对本发明实施例所述的网页信息的处理方法的具体实施方式进行详细描述:
图2为本发明实施例应用的一种Dom树的结构示意图,如图2所示:
自第一层的根节点开始,第二层节点中的子节点13的文本数量所占根节点文本数量的比例为97%,假设本发明实施例采用的比例阈值为75%,很明显子节点13下包含了几乎根节点全部的正文信息,而同一层其它子节点为噪音信息,因此,可以确定子节点13是第二层节点中的代表子节点;
在子节点13(第二层节点中的代表子节点)下只有一个子节点24,所以可以确定子节点24的文本数量所占子节点13的文本数量的比例超过75%,因此,可以确定子节点24是第三层节点中的代表子节点;
在子节点24(第三层节点中的代表子节点)下的子节点31的文本数量占据子节点24全部文本数量的95%,因此,可以确定子节点31是第四层节点中的代表子节点;
在子节点31(第四层节点中的代表子节点)下子节点42的文本数量占据子节点31全部文本数量的92%,可以确定子节点42是第五层节点中的代表子节点;
由于子节点42下无其他子节点,因此最终抽取子节点42作为该DOM树的主题文本节点,进而将子节点42对应的文本信息确定为该待处理网页的主题信息。
图3为本发明实施例应用的又一种Dom树的结构示意图,如图3所示:
自第一层的根节点开始,根节点的下一层节点中子节点12的文本数量所占根节点的文本数量的比例超过98%,选定子节点12为第二层节点的代表子节点;
子节点12的下一层的节点中子节点23的文本数量占子节点12的文本数量的比例超过99%,选定子节点23为第三层节点的代表子节点;
在子节点23的下一层节点中的子节点32的文本数量占子节点23的文本数量的52%,子节点33的文本数量占子节点23的文本数量的43%,而两者的文本数量总和占子节点23的文本总数的95%;此时,可以采用两种处理策略:
第一种策略是:将子节点32和子节点33都作为该层节点的代表子节点,不再继续查找下一层节点,而是将子节点32和子节点33作为该DOM树的主题文本节点,进而确定待处理网页的主题信息。第一种策略中,在处理效率上提高了很多,但准确率有所下降,因为不可避免的加入了一些其他噪音节点的信息。
第二种策略是:根据预设的文本权重参数,分别对子节点32和子节点33进行文本权重计算,将文本权重值最大且大于权重阈值的子节点作为该层节点的代表子节点,然后继续查找下一层节点,直至确定最后一层节点的代表子节点;其中,文本权重参数可以考虑一下参数:
(1)节点下最长文本是否超过一定值。
(2)节点下低于一定长度的文本的数量是否超过一定值。
(3)节点下文本是否集中在1个正文节点。
(4)节点下文本是否包含某些特定噪音关键词。
根据以上预设的文本权重参数,例如子节点32的文本权重大于子节点33的文本权重,且子节点32的文本权重大于预设的权重阈值,于是可以将子节点33作为噪音节点予以剔除,将子节点32作为该层节点对应的代表子节点;或者,子节点32的文本权重大于子节点33的文本权重,但是小于等于预设的权重阈值时,则不再继续查找下一层节点,而是直接将上一层节点的代表子节点(子节点23)作为该DOM树的主题文本节点;
子节点32的下一层节点中的子节点42的文本数量占子节点32的文本数量的比例超过75%,于是将子节点42作为该层节点对应的代表子节点;
由于子节点42的下一层没有子节点,于是将子节点42作为该DAM树的主题文本节点,进而根据子节点42的文本信息确定待处理网页的主题信息。
图4为本发明实施例应用的又一种Dom树的结构示意图,如图4所示:
自第一层的根节点开始,下一层节点中的子节点12的文本数量占据了根节点的文本数量的比率为100%,所以选取子节点12作为第二层节点的代表子节点;
继续向下一层查找,子节点21的文本数量占据了子节点12的文本数量的比率为100%,选取子节点21作为第三层节点的代表子节点;
子节点21的下一层节点中的子节点34的文本数量占据子节点21文本数量的98%以上,选取子节点34作为第四层节点的代表子节点;
子节点34的下一层节点中的子节点43的文本数量占据子节点34文本数量的94%,选取子节点43作为第五层节点的代表子节点;
同理,子节点52的文本数量占据子节点43的文本总数的98%,选取子节点52作为第六层节点的代表子节点;
最终在子节点52下,文本节点呈分散形态,子节点52的下一层节点中的子节点61、69、63的文本数量分别占据子节点52的文本数量的比率为32%、19%、5%,而三者和为56%,鉴于选取文本最多的前3个子节点依然不能选择超过子节点52的文本数量的75%,此情况下,可以将子节点52作为该DOM树的主题文本节点,进而根据子节点52的文本信息确定该待处理网页的主题信息。
图5为本发明实施例提供的网页信息的处理装置的结构示意图,如图5所示,包括:
建立模块51,用于根据待处理网页中的文本信息分布,建立所述待处理网页的文档对象模型Dom树,其中,所述Dom树包括多个节点,所述节点与所述待处理网页中的文本信息分布相对应;
第一确定模块52,用于根据所述Dom树中的多层节点,确定所述Dom树的主题文本节点;
第二确定模块53,用于将所述Dom树的主题文本节点对应的文本信息确定为所述待处理网页的主题信息。
可选地,若所述Dom树中第1层节点为根节点,第2层节点为所述根节点的下一级节点,所述第3层节点为所述第2层节点的下一级节点,以此类推,直至第n层节点为止;
则第一确定模块52具体用于:
根据所述Dom树中第i层节点中的每个子节点包含的文本总数,确定所述第i层中的第i代表节点,所述第i代表节点中包含的文本总数大于所述第i层中除所述第i代表节点之外的其他节点包含的文本总数;
确定所述第i+1层中所述第i代表节点的下一级节点包含的文本总数,确定第i+1层中的第i+1代表节点,所述第i+1代表节点包含的文本总数大于所述第i代表节点的下一级节点中除所述第i+1代表节点之外的其他节点所包含的文本总数;将i加1,重复执行该步骤,直至获取第n层中的第n代表节点;
将所述第n代表节点确定为所述Dom树的主题文本节点;其中,i为整数,且大于或等于2。
其中,所述第一层节点中的代表子节点为所述根节点。
可选地,所述第一确定模块52具体还用于:
从第i-1层节点中的第i-1代表节点开始,查询第i层节点中的每个子节点包含的文本总数,确定所述第i层节点中文本总数最多的子节点;
若所述第i层节点中文本总数最多的子节点对应的文本总数占第i-1层节点中的第i-1代表节点的文本总数的比例大于等于预设的比例阈值,则将第i层节点中文本总数最多的子节点作为第i层节点中的第i代表节点;
若所述第i层节点中文本总数最多的子节点对应的文本总数占所述第i-1层节点中的第i-1代表节点的文本总数的比例小于预设的比例阈值,则根据预设的权重计算参数,计算所述第i层节点中的每个子节点的文本权重,将文本权重值最大且大于权重阈值的子节点作为第i层节点中的第i代表节点。
其中,所述权重计算参数包括:文本总长度、文本与链接的比例、文本总长度与节点的比例或文本中噪音关键词的比例。
本发明实施例所述的装置可以执行图1所示实施例所述的方法,其实现的技术原理和技术效果不再赘述。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。