首页> 中国专利> 一种从论坛帖子列表页面中抽取帖子元数据的方法

一种从论坛帖子列表页面中抽取帖子元数据的方法

摘要

本发明公开了一种从论坛帖子列表页面中抽取帖子元数据的方法,其包括如下步骤:步骤S1,提供论坛帖子列表页面作为样例页面,根据样例页面中的帖子记录的组织结构特征生成抽取模板;步骤S2,根据抽取模板,对与样例页面中的帖子记录的组织结构相同或相似的论坛帖子列表页面作在线抽取操作,获得帖子元数据。本发明能够满足处理大量的大规模论坛数据的实际需求,且抽取精度高、抽取速度快、维护代价小。

著录项

  • 公开/公告号CN101661468A

    专利类型发明专利

  • 公开/公告日2010-03-03

    原文格式PDF

  • 申请/专利权人 中国科学院计算技术研究所;

    申请/专利号CN200810119238.0

  • 发明设计人 郭岩;丁国栋;曹冬林;王宇;张刚;

    申请日2008-08-29

  • 分类号G06F17/30;

  • 代理机构北京律诚同业知识产权代理有限公司;

  • 代理人梁挥

  • 地址 100080 北京市海淀区中关村科学院南路6号

  • 入库时间 2023-12-17 23:35:48

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2014-08-13

    著录事项变更 IPC(主分类):G06F17/30 变更前: 变更后: 申请日:20080829

    著录事项变更

  • 2011-08-31

    授权

    授权

  • 2010-04-28

    实质审查的生效 IPC(主分类):G06F17/30 申请日:20080829

    实质审查的生效

  • 2010-03-03

    公开

    公开

说明书

技术领域

本发明涉及网络信息抽取方法,特别是一种从论坛帖子列表页面中抽取帖子元数据的方法。

背景技术

网络的飞速发展带来了海量的网络信息,如何抽取所需要的网络信息也越来越被人们所关注。网络信息抽取是指从网页这样的半结构化文档中抽取出结构化信息。这些网页往往由服务器端的应用程序自动生成。网络信息抽取而生成的结构化信息为网络挖掘、网络检索等重要网络应用提供了最基础的分析数据。因此,网络信息抽取方法的研究具有非常重要的现实意义。

用于执行信息抽取任务的程序称为抽取器。

网络信息抽取可以分为两大部分:数据的抽取和数据的集成。数据的抽取是指从半结构化文档中抽取出结构化数据。数据的集成是指为抽取出的数据赋予其含义,如产品的名称、价格等。

从自动化程度的角度分类,网络信息抽取方法主要可以分为三类:手工构造抽取器的方法,基于监督学习的抽取方法,和基于非监督学习的抽取方法。

手工构造抽取器的方法,顾名思义,是需要人工编写抽取程序。这要求用户具备相当专业的计算机和编程知识。因此,该方法并不具有普遍的实用性。

基于监督学习的抽取方法,是先由用户在学习阶段对训练页面标注出要抽取的内容,然后从训练页面中学习出抽取规则,生成抽取器。因为手工标注的代价较高,所以这种方法不适合应用于大规模网站的信息抽取。而且网站的频繁变化,使得维护抽取器需要付出相当大的代价,因此该方法也不适合应用于大量网站的信息抽取。

基于非监督学习的抽取方法,是不需要用户的参与,自动生成抽取器。由于抽取信息的过程是完全自动的,所以非常适用于大规模网站的信息抽取需求。并且抽取器的维护代价非常小,因此该方法适用于大量网站的信息抽取。

网络信息的形式是多种多样的,仅就网络论坛中的信息而言,网络论坛已经成为人们交流信息的重要渠道之一,论坛中的数据越来越受到网络分析者的关注。论坛帖子列表页面中的帖子列表包含了丰富的帖子的元数据,例如发帖子的作者,帖子的标题,发帖时间,帖子的浏览数,帖子的回复数等。这些帖子的元数据为论坛挖掘、论坛检索等后期的分析应用提供了丰富的基础数据。

