提取网页内容的方法和网页内容提取装置与流程

文档序号:18196901发布日期:2019-07-17 05:54阅读:336来源:国知局
提取网页内容的方法和网页内容提取装置与流程

这里公开的示例性实施例涉及网页(web)内容的提取。



背景技术:

互联网、固定接入设备及便携式接入终端的迅速发展,使得网页成为人们获取信息、制造信息的主要媒介。但是随着网页数量的激增,想要快速准确地获取所需信息是困难的。

网页信息提取是将网页作为信息源的一类信息提取,即从半结构化的web文档中提取信息。其核心是将分散在因特网internet上的半结构化的html页面中的隐含的信息点抽取出来,并以更为结构化、语义更为清晰的形式表示。这为用户在web文档中查询数据、应用程序直接利用web文档中的数据提供便利。

网页信息提取中的内容提取通常针对诸如新闻发布、事件、新闻报道等由主内容和其他内容组成的网页。但是由于这类网页的布局具有多样性,因此无法为不同布局的网页设定固定的提取模板。

为了应对网页布局的多样性,现有的网页内容提取技术通常采用统计方法分析网页。例如风格树分析方法正是通过分析多个近似的网页来提取网页结构。但是这种方法对于网络结构的鲁棒性较差,并且该方法还需要对不同树中的所有叶节点和非叶节点进行比较。因此当数据量很大时会花费过多的计算时间。

因此,亟需一种对由主内容和其他内容组成的网页的网页结构不敏感的网页内容提取方法。该方法可以在网页结构改变时也能得到近似或相同的提取结果,并且在待处理的网页数据量很大时,不必消耗过多的计算资源。



技术实现要素:

根据这里公开的一个示例性实施例,提供了一种提取网页的内容的方法,包括:将输入网页转换为文档对象模型树;确定文档对象模型树中的每个叶节点是否内容叶节点,其中如果叶节点在文档对象模型树中的路径与包括至少一个参考路径的第一集合中的一个参考路径匹配,则叶节点被确定为内容叶节点;识别文档对象模型树中的至少一个内容非叶节点,其中每个内容非叶节点的所有下属叶节点均为内容叶节点;选择内容非叶节点中所有下属叶节点的文本内容的总长度最长的内容非叶节点;以及提取所选择的内容非叶节点中所有下属叶节点的文本内容。

根据这里公开的另一个示例性实施例,提供了一种用于提取网页的内容的装置,包括至少一个处理器。该至少一个处理器被配置成执行如这里公开的示例性实施例的方法。

根据这里公开的另一个示例性实施例,提供了一种存储程序的计算机程序存储介质。该程序当被计算机执行时,使得计算机执行如这里公开的示例性实施例的方法。

下面参考附图详细描述本发明的示例性实施例的进一步特性和优点,以及本发明的示例性实施例的结构和操作。应当注意,本发明不限于这里描述的具体实施例。在这里出现这样的实施例只是出于说明的目的。相关领域技术人员根据这里包含的指导会想到其它实施例。

附图说明

在附图中通过例子图解这里公开的示例性实施例,但这些例子不对本发明产生限制,图中用类似的附图标记表示类似的元素,其中:

图1a是一个示例网页的网页结构的示意图;

图1b是根据一个示例性实施例的第一集合生成方法的流程图;

图2a是一个示例网页的部分的示意图;

图2b是由图2a中由示例网页部分转换成的文档对象模型树的示意图;

图3a和图3b是示出了利用图1b的第一集合生成方法生成的第一集合提取输入网页的网页内容的方法的流程图;

图4是根据另一个示例性实施例的第二集合生成方法的流程图;

图5a和图5b示出了利用图1b的第一集合生成方法生成的第一集合和利用图4的第二集合生成方法生成的第二集合提取输入网页的网页内容的方法的流程图;

图6是利用词向量模型提取标题的方法的流程图;

图7是关键字节点提取的方法的流程图;

