网页页面的正文提取方法和装置制造方法
【专利摘要】本发明公开了一种网页页面的正文提取方法和装置。其中,网页页面的正文提取方法包括:获取待提取网页页面的超文本标记语言HTML代码,并根据HTML代码建立待提取网页页面的树形结构;提取树形结构的第一节点对应的第一元素和第一节点的父节点对应的第二元素,其中,第一节点为树形结构的叶子节点;计算第一元素和第二元素的指标值,其中,指标值用于表示第一元素或者第二元素的信息量;获取指标值中最大指标值对应的元素,得到目标元素;以及将目标元素包含的文本作为待提取网页页面的正文进行提取。通过本发明,解决了现有技术中网页页面的正文提取不够准确的问题,进而达到了提高网页页面的正文提取准确性效果。
【专利说明】网页页面的正文提取方法和装置
【技术领域】
[0001] 本发明涉及数据处理领域,具体而言,涉及一种网页页面的正文提取方法和装置。
【背景技术】
[0002] 网页文本,尤其是网页正文,是网页中最重要的信息,同时也是大数据分析的重要 数据来源。
[0003] 现有技术中网页正文的提取,大多是以文本密度作为参考指标进行提取,其中, 文本密度是指HTML(HyperTextMark-upLanguage,超文本标记语言)元素的文本长度占 HTML元素代码长度的比例。因为,文本密度大的元素不一定是正文,有些文本如来源、时间、 作者等元素有可能被错误提取为正文;文本密度小的元素不一定不是正文,有的正文添加 了样式信息和超链接,导致文本密度下降,所以仅以文本密度作为参考指标进行网页正文 提取的方式,容易造成提取错误。
[0004] 针对现有技术中网页的正文提取不够准确的问题,目前尚未提出有效的解决方 案。
【发明内容】
[0005] 本发明的主要目的在于提供一种网页页面的正文提取方法和装置,以解决现有技 术中网页正文提取不够准确的问题。
[0006] 为了实现上述目的,根据本发明实施例的一个方面,提供了一种网页页面的正文 提取方法。根据本发明的网页页面的正文提取方法包括:获取待提取网页页面的超文本标 记语言HTML代码,并根据所述HTML代码建立所述待提取网页页面的树形结构;提取所述树 形结构的第一节点对应的第一元素和所述第一节点的父节点对应的第二元素,其中,所述 第一节点为所述树形结构的叶子节点;计算所述第一元素和所述第二元素的指标值,其中, 所述指标值用于表示元素的信息量;获取所述指标值中最大指标值对应的元素,得到目标 元素;以及将所述目标元素包含的文本作为所述待提取网页页面的正文进行提取。
[0007] 进一步地,计算所述第一元素和所述第二元素的指标值包括:计算第一元素Gj的 第一熵值Eslj和第一文本长度Lslj,其中,j依次取1至η,η为所述第一节点的个数;按 照公式Ilj=Eslj*(Lslj)2计算所述第一元素Gj的指标值Ilj;计算第二元素Ai的第二 摘值Es2i和第二文本长度Ls2i,其中,i依次取1至w,w为所述第一节点的所述父节点的 个数;以及按照公式I2i=Es2i*(Ls2i)2计算所述第二元素Ai的指标值I2i。
[0008] 进一步地,按照公式Es'1/ = -ΣOai广计算所述第一元素Gj的第 CkleSlj 一熵值EsIj,其中,SIj为所述第一元素Gj中的第一字符串,Ckl为第一字符串SIj中的字,k依次取1至q,q为所述第一字符串Slj中的字的个数,P(Ckl)为字Ckl在所述第一字符 串Slj中出现的概率。
[0009]进一步地,按照公式£ν2/ = -Σ 计算所述第二元素Ai的第 Ckl^Sli 二熵值Es2i,其中,S2i为所述第二元素Ai中的第二字符串,Ck2为第二字符串S2i中的字,i依次取1至P,P为所述第二字符串S2i中的字的个数,P(Ck2)为字Ck2在所述第二字符 串S2i中出现的概率。
[0010] 进一步地,提取所述树形结构中的第一节点对应的第一元素和所述第一节点的父 节点对应的第二元素包括:判断所述第一节点对应的第一元素是否为块元素;以及在判断 出所述第一节点对应的第一元素为块元素的情况下,提取所述第一节点对应的第一元素和 所述第一节点的父节点对应的第二元素。
[0011] 为了实现上述目的,根据本发明实施例的另一方面,提供了一种网页页面的正文 提取装置。根据本发明的网页页面的正文提取装置包括:第一获取单元,用于获取待提取网 页页面的超文本标记语言HTML代码,并根据所述HTML代码建立所述待提取网页页面的树 形结构;第一提取单元,用于提取所述树形结构的第一节点对应的第一元素和所述第一节 点的父节点对应的第二元素,其中,所述第一节点为所述树形结构的叶子节点;计算单元, 用于计算所述第一元素和所述第二元素的指标值,其中,所述指标值用于表示元素的信息 量;第二获取单元,用于获取所述指标值中最大指标值对应的元素,得到目标元素;以及第 二提取单元,用于将所述目标元素包含的文本作为所述待提取网页页面的正文进行提取。
[0012] 进一步地,所述计算单元包括:第一计算模块,用于计算第一元素Gj的第一熵值 Eslj和第一文本长度Lslj,其中,j依次取1至η,η为所述第一节点的个数;第二计算模块, 用于按照公式Ilj=Eslj*(Lslj)2计算所述第一元素Gj的指标值Ilj;第三计算模块,用 于计算第二元素Ai的第二熵值Es2i和第二文本长度Ls2i,其中,i依次取1至w,w为所述 第一节点的所述父节点的个数;以及第四计算模块,用于按照公式I2i=Es2i*(Ls2i)2计 算所述第二元素Ai的指标值I2i。
[0013] 进一步地,所述第一计算模块包括:第一计算子模块,用于按照公式 -ΣP十算所述第一元素Gj的第一熵值Eslj,其中,Slj为所述 CHe1SlJ 第一元素Gj中的第一字符串,Ckl为第一字符串Slj中的字,k依次取1至q,q为所述第 一字符串Slj中的字的个数,P(Ckl)为字Ckl在所述第一字符串Slj中出现的概率。
[0014] 进一步地,所述第二计算模块包括:第二计算子模块,用于按照公式 &2/_ = -Σ 计算所述第二元素Ai的第二熵值Es2i,其中,S2i为所述 CkleSli 第二元素Ai中的第二字符串,Ck2为第二字符串S2i中的字,i依次取1至p,p为所述第 二字符串S2i中的字的个数,P(Ck2)为字Ck2在所述第二字符串S2i中出现的概率。
[0015] 进一步地,所述第一提取单元包括:判断模块,用于判断所述第一节点对应的第一 元素是否为块元素;以及处理模块,用于在判断出所述第一节点对应的第一元素为块元素 的情况下,提取所述第一节点对应的第一元素和所述第一节点的父节点对应的第二元素。
[0016] 根据发明实施例,采用获取待提取网页页面的HTML代码,并根据所述HTML代码建 立所述待提取网页页面的树形结构;提取所述树形结构的第一节点对应的第一元素和所述 第一节点的父节点对应的第二元素,其中,所述第一节点为所述树形结构的叶子节点;计算 所述第一元素和第二元素的指标值,其中,所述指标值用于表示所述第一元素或者第二元 素的信息量;获取所述指标值中最大指标值对应的元素,得到目标元素;以及将所述目标 元素包含的文本作为所述待提取网页页面的正文进行提取。通过建立关于待提取页面HTML 代码的树形结构,实现了对叶子节点对应的元素以及叶子节点的父节点对应的元素的确定 并提取,进而根据提取到的元素计算出该元素的信息量,将信息量最大的一个元素包含的 文本作为网页页面的正文进行提取,此种以信息量作为参考指标对网页页面进行正文提取 的方式,此种提取方式不仅考虑了元素中的文本长度,还考虑了文本的混乱程度,相比较于 现有技术中仅以文本密度作为参考指标进行网页页面的正文的提取方式,也就是仅考虑文 本长度占代码长度比例的提取方式,解决了现有技术中网页页面的正文提取不够准确的问 题,进而达到了提高网页页面的正文提取准确性效果,为后续的大数据分析提供了较为准 确的数据基础。并且,此种基于建立网页页面的HTML代码的树形结构的进行网页页面正文 提取的方式,对于不同网页页面文本的不同编码格式,无需通过单独配置的方式来提取不 同网页页面的正文,从而达到了减少资源消耗并提高提取速度的效果。
【专利附图】
【附图说明】
[0017] 构成本申请的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实 施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0018] 图1是根据本发明实施例的网页页面的正文提取方法的流程图;
[0019] 图2是根据本发明实施例的一种可选的网页页面的正文提取方法的流程图;以及
[0020] 图3是根据本发明实施例的网页页面的正文提取装置的示意图。
【具体实施方式】
[0021 ] 为了使本【技术领域】的人员更好地理解本发明方案,下面将结合本发明实施例中的 附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是 本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术 人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范 围。
[0022] 需要说明的是,本发明的说明书和权利要求书及上述附图中的术语"第一"、"第 二"等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用 的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或 描述的那些以外的顺序实施。此外,术语"包括"和"具有"以及他们的任何变形,意图在于 覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限 于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产 品或设备固有的其它步骤或单元。
[0023] 对本发明实施例中所涉及的技术术语做如下解释:
[0024] 块元素又名块级元素,和其对应的是内联元素(inlineelement),都是html规范 中的概念。块级元素在浏览器显示时,通常会以新行来开始(和结束)。
[0025] 实施例1
[0026] 根据本发明实施例,提供了一种可以用于实施本申请装置实施例的方法实施例, 需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系 统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处 的顺序执行所示出或描述的步骤。
[0027] 根据本发明实施例,提供了一种网页页面的正文提取方法。图1是根据本发明实 施例的网页页面的正文提取方法的流程图,如图1所示,该方法包括如下的步骤S102至步 骤SllO:
[0028] S102 :获取待提取网页页面的超文本标记语言HTML代码,并根据HTML代码建立 待提取网页页面的树形结构,具体地,该树形结构是基于文档对象模型(DocumentObject Model,简称DOM)的树形结构,所以此种树形结构也可以称为DOM树。
[0029] S104 :提取树形结构的第一节点对应的第一元素和第一节点的父节点对应的第二 元素,其中,第一节点为树形结构的叶子节点,即提取树形结构(即,DOM树)的每个叶子节 点对应的第一元素和叶子节点的父节点对应的第二元素,其中,叶子节点的数量与第一元 素的数量相等,叶子节点的父节点的数量与第二元素的数量相等。
[0030] S106 :计算第一元素和第二元素的指标值,其中,指标值用于表示元素的信息量, 即,计算每个第一元素的信息量和每个第二元素的信息量,其中,某个元素的指标值越大, 说明该元素的信息量越大,反之,某个元素的指标值越小,说明该元素的信息量越小。
[0031] S108 :获取指标值中最大指标值对应的元素,得到目标元素,也就是,从多个第一 元素的指标值和多个第二元素的指标值中找出指标值最大的元素,该元素就是目标元素。
[0032] SllO:将目标元素包含的文本作为待提取网页页面的正文进行提取,S卩,目标元素 中的文本的内容就是需要提取的网页页面的正文。
[0033] 在本发明实施例中,通过建立关于待提取页面HTML代码的树形结构,实现了对叶 子节点对应的元素以及叶子节点的父节点对应的元素的确定并提取,进而根据提取到的元 素计算出该元素的信息量,将信息量最大的一个元素包含的文本作为网页页面的正文进行 提取,此种以信息量作为参考指标对网页页面进行正文提取的方式,此种提取方式不仅考 虑了元素中的文本长度,还考虑了文本的混乱程度,相比较于现有技术中仅以文本密度作 为参考指标进行网页页面的正文的提取方式,也就是仅考虑文本长度占代码长度比例的提 取方式,解决了现有技术中网页页面的正文提取不够准确的问题,进而达到了提高网页页 面的正文提取准确性效果,为后续的大数据分析提供了较为准确的数据基础。并且,此种基 于建立网页页面的HTML代码的树形结构的进行网页页面正文提取的方式,对于不同网页 页面文本的不同编码格式,无需通过单独配置的方式来提取不同网页页面的正文,从而达 到了减少资源消耗并提高提取速度的效果。
[0034] 具体地,可以通过步骤1-1至步骤1-4计算每个第一元素和每个第二元素的指标 值,步骤1-1至步骤1-4具体如下:
[0035] 步骤1-1 :计算第一元素Gj的第一j:商值Eslj和第一文本长度Lslj,其中,j依次取 1至η,η为第一节点的个数,也就是,计算每个第一元素的第一熵值和第一文本长度,其中, 第一文本长度为第一元素包含的文本的字的个数,第一熵值是指第一元素中包含的文本的 熵,反映了第一元素包含的文本的信息密度。例如:第一元素Gl中包含的文本有100个字, 那么第一元素Gl的文本长度Lsll为100。
[0036] 步骤1-2 :按照公式Ilj=Eslj*(Lslj)2计算第一元素Gj的指标值Ilj,也就是 根据每个第一元素的第一熵值与第一文本长度平方的乘积确定出该第一元素的指标值。
[0037] 步骤1-3 :计算第二元素Ai的第二熵值Es2i和第二文本长度Ls2i,其中,i依次 取1至w,w为第一节点的父节点的个数,也就是,计算每个第二元素的第二熵值和第二文本 长度,其中,第二文本长度为第二元素包含的文本的字的个数,第二熵值是指第二元素中包 含的文本的熵,反映了第二元素包含的文本的信息密度。例如:第二元素Al中包含的文本 有300个字,那么第二元素Al的文本长度Ls21为300。
[0038] 步骤1-4 :按照公式I2i=Es2i*(Ls2i)2计算第二元素Ai的指标值I2i,也就是 根据每个第二元素的第二熵值与第二文本长度平方的乘积确定出该第二元素的指标值。
[0039] 具体地,在本发明实施例中,按照公式&^ = -Σ 计算第一 C^le51j 元素Gj的第一熵值Eslj,其中,Slj为第一元素Gj中的第一字符串,Ckl为第一字符串Slj中的字,k依次取1至q,q为第一字符串Slj中的字的个数,P(Ckl)为字Ckl在第一字符 串Slj中出现的概率。在本发明实施例中,第一元素包含的文本中的所有字组成了该第一 元素的第一字符串,计算上述第一字符串中的每个字在该第一字符串中出现的频率,得到 每个字在该第一字符串中出现的概率,将计算出的每个字的概率与该概率的对数相乘,将 得到的所有结果求和,再取负数,就是该第一元素的第一熵值。例如:第一元素Gl中包含的 文本为"今天天气晴。",那么第一元素Gl的第一字符串Sll为"今天天气晴",该第一字符 串Sll共包含5个字,其中,"今"在第一字符串Sll中出现的概率为1/5,"天"在第一字符 串Sll中出现的概率为2/5,"气"在第一字符串Sll中出现的概率为1/5,"晴"在第一字符 串Sll中出现的概率为1/5,那么第一元素Gl的第一熵值Esll可以按照下式计算:
[0040] Esll= _(l/5*log2l/5+2/5*log22/5+l/5*log2l/5+l/5*log2l/5)。
[0041] 具体地,在本发明实施例中,按照公式:&2卜-Σ取切"叩:厂仰2)计算第二 CklesH 元素Ai的第二熵值Es2i,其中,S2i为第二元素Ai中的第二字符串,Ck2为第二字符串S2i中的字,i依次取1至P,P为第二字符串S2i中的字的个数,P(Ck2)为字Ck2在第二字符 串S2i中出现的概率。在本发明实施例中,第二元素包含的文本中的所有字组成了该第二 元素的第二字符串,计算上述第二字符串中的每个字在该第二字符串中出现的频率,得到 每个字在该第二字符串中出现的概率,将计算出的每个字的概率与该概率的对数相乘,将 得到的所有结果求和,再取负数,就是该第二元素的第二熵值。例如:第二元素Al中包含的 文本为"今天天气晴,但是确很冷。",那么该第二元素Al的第二字符串S21为"今天天气晴, 但是确很冷",该第二字符串S21共包含10个字,其中,"今"在第二字符串S21中出现的概 率为1/1〇,"天"在第二字符串S21中出现的概率为2/10,"气"在第二字符串S21中出现的 概率为1/1〇,"晴"在第二字符串S21中出现的概率为1/10,"但"在第二字符串S21中出现 的概率为1/1〇,"是"在第二字符串S21中出现的概率为1/10,"确"在第二字符串S21中出 现的概率为1/1〇,"很"在第二字符串S21中出现的概率为1/10,"冷"在第二字符串S21中 出现的概率为1/10,那么该第二元素All的第二熵值Es21可以按照下式计算:
[0042] Es21 = -(l/10*log2l/10+2/10*log22/10+l/10*log2l/10+l/10*log2l/10+l/10*lo g2l/10+l/10*log2l/10+l/10*log2l/10+l/10*log2l/10+l/10*log2l/10)。
[0043] 优选地,在本发明实施例中,提取树形结构中的第一节点对应的第一元素和第一 节点的父节点对应的第二元素包括:判断第一节点对应的第一元素是否为块元素,其中; 在判断出第一节点对应的第一元素为块元素的情况下,提取第一节点对应的第一元素和第 一节点的父节点对应的第二元素,也即,在判断出第一节点对应的第一元素是块元素的情 况下,才提取第一节点对应的第一元素以及该第一节点的父节点对应的第二元素。需要说 明的是,在判断第一节点对应的第一元素是否为块元素时,可以一次只判断一个第一节点 对应第一元素是否为块元素,也可以一次分别判断多个第一节点对应的元素是否为块元 素。
[0044] 在本发明实施例中,通过判断第一节点的第一元素是否是块元素,避免了将包含 文本内容为"文本来源"、"发表时间"或者"作者"等非块元素的第一元素进行提取,达到了 进一步提高网页页面的文本提取准确度的效果。
[0045] 此外,本发明实施例所提供的网页页面的正文提取方法还可以按照图2中示出的 具体流程来执行,即,图2是根据本发明实施例的一种可选的网页页面的正文提取方法的 流程图,如图2所示,该方法包括如下的步骤S202至步骤S214 :
[0046] S202 :发送请求网页地址,其中,该网页地址为待提取网页页面对应的网页地址, 该步骤具体为向服务器发送待提取网页页面的网页地址。
[0047] S204 :获取返回的HTML代码,具体地,获取服务器返回的网页地址对应的网页页 面的HTML代码,相当于步骤S102中的获取待提取网页页面的HTML代码,在此不再重复说 明。
[0048] S206 :建立DOM树,S卩,建立网页页面的树形结构,相当于步骤S102中的根据HTML 代码建立待提取网页页面的树形结构,在此不再重复说明。
[0049] S207 :将当前叶子节点设为第一个叶子节点。
[0050] S208 :获取当前叶子节点对应的元素。
[0051] S210 :判断该元素是否为块元素,S卩,判断步骤S208中获取的当前叶子节点对应 的元素是否为块元素,在判断出该元素是块元素的情况下,执行步骤S212 ;在判断出该元 素不是块元素的情况下,执行步骤S211 :将当前叶子节点设为下一个叶子节点,返回步骤 S208〇
[0052] S212:计算该叶子节点对应的元素的信息量,并计算该叶子节点的父节点对应的 元素的信息量,相当于步骤S106,S卩,在判断出该叶子节点是块元素的情况下,计算该叶子 节点对应的元素的信息量,还要计算该叶子节点的父节点对应的元素的信息量,在计算出 该叶子节点对应的元素的信息量和该叶子节点的父节点对应的元素的信息量后,执行步骤 S213:判断是否遍历了全部叶子节点,如果是,则执行步骤S214;如果否,则执行步骤S211 : 将当前叶子节点设为下一个叶子节点,然后返回步骤S208。
[0053] S214:将信息量最大的元素包含的文本的内容作为待提取的正文,具体地,将计算 出的所有信息量进行排序,信息量最大的元素包含的文本的内容作为正文进行提取。该步 骤相当于步骤S110,在此不再重复说明。
[0054] 需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列 的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为 依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知 悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明 所必须的。
[0055] 通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施 例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多 情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有 技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储 介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计 算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
[0056] 实施例2
[0057] 根据本发明实施例,还提供了一种用于实施上述网页页面的正文提取方法的网页 页面的正文提取装置,该正文提取装置主要用于执行本发明实施例上述内容所提供的正文 提取方法,以下对本发明实施例所提供的网页页面的正文提取装置做具体介绍:
[0058] 图3是根据本发明实施例的网页页面的正文提取装置的示意图,如图3所示,该正 文提取装置主要包括第一获取单元10、第一提取单元20、计算单元30、第二获取单元40和 第二提取单元50,其中:
[0059] 第一获取单元10用于获取待提取网页页面的超文本标记语言HTML代码,并根 据HTML代码建立待提取网页页面的树形结构,具体地,该树形结构是基于文档对象模型 (DocumentObjectModel,简称DOM)的树形结构,所以此种树形结构也可以称为DOM树。
[0060] 第一提取单元20用于提取树形结构的第一节点对应的第一元素和第一节点的父 节点对应的第二元素,其中,第一节点为树形结构的叶子节点,即提取树形结构(即,DOM 树)的每个叶子节点对应的第一元素和叶子节点的父节点对应的第二元素,其中,叶子节 点的数量与第一元素的数量相等,叶子节点的父节点的数量与第二元素的数量相等。
[0061] 计算单元30用于计算第一元素和第二元素的指标值,其中,指标值用于表示元素 的信息量,即,计算每个第一元素的信息量和每个第二元素的信息量,其中,某个元素的指 标值越大,说明该元素的信息量越大,反之,某个元素的指标值越小,说明该元素的信息量 越小。
[0062] 第二获取单元40用于获取指标值中最大指标值对应的元素,得到目标元素,也就 是,从多个第一元素的指标值和多个第二元素的指标值中找出指标值最大的元素,该元素 就是目标元素。
[0063] 第二提取单元50用于将目标元素包含的文本作为待提取网页页面的正文进行提 取,即,目标元素中的文本的内容就是需要提取的网页页面的正文。
[0064] 本发明实施例中,通过建立关于待提取页面HTML代码的树形结构,实现了对叶子 节点对应的元素以及叶子节点的父节点对应的元素的确定并提取,进而根据提取到的元素 计算出该元素的信息量,将信息量最大的一个元素包含的文本作为网页页面的正文进行提 取,此种以信息量作为参考指标对网页页面进行正文提取的方式,此种提取方式不仅考虑 了元素中的文本长度,还考虑了文本的混乱程度,相比较于现有技术中仅以文本密度作为 参考指标进行网页页面的正文的提取方式,也就是仅考虑文本长度占代码长度比例的提取 方式,解决了现有技术中网页页面的正文提取不够准确的问题,进而达到了提高网页页面 的正文提取准确性效果,为后续的大数据分析提供了较为准确的数据基础。并且,此种基于 建立网页页面的HTML代码的树形结构的进行网页页面正文提取的方式,对于不同网页页 面文本的不同编码格式,无需通过单独配置的方式来提取不同网页页面的正文,从而达到 了减少资源消耗并提高提取速度的效果。
[0065] 具体地,计算单元30包括第一计算模块、第二计算模块、第三计算模块和第四计 算模块,其中:
[0066] 第一计算模块用于计算第一元素Gj的第一熵值EsIj和第一文本长度LsIj,其中, j依次取1至η,η为第一节点的个数,也就是,计算每个第一元素的第一熵值和第一文本长 度,其中,第一文本长度为第一元素包含的文本的字的个数,第一熵值是指第一元素中包含 的文本的熵,反映了第一元素包含的文本的信息密度。例如:第一元素Gl中包含的文本有 100个字,那么第一元素Gl的文本长度Lsll为100。
[0067] 第二计算模块用于按照公式Ilj =Eslj*(Lslj)2计算第一元素Gj的指标值Ilj, 也就是根据每个第一元素的第一熵值与第一文本长度平方的乘积确定出该第一元素的指 标值。
[0068] 第三计算模块用于计算第二元素Ai的第二熵值Es2i和第二文本长度Ls2i,其中, i依次取1至w,w为第一节点的父节点的个数,也就是,计算每个第二元素的第二熵值和第 二文本长度,其中,第二文本长度为第二元素包含的文本的字的个数,第二熵值是指第二元 素中包含的文本的熵,反映了第二元素包含的文本的信息密度。例如:第二元素Al中包含 的文本有300个字,那么第二元素Al的文本长度Ls21为300。
[0069] 第四计算模块用于按照公式I2i=Es2i*(Ls2i) 2计算第二元素Ai的指标值I2i, 也就是根据每个第二元素的第二熵值与第二文本长度平方的乘积确定出该第二元素的指 标值。
[0070] 具体地,第一计算模块包括第一计算子模块,第一计算子模块用于按照公式 -.,Σ巧⑶"丨叩:厚·1'1)计算第一元素Gj的第一熵值Esl j,其中,SI j为第一元素 Gj中的第一字符串,Ckl为第一字符串Slj中的字,k依次取1至q,q为第一字符串Slj中 的字的个数,P(Ckl)为字Ckl在第一字符串Slj中出现的概率。在本发明实施例中,第一元 素包含的文本中的所有字组成了该第一元素的第一字符串,计算上述第一字符串中的每个 字在该第一字符串中出现的频率,得到每个字在该第一字符串中出现的概率,将计算出的 每个字的概率与该概率的对数相乘,将得到的所有结果求和,再取负数,就是该第一元素的 第一熵值。例如:第一元素Gl中包含的文本为"今天天气晴。",那么第一元素Gl的第一字 符串Sll为"今天天气晴",该第一字符串Sll共包含5个字,其中,"今"在第一字符串Sll 中出现的概率为1/5,"天"在第一字符串Sll中出现的概率为2/5,"气"在第一字符串Sll 中出现的概率为1/5,"晴"在第一字符串Sll中出现的概率为1/5,那么第一元素Gl的第一 熵值Esll= -(l/5*log2l/5+2/5*log22/5+l/5*log2l/5+l/5*log2l/5)。
[0071] 具体地,第二计算模块包括第二计算子模块,第二计算子模块用于按照公式 £λ'2/=_ΣpK义2)^)8,(^2)计算第二元素Ai的第二熵值Es2i,其中,S2i为第二元 Ck2eS2i 素Ai中的第二字符串,Ck2为第二字符串S2i中的字,i依次取1至p,p为第二字符串S2i中的字的个数,P(Ck2)为字Ck2在第二字符串S2i中出现的概率。
[0072] 在本发明实施例中,第二元素包含的文本中的所有字组成了该第二元素的第二字 符串,计算上述第二字符串中的每个字在该第二字符串中出现的频率,得到每个字在该第 二字符串中出现的概率,将计算出的每个字的概率与该概率的对数相乘,将得到的所有结 果求和,再取负数,就是该第二元素的第二熵值。例如:第二元素Al中包含的文本为"今 天天气晴,但是确很冷。",那么该第二元素Al的第二字符串S21为"今天天气晴,但是确 很冷",该第二字符串S21共包含10个字,其中,"今"在第二字符串S21中出现的概率为 1/10,"天"在第二字符串S21中出现的概率为2/10,"气"在第二字符串S21中出现的概率 为1/10,"晴"在第二字符串S21中出现的概率为1/10,"但"在第二字符串S21中出现的概 率为1/1〇,"是"在第二字符串S21中出现的概率为1/10,"确"在第二字符串S21中出现的 概率为1/1〇,"很"在第二字符串S21中出现的概率为1/10,"冷"在第二字符串S21中出现 的概率为1/10,那么该第二元素All的第二熵值Es21可以按照下式计算:
[0073] Es21 = -(l/10*log2l/10+2/10*log22/10+l/10*log2l/10+l/10*log2l/10+l/10*lo g2l/10+l/10*log2l/10+l/10*log2l/10+l/10*log2l/10+l/10*log2l/10)。
[0074] 优选地,在本发明实施例中,第一提取单元包括判断模块和处理模块,其中,判断 模块用于判断第一节点对应的第一元素是否为块元素;处理模块用于在判断出第一节点对 应的第一元素为块元素的情况下,提取第一节点对应的第一元素和第一节点的父节点对应 的第二元素。也即,在判断出第一节点对应的第一元素是块元素的情况下,才提取第一节点 对应的第一元素以及该第一节点的父节点对应的第二元素。需要说明的是,在判断第一节 点对应的第一元素是否为块元素时,可以一次只判断一个第一节点对应第一元素是否为块 元素,也可以一次分别判断多个第一节点对应的元素是否为块元素。
[0075] 在本发明实施例中,通过判断第一节点的第一元素是否是块元素,避免了将包含 文本内容为"文本来源"、"发表时间"或者"作者"等非块元素的第一元素进行提取,达到了 进一步提高网页页面的文本提取准确度的效果。
[0076] 从以上的描述中,可以看出,本发明解决了现有技术中网页页面的正文提取不够 准确的问题,进而达到了提高网页页面的正文提取准确性效果。
[0077] 上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
[0078] 在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有 详述的部分,可以参见其他实施例的相关描述。
[0079] 在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方 式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一 种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者 可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之 间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连 接,可以是电性或其它的形式。
[0080] 所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显 示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个 网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目 的。
[0081] 另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以 是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单 元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0082] 所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用 时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上 或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式 体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机 设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部 或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-OnlyMemory)、随机存 取存储器(RAM,RandomAccessMemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代 码的介质。
[0083] 以上所述仅是本发明的优选实施方式,应当指出,对于本【技术领域】的普通技术人 员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应 视为本发明的保护范围。
【权利要求】
1. 一种网页页面的正文提取方法,其特征在于,包括: 获取待提取网页页面的超文本标记语言HTML代码,并根据所述HTML代码建立所述待 提取网页页面的树形结构; 提取所述树形结构的第一节点对应的第一元素和所述第一节点的父节点对应的第二 元素,其中,所述第一节点为所述树形结构的叶子节点; 计算所述第一元素和所述第二元素的指标值,其中,所述指标值用于表示元素的信息 量; 获取所述指标值中最大指标值对应的元素,得到目标元素;以及 将所述目标元素包含的文本作为所述待提取网页页面的正文进行提取。
2. 根据权利要求1所述的正文提取方法,其特征在于,计算所述第一元素和所述第二 元素的指标值包括: 计算第一元素Gj的第一j:商值Eslj和第一文本长度Lslj,其中,j依次取1至n,n为所 述第一节点的个数; 按照公式Ilj=Eslj*(Lslj)2计算所述第一元素Gj的指标值Ilj; 计算第二元素Ai的第二熵值Es2i和第二文本长度Ls2i,其中,i依次取1至w,w为所 述第一节点的所述父节点的个数;以及 按照公式I2i=Es2i*(Ls2i)2计算所述第二元素Ai的指标值I2i。
3. 根据权利要求2所述的正文提取方法,其特征在于,按照公式
第一元素Gj中的第一字符串,Ckl为第一字符串Slj中的字,k依次取1至q,q为所述第 一字符串Slj中的字的个数,P(Ckl)为字Ckl在所述第一字符串Slj中出现的概率。
4. 根据权利要求2所述的正文提取方法,其特征在于,按照公式
述第二元素Ai中的第二字符串,Ck2为第二字符串S2i中的字,i依次取1至p,p为所述 第二字符串S2i中的字的个数,P(Ck2)为字Ck2在所述第二字符串S2i中出现的概率。
5. 根据权利要求1所述的正文提取方法,其特征在于,提取所述树形结构中的第一节 点对应的第一元素和所述第一节点的父节点对应的第二元素包括: 判断所述第一节点对应的第一元素是否为块元素;以及 在判断出所述第一节点对应的第一元素为块元素的情况下,提取所述第一节点对应的 第一元素和所述第一节点的父节点对应的第二元素。
6. -种网页页面的正文提取装置,其特征在于,包括: 第一获取单元,用于获取待提取网页页面的超文本标记语言HTML代码,并根据所述HTML代码建立所述待提取网页页面的树形结构; 第一提取单元,用于提取所述树形结构的第一节点对应的第一元素和所述第一节点的 父节点对应的第二元素,其中,所述第一节点为所述树形结构的叶子节点; 计算单元,用于计算所述第一元素和所述第二元素的指标值,其中,所述指标值用于表 示元素的信息量; 第二获取单元,用于获取所述指标值中最大指标值对应的元素,得到目标元素;以及 第二提取单元,用于将所述目标元素包含的文本作为所述待提取网页页面的正文进行 提取。
7. 根据权利要求6所述的正文提取装置,其特征在于,所述计算单元包括: 第一计算模块,用于计算第一元素Gj的第一熵值Eslj和第一文本长度Lslj,其中,j依次取1至n,n为所述第一节点的个数; 第二计算模块,用于按照公式IIj=Eslj*(Lslj)2计算所述第一元素Gj的指标值 Ilj; 第三计算模块,用于计算第二元素Ai的第二熵值Es2i和第二文本长度Ls2i,其中,i依次取1至w,w为所述第一节点的所述父节点的个数;以及 第四计算模块,用于按照公式I2i=Es2i* (Ls2i)2计算所述第二元素Ai的指标值I2i。
8. 根据权利要求7所述的正文提取装置,其特征在于,所述第一计算模块包括:
Gj的第一熵值Eslj,其中,Slj为所述第一元素Gj中的第一字符串,Ckl为第一字符串Slj中的字,k依次取1至q,q为所述第一字符串Slj中的字的个数,P(Ckl)为字Ckl在所述 第一字符串Slj中出现的概率。
9. 根据权利要求7所述的正文提取装置,其特征在于,所述第二计算模块包括:
Ai的第二熵值Es2i,其中,S2i为所述第二元素Ai中的第二字符串,Ck2为第二字符串S2i中的字,i依次取1至P,P为所述第二字符串S2i中的字的个数,P(Ck2)为字Ck2在所述 第二字符串S2i中出现的概率。
10. 根据权利要求6所述的正文提取装置,其特征在于,所述第一提取单元包括: 判断模块,用于判断所述第一节点对应的第一元素是否为块元素;以及 处理模块,用于在判断出所述第一节点对应的第一元素为块元素的情况下,提取所述 第一节点对应的第一元素和所述第一节点的父节点对应的第二元素。
【文档编号】G06F17/30GK104484449SQ201410827773
【公开日】2015年4月1日 申请日期:2014年12月25日 优先权日:2014年12月25日
【发明者】侯明午 申请人:北京国双科技有限公司