由于手工构造抽取器的方法和基于监督学习的抽取方法都需要用户参与大量工作,因此对于日益增长的大量论坛数据,采用基于非监督学习的自动抽取方法实现从论坛帖子列表中在线抽取帖子的元数据是合适的。

然而,现有技术中的基于非监督学习的信息抽取方法,都没有考虑利用网络论坛的特征来抽取信息,从而导致使用这些方法从论坛帖子列表页面中抽取帖子的元数据时,无法在抽取精度、抽取速度、维护代价方面满足处理大量的大规模论坛数据的实际需求。

发明内容

本发明的目的是一种从论坛帖子列表页面中抽取帖子元数据的方法,能够满足处理大量的大规模论坛数据的实际需求,其抽取精度高、抽取速度快、维护代价小。

为了上述目的,本发明提供如下技术方案:

一种从论坛帖子列表页面中抽取帖子元数据的方法,包括如下步骤:

步骤S1,提供论坛帖子列表页面作为样例页面,根据样例页面中的帖子记录的组织结构特征生成抽取模板;

步骤S2,根据抽取模板,对与样例页面中的帖子记录的组织结构相同或相似的论坛帖子列表页面作在线抽取操作,获得帖子元数据。

进一步地,所述步骤S1是在离线状态下提供样例页面,并生成抽取模板。

进一步地,所述步骤S1还包括根据样例页面中的帖子记录的组织结构特征,判断样例页面的帖子记录的组织结构类型的步骤,所述步骤S1中根据样例页面中的帖子记录的组织结构特征生成抽取模板的步骤包括:根据样例页面中的帖子记录的组织结构类型,生成与所述样例页面的帖子记录的组织结构类型相对应类型的抽取模板。

进一步地,所述组织结构类型包括:

第一类型:论坛帖子列表页面对应的标签树中的帖子节点的标签都相同,但不是<div>标签;每个帖子节点在标签树中的深度相同;帖子节点的子节点个数相同,且超过3个;

第二类型:论坛帖子列表页面对应的标签树中的帖子节点的标签都是<div>;帖子节点都具有非空的“class”属性值;帖子节点在标签树中的深度相同;帖子节点的有效子节点个数相同,且超过3个;所述有效子节点是指这样的子节点:该子节点及其子树承载的文本不为空,且该子节点具有非空的“class”属性值。

进一步地,所述步骤S1具体包括如下步骤:

步骤S11,提供论坛帖子列表页面作为样例页面,建立样例页面的标签树;

步骤S12,根据样例页面的帖子记录的组织结构类型,设定用于分离出帖子节点的分组条件;

步骤S13,遍历标签树的各节点,根据分组条件将标签树中的节点分组;

步骤S14,选择节点数最多的组作为帖子节点组;

步骤S15,根据帖子节点组中节点的特征,生成相应类型的抽取模板。

进一步地,在步骤S12中,当样例页面中的帖子记录的组织结构类型是第一类型时,所述分组条件为:

节点的标签都相同,但不是<div>;节点在标签树中的深度相同;节点的子节点个数相同,且超过3个。

进一步地,在步骤S15中,当样例页面中的帖子记录的组织结构类型是第一类型时,对应的抽取模板包括如下信息:

该抽取模板适用的论坛帖子列表页面中的帖子记录的组织结构类型为第一类型;节点的标签名称;节点在标签树中的深度;节点的子节点个数。进一步地,在步骤S12中,当样例页面中的帖子记录的组织结构类型是第二类型时,所述分组条件为:

节点的标签都是<div>,且节点都具有非空的“class”属性值;节点在标签树中的深度相同;节点的有效子节点个数相同,且超过3个。

进一步地,在步骤S15中,当样例页面中的帖子记录的组织结构类型是第二类型时,对应的抽取模板包括如下信息:

该抽取模板适用的论坛帖子列表页面中的帖子记录的组织结构类型为第二类型;节点的标签名称;节点在标签树中的深度;节点的有效子节点个数。

进一步地,所述步骤S2具体包括如下步骤:

步骤S21,在线为待抽取帖子元数据的论坛帖子列表页面建立标签树;

步骤S22,遍历标签树的各节点,选择满足抽取模板的节点作为帖子节点;

步骤S23,对每一个帖子节点,从其每个子节点中抽取出相应的帖子记录的各字段,即帖子的元数据。

进一步地,在步骤S21中还包括:判断论坛帖子列表页面中的帖子记录的组织结构类型的步骤;当判断结果为第一类型时,则继续执行步骤S22;当判断结果是第二类型时,所述步骤S22具体包括:遍历标签树的各节点,选择满足该论坛帖子列表页面的抽取模板的节点作为候选帖子节点;判断各候选帖子节点是否具有非空的“class”属性值,如果是,则该候选帖子节点作为帖子节点,否则不作为帖子节点。

进一步地,当所述判断结果是第二类型时,在步骤S23中,所述子节点是指有效子节点。

本发明产生的有益技术效果是:

本发明的从论坛帖子列表页面中抽取帖子元数据的方法充分利用了论坛帖子列表页面的组织结构特征,能够准确地定位到帖子记录,从而使抽取帖子记录的平均准确率可高达98%,从帖子记录中识别帖子元数据的平均准确率可高达100%。因此,本发明在抽取精度方面满足了处理大量的大规模论坛数据的实际需求。

本发明的从论坛帖子列表页面中抽取帖子元数据的方法,采用离线生成抽取模板、利用模板进行在线抽取操作的策略,这种策略使得在线操作时,能够通过已经离线生成的抽取模板准确地定位到帖子记录。本发明在离线生成抽取模板时的平均速度可高达7页/秒,在在线抽取元数据时的平均速度可高达8页/秒。从而在抽取速度方面满足了处理大量的大规模论坛数据的实际需求。

本发明的从论坛帖子列表页面中抽取帖子元数据的方法充分利用了网络论坛的组织结构特征,使得在维护代价方面满足了处理大量的大规模论坛数据的实际需求。原因如下:通常情况下,一个网络论坛中的论坛帖子列表页面的组织结构往往很相似,可以归为同一组,同一组内的论坛帖子列表页面可以共用同一个抽取模板;且同一组内的论坛页面必然为同一类型(后面将详细描述),如第一类型,或第二类型。较少情况下,一个网络论坛中的论坛帖子列表页面无法归为一组,即无法共用同一个抽取模板,通常可分为n组,仍然是同一组内的论坛帖子列表页面共用同一个抽取模板,且同一组内的论坛帖子列表页面必然为同一类型,如第一类型,或第二类型,通常n小于10。在本发明的抽取帖子元数据方法中,为组织结构相似的一组论坛帖子列表页面生成一个抽取模板只需要选择一个样例页面。因此,在离线生成抽取模板时,对一个论坛网站,往往只需要用户提供一个样例页面,或者在论坛中的各论坛帖子列表页面的组织结构不相似的情况下提供n个样例页面(通常n小于10)。这使得本发明在生成抽取模板和维护抽取模板的方面代价很小。

附图说明

图1是本发明具体实施方式的从论坛帖子列表页面中抽取帖子元数据的方法的概括流程图。

图2是本发明具体实施方式的从论坛帖子列表页面中抽取帖子元数据的方法的部分具体流程图。