图8是说明用于实现这里公开的示例性实施例的各个方面的示例性系统的框图。

具体实施方式

下面参考附图描述这里公开的示例性实施例。应当注意,出于清楚的目的,在附图和描述中省略了有关所属技术领域的技术人员知道但是与示例性实施例无关的部分和过程的表示和说明。

本领域的技术人员可以理解,示例性实施例的各方面可以被实施为系统、方法或计算机程序产品。因此,示例性实施例的各个方面可以具体实现为以下形式,即,可以是完全硬件实施例、完全软件实施例(包括固件、驻留软件、微代码等)、或组合软件部分与硬件部分的实施例,本文可以一般称为"电路"、"模块"或"系统"。此外,示例性实施例的各个方面可以采取体现为一个或多个计算机可读介质的计算机程序产品的形式,该计算机可读介质上面体现有计算机可读程序代码。可以例如通过计算机网络来分发计算机程序,或者计算机程序可以位于一个或更多个远程服务器上,或被嵌入设备的存储器中。

可以使用一个或多个计算机可读介质的任何组合。计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读存储介质例如可以是,但不限于电的、磁的、光的、电磁的、红外线的、或半导体的系统、设备或装置、或前述各项的任何适当的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括以下:有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储装置、磁存储装置、或前述各项的任何适当的组合。在本文语境中,计算机可读存储介质可以是任何含有或存储供指令执行系统、设备或装置使用的或与指令执行系统、设备或装置相联系的程序的有形介质。

计算机可读信号介质可以包括例如在基带中或作为载波的一部分传播的其中带有计算机可读程序代码的数据信号。这样的传播信号可以采取任何适当的形式,包括但不限于电磁的、光的或其任何适当的组合。

计算机可读信号介质可以是不同于计算机可读存储介质的、能够传达、传播或传输供指令执行系统、设备或装置使用的或与指令执行系统、设备或装置相联系的程序的任何一种计算机可读介质。

体现在计算机可读介质中的程序代码可以采用任何适当的介质传输,包括但不限于无线、有线、光缆、射频等等、或上述各项的任何适当的组合。

用于执行这里公开的示例性实施例的各方面的操作的计算机程序代码可以以一种或多种程序设计语言的任何组合来编写,所述程序设计语言包括面向对象的程序设计语言,诸如java、smalltalk、c++之类,还包括常规的过程式程序设计语言,诸如"c"程序设计语言或类似的程序设计语言。

以下参照按照示例性实施例的方法、设备(系统)和计算机程序产品的流程图和/或框图来描述这里公开的示例性实施例的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理设备的处理器以生产出一种机器,使得通过计算机或其它可编程数据处理设备执行的这些指令产生用于实现流程图和/或框图中的方框中规定的功能/操作的装置。

也可以把这些计算机程序指令存储在能够指引计算机或其它可编程数据处理设备以特定方式工作的计算机可读介质中,使得存储在计算机可读介质中的指令产生一个包括实现流程图和/或框图中的方框中规定的功能/操作的指令的制造品。

也可以把计算机程序指令加载到计算机或其它可编程数据处理设备上,导致在计算机或其它可编程数据处理设备上执行一系列操作步骤以产生计算机实现的过程,使得在计算机或其它可编程设备上执行的指令提供实现流程图和/或框图中的方框中规定的功能/操作的过程。

图1a是一个示例网页的网页结构的示意图。

在一个事件网页中(例如新闻网页),一般包括主内容部分和其他相关要素部分。其他相关要素例如是导航条或链接等。如图1所示,主内容部分包括主内容、标题、关键字和其他相关要素。这些数据对于用户在web文档中查询数据以及应用程序直接利用web文档中的数据都是有用的。下文将详细说明提取主内容、标题以及关键词的具体实施方式。

<主内容提取>

图1b是用于说明根据一个示例性实施例的第一集合的生成方法100的流程图。