图3是本发明具体实施方式的从论坛帖子列表页面中抽取帖子元数据的方法的部分具体流程图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明的从论坛帖子列表页面中抽取帖子元数据的方法进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本发明的从论坛帖子列表页面中抽取帖子元数据的方法,利用网络论坛在组织结构方面的特征,尤其是论坛帖子列表页面的帖子记录在组织结构方面的特征,使得该方法从论坛帖子列表中在线抽取帖子的元数据时,在抽取精度、抽取速度、维护代价方面能够满足处理大量的大规模论坛数据的实际需求。本发明主要涉及数据的抽取方法,不涉及数据的集成。

在论坛帖子列表页面中,列表中的每一条帖子记录记载了一个帖子的一组元数据,每一条帖子记录的各个字段分别包含一个元数据,例如发帖子的作者、帖子的标题、发帖时间等。一个网页的HTML(Hypertext Markup Language,超文本标记语言)标签在组织结构上可以用一棵树表达,称为标签树。在论坛帖子列表页面对应的标签树中,包含多个节点,一条帖子记录被一个节点及其子树承载着,这个节点在本发明中被称为帖子节点,不承载帖子记录的节点可以称为非帖子节点。列表中的各条帖子记录在组织结构上是相似的,相应的帖子节点之间也是相似的。

本发明统计了帖子节点的组织结构特征,按照帖子节点的组织结构特征将论坛帖子列表页面分为三类:帖子节点的组织结构类型为第一类型的论坛帖子列表页面,称为Table-Type类型的论坛帖子列表页面;帖子节点的组织结构类型为第二类型的论坛帖子列表页面,称为Div-Type类型的论坛帖子列表页面;和不属于上述两种类型的其他类型论坛帖子列表页面,称为Other-Type类型。下面详细说明各类型的特征:

Table-Type类型的论坛帖子列表页面的特征:论坛帖子列表页面对应的标签树中的帖子节点的标签都相同,但不是<div>标签;每个帖子节点在标签树中的深度相同(即在标签树中的同一层);帖子节点的子节点个数相同,且超过3个。该类型论坛帖子列表页面上的非帖子节点不具备上述三个特征。此类型的论坛帖子列表页面占网络上所有论坛帖子列表页面的60%。

Div-Type类型的论坛帖子列表页面的特征:论坛帖子列表页面对应的标签树中的帖子节点的标签都是<div>;帖子节点都具有非空的“class”属性值;帖子节点在标签树中的深度相同(即在标签树中的同一层);帖子节点的有效子节点个数相同,且超过3个。这里,有效子节点是指这样的子节点:该子节点及其子树承载的文本不为空,且该子节点具有非空的“class”属性值。该类型论坛帖子列表页面上的非帖子节点不具备上述三个特征。此类型的论坛帖子列表页面占网络上所有论坛帖子列表页面的30%。

Other-Type类型的论坛帖子列表页面的特征:不符合Table-Type和Div-Type类型的论坛帖子列表页面都归为此类型。此类型的论坛帖子列表页面占网络上所有论坛帖子列表页面的10%。

本发明的从论坛帖子列表页面中抽取帖子元数据的方法只处理Table-Type类型和Div-Type类型的论坛帖子列表页面,对Other-Type类型的页面不作处理。当然,本领域技术人员也可以根据本发明的提示,采用本发明的方法对Other-Type类型的论坛帖子列表页面进行处理,但处理的效果可能不如处理另外两种论坛帖子列表页面的效果好。

本发明提供的从论坛帖子列表页面中抽取帖子元数据的方法,如图1所示,包括如下步骤:

步骤S1,提供论坛帖子列表页面作为样例页面,根据样例页面中的帖子记录的组织结构特征生成抽取模板。本领域技术人员应当清楚,组织结构相似的论坛帖子列表页面可以共用同一个抽取模板。

步骤S2,根据抽取模板,对与样例页面中的帖子记录的组织结构相同或相似的论坛帖子列表页面作在线抽取操作,获得帖子元数据。

较佳地,所述步骤S1中是在离线状态下提供样例页面,并生成抽取模板。这样做的好处是使得在线抽取元数据时,能够通过已经离线生成的抽取模板准确地定位到帖子记录,从而加快在线抽取的速度,满足大量的大规模论坛数据的实际需求。