如图1b所示,方法100从步骤101开始。在步骤102,在相同的源例如网站中随机选择n个样本网页作为训练集。在步骤103,将随机选择的n个样本网页转换为文档对象模型树,即dom树。图2b示出了转换后的文档对象树的一个示例。在将这n个网页全部转换为文档对象树后,依次计算每个文档对象树中每个叶节点的模式。这里的模式包括叶节点在文档对象模型树的路径和叶节点的文本内容。

图2b示出了由图2a中部分网页的转换成的文档对象模型树的一个示例。

参照图2b,根据上文关于叶节点模式的定义,作为示例,图2b中叶节点“川崎市”的模式为text_strong_p_div_川崎市,其中,该叶节点模式的路径为“text_strong_p_div_”,内容为“川崎市”。类似地,其余各叶节点的模式分别为text_h2_div_川崎市、text_p_div_麻生区办公室等。

再次参照图1b,在步骤104,可按照此上面的模式定义方式依次计算出由n个网页转换的文档模型树中所有叶节点的模式。当所有叶节点的模式计算完毕后,进入步骤105。在步骤105,选择一个叶节点i,并将其模式fpi与由n个网页转换的文档模型树中所有其他叶节点的模式进行匹配,计算出匹配次数ci。如果ci小于预先设定的阈值,则在步骤106将与模式fpi对应的叶节点的路径添加到第一集合中,随后进入步骤107。如果ci不小于预先设定的阈值,则直接进入步骤107。在步骤107,判断是否存在还未经过判断的下一个叶节点。如果是,则返回到步骤105,继续比较下一个叶节点模式的匹配次数与预设阈值的大小。如果不是,则得到最终生成的第一集合。根据主内容通常具有较长的文本长度且不易重复的特性生成该第一集合,因此,接下来,将利用根据该特性得到的第一集合提取网页的主内容。

图3a和图3b示出了利用图1b的第一集合生成方法生成的第一集合提取待输入网页的网页内容的方法。

在步骤302,输入待提取内容的网页。这里所指的网页可以是单个网页或者多个网页甚至批量网页。下面以单个网页进行说明。在步骤303,将网页的所有的叶节点初始化为非内容节点,即将叶节点中的content_node标记设置为content_node=否。这样做的目的是利用第一集合对网页的所有叶节点通过一次遍历实现非内容节点或内容节点的标记。

在步骤304,使用图1b实施例中模式的定义计算所有叶节点的模式。随后在步骤305中依次对每个叶节点的模式中的路径进行判断。

在步骤305,确定当前叶节点路径是否在图1的第一集合生成方法得到的第一集合中。如果当前叶节点在文档对象模型树中的路径与包括至少一个参考路径的第一集合中的一个参考路径匹配,则进入步骤306。在步骤306,将当前叶节重置为内容节点,即将叶节点中的content_node标记重新设置为content_node=是。如果当前叶节点在文档对象模型树中的路径与包括至少一个参考路径的第一集合中的任何一个参考路径都不匹配,则转入步骤307。在步骤307,确定是否存在下一叶节点。同样,在步骤306重置当前叶节点为内容节点后,也进入步骤307。

在步骤307,确定是否存在下一叶节点。如果存在,则切换到该下一叶节点并重复步骤305-307。如果不存在,则表示所有叶节点均已被设置为内容节点或非内容节点,将进入图3b的步骤308进行下一步工作。

在步骤308,首先初始化设置一缓冲器,用于存放叶节点。将通过步骤302-307获得的具有内容节点标记content_node=是或非内容节点标记content_node=否的所有叶节点存入缓冲器,在后续使用中将用新的节点刷新该缓冲器。

在步骤309,从缓冲器中取出一个叶节点,确定当前叶节点是否具有父节点(如果一个节点有上一级,则称这个上一级是它的父节点,如果没有上一级,则这个节点无父节点)。如果当前叶节点有父节点,则计算当前叶节点的下属叶节点中内容节点的数量content_node_number和非内容节点的数量other_node_number。如果当前叶节点不具有下属叶节点,则在本次循环中,当前叶节点的内容节点数量和非内容节点数量取决于当前叶节点是内容节点还是非内容节点。如果当前叶节点是内容节点,则当前叶节点的内容节点数量为1、非内容节点数量为0。如果当前叶节点是非内容节点,则当前叶节点的内容节点数量为0、非内容节点数量为1。

随后在步骤311,判断是否存在下一个叶节点。如果是,则返回到步骤309。如果不是,则进入步骤312。

在步骤312,用缓冲器中现存的所有节点的父节点更新缓冲器。在步骤313,判断更新后的缓冲器是否为空。如果不为空,则返回至步骤309,对所有节点的父节点再次进行判断和计算。如果更新后的缓冲器为空,则循环结束。

下面对第一次更新后的缓冲器的操作加以说明。当从步骤313返回到309时,确定当前非叶节点是否具有父节点。如果当前非叶节点有父节点,则计算当前非叶节点的下属叶节点中内容节点的数量和非内容节点的数量。当前非叶节点的内容节点数量和非内容节点数量取决于当前非叶节点的下属叶节点中内容节点和非内容节点的数量,即当前非叶节点的内容节点数量为其所有内容下属叶节点的数量之和,非内容节点数量为其所有非内容下属叶节点的数量之和。

通过上述方式,在循环结束后,将所有下属叶节点均为内容节点且所有下属叶节点的文本内容的总长度最长的非叶节点确定为主内容节点。提取该主内容节点的所有下属叶节点模式中的文本内容,即为该网页的主内容。

图4是根据另一个示例性实施例的第二集合的生成方法400的流程图。

如图4所示,方法400从步骤401开始。在步骤402,在相同的源例如网站中随机选择n个样本网页作为训练集。在步骤403,将随机选择的n个样本网页转换为文档对象模型树,即dom树,图2b示出了转换后的文档对象树的一个示例。在将这n个网页全部转换为文档对象树后,依次计算每个文档对象树中每个叶节点的模式,这里的模式包括叶节点在文档对象模型树的路径和叶节点的文本内容。

由此,在步骤404,可照此方式依次计算出n个网页中所有叶节点的模式。当所有叶节点的模式计算完毕后,进入步骤405。在步骤405,选择一个叶节点,并将其模式fpi与n个网页的所有其他叶节点的模式进行匹配,计算出匹配次数ci。如果ci大于或等于预先设定的阈值,则在步骤406将该模式对应的叶节点的路径添加到第二集合中,随后进入步骤407。如果ci小于预先设定的阈值,则直接进入步骤407。在步骤407,判断是否存在下一个叶节点。如果是,则返回到步骤405,继续比较下一个叶节点模式的匹配次数与预设阈值的大小。如果不是,则得到最终生成的第二集合。根据除主内容外的其他内容通常具有较短的文本长度且易重复的特性生成该第二集合,接下来,将利用得到的第二集合辅助第一集合来提取网页内容。

图5a和图5b示出了利用图1b的第一集合生成方法生成的第一集合和图4的第二集合生成方法生成的第二集合提取待输入网页的网页内容的方法。

在步骤502,输入待提取内容的网页。这里所指的网页可以是单个网页或者多个网页甚至批量网页。下面以单个网页进行说明,在步骤503处,将网页的所有的叶节点初始化为非内容节点,即将叶节点中的content_node标记设置为content_node=否。这样做的目的是为了利用第一集合和第二集合对网页的所有叶节点通过一次遍历实现非内容节点或内容节点的标记。

在步骤504,使用图1b实施例中关于模式的定义计算所有的叶节点的模式。随后在步骤505中依次对每个叶节点的模式中的路径进行判断。