较佳地,所述步骤S1中,还包括根据样例页面中的帖子记录的组织结构特征,判断样例页面的帖子记录的组织结构类型的步骤,所述步骤S1中根据样例页面中的帖子记录的组织结构特征生成抽取模板的步骤包括:根据样例页面中的帖子记录的组织结构类型,生成与所述样例页面的帖子记录的组织结构相对应类型的抽取模板。判断样例页面中的帖子记录的组织结构类型可以通过人工方式,也可以通过编程方式自动统计论坛帖子列表页面的标签树的节点特征来实现;或者通过查看最终抽取的元数据是否为需要的帖子元数据,来确定页面类型及相应的抽取模板是否需要改变。这些方式都是本领域技术人员根据上述提示能够实现的,在此不再赘述。

较佳地,如图2所示,所述步骤S1具体包括如下步骤:

步骤S11,提供论坛帖子列表页面作为样例页面,建立样例页面的标签树;

步骤S12,根据样例页面中的帖子记录的组织结构类型,设定用于分离出帖子节点的分组条件;

判断样例页面中的帖子记录的组织结构类型可以通过人工方式,也可以通过编程方式自动统计论坛帖子列表页面的标签树的节点特征来实现;或者通过查看最终抽取的元数据是否为需要的帖子元数据,来确定页面类型及相应的抽取模板是否需要改变。

步骤S13,遍历标签树的各节点,根据分组条件将标签树中的节点分组;

步骤S14,选择节点数最多的组作为帖子节点组。

根据对网络中论坛帖子列表页面的标签树的节点统计,可以得出:按照上述分组条件生成的节点组中,节点数最多的组最有可能是帖子节点组。因此,本发明基于分组条件,选择节点数最多的组作为帖子节点组。

步骤S15,根据帖子节点组中节点的特征,生成相应类型的抽取模板;

较佳地,在步骤S12中,当样例页面中的帖子记录的组织结构类型是第一类型时,所述分组条件为:

(1)节点的标签都相同,但不是<div>;(2)节点在标签树中的深度相同(即在标签树中的同一层);(3)节点的子节点个数相同,且超过3个。

较佳地,在步骤S15中,当样例页面中的帖子记录的组织结构类型是第一类型时,对应的抽取模板包括如下信息:

(1)该抽取模板适用的论坛帖子列表页面中的帖子记录的组织结构类型为第一类型,(2)节点的标签名称,(3)节点在标签树中的深度,(4)节点的子节点个数。

较佳地,在步骤S12中,当样例页面中的帖子记录的组织结构类型是第二类型时,所述分组条件为:

(1)节点的标签都是<div>,且节点都具有非空的“class”属性值;(2)节点在标签树中的深度相同(即在树中的同一层);3)节点的有效子节点个数相同,且超过3个。

所述有效子节点是指满足这样条件的子节点:该子节点及其子树承载的文本不为空,且该子节点具有非空的“class”属性值。

较佳地,在步骤S15中,当样例页面中的帖子记录的组织结构类型是第二类型时,对应的抽取模板包括如下信息:

(1)该抽取模板适用的论坛帖子列表页面中的帖子记录的组织结构类型为第二类型,(2)节点的标签名称,即<div>;3)节点在标签树中的深度,(4)节点的有效子节点个数。

较佳地,所述步骤S2具体包括如下步骤:

步骤S21,在线为待抽取帖子元数据的论坛帖子列表页面建立标签树;

步骤S22,遍历标签树的各节点,选择满足抽取模板的节点作为帖子节点;

步骤S23,对每一个帖子节点,从其每个子节点中抽取出相应的帖子记录的各字段,即帖子的元数据。

当要处理的论坛帖子列表页面中的帖子记录的组织结构是第一类型时,直接执行上述步骤S21至23。