在步骤505,确定当前叶节点路径是否在图1b的第一集合生成方法得到的第一集合或是否在图4的第二集合生成方法得到的第二集合中,如果当前叶节点路径在第一集合或不在第二集合中,则进入步骤506。在步骤506,将当前叶节重置为内容节点,即将叶节点中的content_node标记重新设置为content_node=是。如果当前叶节点路径不在第一集合或在第二集合中,则转入步骤507。在步骤507,确定是否存在下一叶节点。同样,在步骤506重置当前叶节点为内容节点后,也进入步骤507。

在步骤507,确定是否存在下一叶节点。如果存在,则切换到该下一叶节点并重复步骤505-507。如果不存在,则表示所有叶节点均已被设置为内容节点或非内容节点,将进入步骤图5b的508进行下一步工作。

在步骤508,首先初始化设置一缓冲器,用于存放叶节点。将通过步骤502-507获得的具有内容节点标记content_node=是或非内容节点标记content_node=否的所有叶节点存入缓冲器,在后续使用中将用新的节点刷新该缓冲器。

在步骤509,从缓冲器中取出一个叶节点,确定当前叶节点是否具有父节点(如果一个节点有上一级,则称这个上一级是它的父节点,如果没有上一级,则这个节点无父节点)。如果当前叶节点有父节点,则计算当前叶节点的下属叶节点中内容节点的数量content_node_number和非内容节点的数量other_node_number。如果当前叶节点不具有下属叶节点,则在本次循环中,当前叶节点的内容节点数量和非内容节点数量取决于当前叶节点是内容节点还是非内容节点。如果当前叶节点是内容节点,则当前叶节点的内容节点数量为1、非内容节点数量为0。如果当前叶节点是非内容节点,则当前叶节点的内容节点数量为0、非内容节点数量为1。

随后在步骤511,判断是否存在下一个叶节点。如果是,则返回到步骤509。如果不是,则进入步骤512。

在步骤312,用缓冲器中现存的所有节点的父节点更新缓冲器。在步骤313,判断更新后的缓冲器是否为空。如果不为空,则返回至步骤309,对所有节点的父节点再次进行判断和计算。如果更新后的缓冲器为空,则循环结束。

下面对第一次更新后的缓冲器的操作加以说明。当从步骤513返回到509时,确定当前非叶节点是否具有父节点。如果当前非叶节点有父节点,则计算当前非叶节点的下属叶节点中内容节点的数量和非内容节点的数量。当前非叶节点的内容节点数量和非内容节点数量取决于当前非叶节点的下属叶节点中内容节点和非内容节点的数量,即当前非叶节点的内容节点数量为其所有内容下属叶节点的数量之和,非内容节点数量为其所有非内容下属叶节点的数量之和。

通过上述方式,在循环结束后,将所有下属叶节点均为内容节点且所有下属叶节点的文本内容的总长度最长的非叶节点确定为主内容节点。提取该主内容节点的所有下属叶节点模式中的文本内容,即为该网页的主内容。

<标题提取>

在主内容提取后,接下来将说明提取主内容部分中标题的具体方式。由于网站中事件页面例如新闻内容页面的标题通常是文章的题目,而文章的题目往往与文章的主内容具有强的相关性,因此本文采用词向量模型方法通过计算标题与主内容的相关度来提取标题。

词向量方法把每个词表示为一个很长的向量,这样词与词之间的相关度以及由词组成的短语或句子间的相关度就转化为向量运算。

bag-of-wordsmodel(bowmodel)词袋模型忽略掉文本的语法和语序等要素,将其仅仅看作是若干个词汇的集合,文档中每个单词的出现都是独立的。bow使用一组无序的单词来表达一段文字或一个文档。针对一个文本构建词袋的方式为:统计文本中单词的数量m,每个单词具有唯一的索引,那么每个文本就可以使用一个m维的向量来表示。该向量的每一维度与原来文本中单词出现的顺序没有关系,而是通常包括词典中每个单词的索引及其在文本中出现的频率。

图6是利用词向量模型提取标题的方法的流程图。

在步骤602,利用前述的主内容提取方式提取输入网页的主内容节点,即所有下属叶节点都是内容节点且所有下属叶节点的文本内容的总长度最长的非叶节点。

在步骤603,针对该主内容节点,对其下属的当前叶子节点ni的文本内容进行分词操作,即利用分词算法将句子或短语分解成多个词。再利用词袋模型bow构建当前叶子节点ni的词向量袋bwi。

在步骤604,计算下一个叶节点nj(j>i)的词向量袋bw'。

在步骤605,利用公式(1)计算当前叶节点ni的词向量袋bwi与另一叶节点nj(j>i)的词向量袋bw'之间的相关度c:

在步骤606,如果在步骤604中计算得到的相关度c大于一预设阈值并且当前叶节点ni的文本内容的长度大于另一预设阈值,则确定当前叶节点ni为标题节点。否则,进入步骤607。

在步骤607,确定是否存在下一个叶节点nj。如果存在,则返回步骤604。在步骤604,对当前叶节点与另外的后续叶节点的相关度进行计算。如果不存在,则返回步骤603。在步骤603,变更当前叶节点为下一个叶节点。按照此方式循环,直到得到符合条件的标题节点。

<关键字提取>

在如图1a所示的例如新闻内容的网页中,还存在诸如大会概要、时间等关键字。这些关键字常用于检索和查询等,其特点是文本长度较短且出现频次较高。根据该特性,旨在通过排除不符合该特性要求的节点来获得关键字节点。

图7是关键字节点提取的方法的流程图。

在步骤702,输入网页并将其转换为文档模型树。在步骤703,利用前述实施方式提取出主内容节点n。在步骤704,对于主内容节点的当前下属叶节点ni,计算当前下属叶节点ni的模式中的路径pi(例如“text_strong_p_div_川崎市”中的“text_strong_p_div_”)、该模式中的路径在所有叶节点中出现的次数ci以及具有该路径的所有文本内容之和li。

在步骤705,如果li/ci大于一预设阈值或者ci小于另一预设阈值,则在步骤706将路径pi和/或其对应节点移除。按照此方式循环以遍历所有的叶节点,从而将所有不符合条件的路径和/或其对应节点移除,剩余节点即为关键字节点。

图8是说明用于实现这里公开的示例性实施例的各个方面的示例性系统的框图。

在图8中,中央处理单元(cpu)801根据只读存储器(rom)802中存储的程序或从存储部分808加载到随机访问存储器(ram)803的程序执行各种处理。在ram803中,也根据需要存储当cpu801执行各种处理等等时所需的数据。

cpu801、rom802和ram803经由总线804彼此连接。输入/输出接口805也连接到总线804。

下列部件连接到输入/输出接口805:包括键盘、鼠标等等的输入部分806;包括例如阴极射线管(crt)、液晶显示器(lcd)等等的显示器和扬声器等等的输出部分807;包括硬盘等等的存储部分808;和包括例如lan卡、调制解调器等等的网络接口卡的通信部分809。通信部分809经由例如因特网的网络执行通信处理。

根据需要,驱动器810也连接到输入/输出接口805。例如磁盘、光盘、磁光盘、半导体存储器等等的可移除介质811根据需要被安装在驱动器810上,使得从中读出的计算机程序根据需要被安装到存储部分808。

在通过软件实现上述步骤和处理的情况下,从例如因特网的网络或例如可移除介质811的存储介质安装构成软件的程序。

还包括存储程序的计算机存储介质,该程序可被执行以实现上述实施例中方法。

本文中所用的术语仅仅是为了描述特定实施例的目的,而非意图限定本发明。本文中所用的单数形式的"一"和"该"旨在也包括复数形式,除非上下文中明确地另行指出。还应理解,"包括"一词当在本说明书中使用时,说明存在所指出的特征、整体、步骤、操作、单元和/或组件,但是并不排除存在或增加一个或多个其它特征、整体、步骤、操作、单元和/或组件,以及/或者它们的组合。