当要处理的的论坛帖子列表页面中的帖子记录的组织结构是第二类型时,上述步骤S22具体包括:遍历标签树的各节点,选择满足该论坛帖子列表页面的抽取模板的节点作为候选帖子节点;判断各候选帖子节点是否具有非空的“class”属性值,如果是,则该候选帖子节点作为帖子节点,否则不作为帖子节点。

由于上述两种情况,因此较佳地,步骤S21还包括:判断论坛帖子列表页面中的帖子记录的组织结构类型;当判断结果为第一类型时,则继续执行步骤S22;当判断结果是第二类型时,上述步骤S22具体包括:遍历标签树的各节点,选择满足该论坛帖子列表页面的抽取模板的节点作为候选帖子节点;判断各候选帖子节点是否具有非空的“class”属性值,如果是,则该候选帖子节点作为帖子节点,否则不作为帖子节点。

当所述判断结果是第二类型时,在步骤S23中,所述子节点是指帖子节点的有效子节点。

重复执行上述步骤S21至S23,可以循环在线处理大量的论坛帖子列表页面。

通常情况下,一个网络论坛中的论坛帖子列表页面的组织结构往往很相似,可以归为同一组,同一组内的论坛帖子列表页面共用同一个抽取模板,且同一组内的论坛帖子列表页面必然为同一类型,如第一类型,或第二类型。较少情况下,一个网络论坛中的论坛帖子列表页面无法归为一组,即无法共用同一个抽取模板(例如共用同一个抽取模板时,无法从有的论坛帖子列表页面中抽取出需要的帖子元数据),通常可分为n组,同样,同一组内的论坛帖子列表页面共用同一个抽取模板,且同组内的论坛帖子列表页面必然为同一类型,如第一类型,或第二类型,通常n小于10。

通过上面对本发明具体实施方式的描述,可见本发明产生的有益技术效果是:

本发明的从论坛帖子列表页面中抽取帖子元数据的方法充分利用了论坛帖子列表页面的组织结构特征,能够准确地定位到帖子记录,从而使抽取帖子记录的平均准确率可高达98%,从帖子记录中识别帖子元数据的平均准确率可高达100%。因此,本发明在抽取精度方面满足了处理大量的大规模论坛数据的实际需求。

本发明的从论坛帖子列表页面中抽取帖子元数据的方法,采用离线生成抽取模板、利用模板进行在线抽取操作的方法。本发明在离线生成抽取模板时的平均速度可高达7页/秒,在在线抽取元数据时的平均速度可高达8页/秒。从而在抽取速度方面满足了处理大量的大规模论坛数据的实际需求。

本发明的从论坛帖子列表页面中抽取帖子元数据的方法充分利用了网络论坛的组织结构特征,使得在维护代价方面满足了处理大量的大规模论坛数据的实际需求。原因如下:通常情况下,一个网络论坛中的论坛帖子列表页面的组织结构往往很相似,可以归为同一组,同一组内的论坛帖子列表页面可以共用同一个抽取模板;且同一组内的论坛页面必然为同一类型(后面将详细描述),如第一类型,或第二类型。较少情况下,一个网络论坛中的论坛帖子列表页面无法归为一组,即无法共用同一个抽取模板,通常可分为n组,仍然是同一组内的论坛帖子列表页面共用同一个抽取模板,且同一组内的论坛帖子列表页面必然为同一类型,如第一类型,或第二类型,通常n小于10。在本发明的抽取帖子元数据方法中,为组织结构相似的一组论坛帖子列表页面生成一个抽取模板只需要选择一个样例页面。因此,在离线生成抽取模板时,对一个论坛网站,往往只需要用户提供一个样例页面,或者在论坛中的各论坛帖子列表页面的组织结构不相似的情况下提供n个样例页面(通常n小于10)。这使得本发明在生成抽取模板和维护抽取模板的方面代价很小。

以上所述内容,仅为本发明具体的实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号