以下权利要求中的对应结构、材料、操作以及所有功能性限定的装置或步骤的等同替换,旨在包括任何用于与在权利要求中具体指出的其它单元相组合地执行该功能的结构、材料或操作。前面对本发明进行的描述只是为了图解和描述,不被用来对具有公开形式的本发明进行详细定义和限制。对于所属技术领域的普通技术人员而言,在不偏离本发明范围和精神的情况下,显然可以作出许多修改和变型。对实施例的选择和说明,是为了最好地解释本发明的原理和实际应用,使所属技术领域的普通技术人员能够明了,本发明可以有适合所要的特定用途的具有各种改变的各种实施例。

这里描述了下面的示例性实施例(均用“附记”表示)。

附记1.一种提取网页的内容的方法,包括:

将输入网页转换为文档对象模型树;

确定所述文档对象模型树中的每个叶节点是否内容叶节点,其中如果所述叶节点在所述文档对象模型树中的路径与包括至少一个参考路径的第一集合中的一个参考路径匹配,则所述叶节点被确定为内容叶节点;

识别所述文档对象模型树中的至少一个内容非叶节点,其中每个内容非叶节点的所有下属叶节点均为内容叶节点;

选择所述内容非叶节点中所有下属叶节点的文本内容的总长度最长的内容非叶节点;以及

提取所选择的内容非叶节点中所有下属叶节点的文本内容。

附记2.如权利要求1所述的方法,还包括:

将样本网页转换为样本文档对象模型树;

确定所述样本文档对象模型树中每个叶节点的模式,所述模式包括所述叶节点在相应样本文档对象模型树中的路径和所述叶节点的文本内容;

确定每个叶节点的模式与所有其它叶节点的模式的匹配次数;以及

将匹配次数低于第一阈值的叶节点的路径添加到所述第一集合中。

附记3.如权利要求1所述的方法,其中确定所述文档对象模型树中的每个叶节点是否内容叶节点还包括:

如果所述叶节点在所述文档对象模型树中的路径与包括至少一个参考路径的第一集合中的一个参考路径匹配或者所述叶节点在所述文档对象模型树中的路径与包括至少一个参考路径的所述第二集合中的所有参考路径都不匹配,则所述叶节点被确定为内容叶节点。

附记4.如权利要求3所述的方法,还包括:

将样本网页转换为样本文档对象模型树;

确定所述样本文档对象模型树中每个叶节点的模式,所述模式包括所述叶节点在相应样本文档对象模型树中的路径和所述叶节点的文本内容;

确定每个叶节点的模式与所有其它叶节点的模式的匹配次数;

将匹配次数低于第一阈值的叶节点的路径添加到所述第一集合中;以及

将匹配次数不低于第一阈值的叶节点的路径添加到所述第二集合中。

附记5.如权利要求1-4中任一项所述的方法,还包括:

根据所述所选择的内容非叶节点的子节点与所述子节点的各后续节点间的相关度以及所述子节点的文本内容的长度来确定所述子节点是否为标题节点。

附记6.如权利要求5所述的方法,其中

将所述相关度大于第二阈值并且文本内容的长度大于第三阈值的所述子节点确定为所述标题节点。

附记7.如权利要求1-4中任一项所述的方法,还包括:

根据所述所选择的内容非叶节点的子节点的文本内容的长度以及所述子节点在所述文档对象模型树中的路径出现的次数,确定所述子节点是否为关键字节点。

附记8.如权利要求7所述的方法,其中

当所述路径相同的各子节点的文本内容之和与所述路径出现的次数的比值大于第四阈值、并且所述路径出现的次数小于第五阈值时,将所述路径移除以确定所述关键字节点。

附记9.一种提取网页的内容的装置,包括:

至少一个处理器,被配置成执行如权利要求1至8中任一个所述的方法。

附记10.一种用于存储程序的计算机存储介质,该程序当被计算机执行时使得计算机执行权利要求1至8中任一个所述的方法。

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