专利名称:一种Web论坛信息抽取系统的制作方法
技术领域:
本发明涉及Web信息处理技术领域,尤其是涉及一种Web论坛信息抽取系统。
背景技术:
随着互联网技术的不断发展,互联网上的信息呈现出爆炸式的增长。而其中Web 论坛发展得尤为迅猛,据中国Web信息中心2008年底的统计,Web论坛的使用人数达到了 9100万,占网民总数的30%以上。每天都有成千上万的人在不同的Web论坛发布信息、探 讨问题、交流观点,日积月累使Web论坛成为一个巨大的信息资源库,如何有效的从Web论 坛中抽取出有用的信息具有重要的意义。 Web论坛信息抽取属于Web信息抽取中针对网页中某种属性的抽取,比根据从新 闻报道中抽取标题、正文内容、作者、发表时间等。目前Web信息抽取的方法主要有三种
(1)、手工方法通过观察网页代码发现一定的模式,再根据此模式编写程序实现 目标数据的抽取。当需要处理的站点数量较大时,此种方法需要耗费大量的人力劳动,代价 较高。 (2)、构造分装器(Wr即per):分装器是一种软件构件,主要通过两种方式来生成,
一是通过领域专家来制定抽取规则,二是采用机器学习算法通过学习标注过的样本来自动
生成Wrapper 。这实际上是一种半自动的抽取方法,仍然需要手工标注样本, (3)、自动抽取无监督的方法,该种方法能从网页中自动寻找模式或语法以进行
数据的抽取。因为此种方法不需要手工标注样本,所以适用于处理大量站点和网页的信息
抽取工作,但是其准确率相对较低。 由于互联网上论坛数量巨大,而且各个论坛风格各异,现有方法用于Web论坛信 息抽取时或多或少存在一些问题方法1,2需要大量的人工参与,无法满足实际应用的需 求;方法3能实现自动抽取但准确率又比较低。因此,我们迫切需求一种适用与Web论坛信 息抽取的全自动、准确率高的方法。
发明内容
有鉴于此,本发明的目的在于提供一种Web论坛信息抽取系统,该系统能对互联 网上多种论坛的指定信息进行自动抽取,且有很高的准确率。
为达到上述目的,本发明的系统包括以下模块 网页采集模块,用于根据用户指定的论坛站点和相应的版块自动下载论坛网页; 网页解析模块,用于对网页内容进行清洗,形成网页的文档对象模型(D0M)以便信息抽取 算法的实施;在线抽取模块,用于根据论坛网页的布局结构特点对网页中的指定信息进行 抽取;数据库存储模块,用于将所抽取的内容存储在数据库系统中以便进行其它的应用。
进一步,所述网页采集模块包括以下单元 网页获取单元,该单元向HTTP服务器发送请求,读取返回的内容;链接获取单元, 该单元从下载到的网页中分析提取出待下载的网页的URL;下载队列管理单元,该单元根据一定的策略从下载URL队列中取出下一个要下载的URL。 进一步,所述网页解析模块还用于所述网页采集模块中的链接获取单元,链接分析提取是基于网页的DOM树进行的。 进一步,所述在线抽取模块包括以下单元网页主题信息块发现单元,该单元从网页中确定包含待抽取信息的块状区域,对网页噪声进行初步过滤;信息抽取单元,该单元对主题信息块中的网页噪声进行进一步的过滤,再从中抽取出指定的信息。
进一步,所述数据库存储模块包括以下单元信息识别单元,该单元用于确定抽取出的信息是否已存在于数据库中,进一步确定是否要进行插入记录操作或是更新记录操作或是空操作;信息保存单元,该单元将抽取出的信息插入或更新至数据库。
本发明的有益效果是 本发明的有益效果在于,由于抓住了论坛网页在布局结构上的共有特点,使得本发明可以适用于互联网上绝大多数的论坛,通用性比较强。同时通过逐步縮小待抽取信息的范围以及利用了待抽取信息的统计规律和自身特点,使信息抽取的准确率很高;另外,本发明不需要人工标注样本,极大的减少了成本。本发明的其他优点、目标和特征在某种程度上将在随后的说明书中进行阐述,并且在某种程度上,基于对下文的考察研究对本领域技术人员而言将是显而易见的,或者可以从本发明的实践中得到教导。本发明的目标和其他优点可以通过下面的说明书以及附图中所特别指出的结构来实现和获得。
附图为本发明的结构示意图。 图1是本发明Web论坛信息抽取系统的结构图; 图2是本发明Web论坛信息抽取系统操作方法的流程具体实施例方式
下面结合附图和实施例对本发明作进一步描述。
如图1所示,本发明的系统结构包括如下模块 Web论坛网页采集模块IOI,用于根据用户指定的论坛站点和相应的版块来自动下载论坛网页,该采集模块需利用抽取模块中抽取出的内容;网页解析模块102,用于对网页内容进行清洗,使其满足HTML规范并解析网页,形成网页的文档对象模型(DOM);在线抽取模块103,用于根据论坛网页的结构特点和待抽取信息的特征和统计规律对网页中的指定信息进行抽取;数据库存储模块104,用于将所抽取的内容存储在数据库系统中以便进行有效的管理和其它的应用。 以抽取人民网强国论坛的国际版为具体的实施例,本发明各模块的实现方式如下所述。 以强国论坛国际版块的URL为起始链接,其URL地址为"http:〃bbsl. people,com. cn/boardList. do 7 action = pos让ist&boardld = 6,,,由网页获取单元下载该网页,由网页解析模块解析该网页,使其符合HTML标准并生成该网页的DOM树结构,并交由在线抽取模块进行处理。在线抽取模块确定该主题索引页面中的主题信息块所在,并从中抽取出主题标题及其链接,查看回复数、更新时间等,其中抽取出的标题的链接交由采集模块的
4链接获取单元并添加至下载队列中,下载队列管理单元按照广度优先的原则确定下一个待
下载的链接。同时该主题索引页面的下一页链接有如下形式"http:〃bbs1. people, com.
cn/boardLlst. do action = postList&boardld = 6&pageNo = 2,,,只需依次增力口相应的
参数pageNo值即可实现多页的下载。同样的方式也可完成内容页面的下载。以此方式即
可完成某一主题所有相关信息的获取,抽取出的信息再交由数据库存储模块。由信息识别
单元确定某一帖子是否为新帖,这一点可有帖子标题和URL的双Hash值来判断,若为新帖,
则由数据库存储模块的信息保存单元执行数据库记录插入操作;若为旧帖,但是有新的回
帖或查看数发生改变,则由保存单元执行数据库记录更新操作;否则不执行任何操作。 需要注意的是,网页采集模块、网页解析模块和在线抽取模块是互相配合执行的,
由于获取到的链接均是包含待抽取信息的页面的链接,所以网页采集的精度很高,几乎没
有无用的网页,这也保证了在线抽取模块中信息抽取的准确率。 以下结合图2所示,介绍本发明Web论坛信息抽取系统的操作方法 步骤S201 ,裁剪DOM树,设定阈值。对由网页解析模块得到的网页的DOM树进行进
一步的裁剪,具体如下 (1)如果节点不含有任何子节点或所含文本子节点为空,则删除该节点;
(2)如果节点为HTML的注释部分,则删除该节点;
(3)如果节点为脚本节点,则删除该节点。 同时,设定布局相似度阈值SOL为0. 9,计算相似度时所达到的节点的深度或层数N,一般取3,以及各层对整体布局的贡献系数,本实例取0. 6,0. 3,0. 1。上述阈值可根据实际情况进行调整,一般可有实验数据得到一组效果最好的。 步骤S202,获取下一个要处理的节点,一般从〈B0DY〉节点开始,之后按照其子节点的顺序依次获取。 步骤S203,判断S202中得到的节点是否为空,若为空则说明节点已处理完毕,执行步骤S209 ;否则执行步骤S204。 步骤S204,获取该节点的所有孩子节点,保留其中的块状子节点,如〈DIV〉、〈TABLE〉、 〈F0RM〉、 〈UL〉等节点,因为这些节点才会影响到布局。 步骤S205,通过计算比较得到相似节点的个数。计算两个节点之间的布局相似度具体可以按照如下公式进行 <formula>formula see original document page 5</formula> 其中,SoL(x,y)即表示两个节点x、y之间的布局相似度(Similarity ofLayout)。N表示比较的深度,即只比较到第N层节点;Mi表示第i层子节点的个数;A为第i层子节
点对整体结构布局的贡献系数,"i应该满足Sij.lj","表示进行比较的两个节点的第i
层第j个节点是否为同种类型的块状节点,其值取0或1。首先判断两个节点是否为使用了同样的HTML标签,比如是否同为〈TR〉或〈TD〉标签,若不同,则为0 ;若相同,则继续比较两节点属性是否相同,如width, style, align等能反映节点布局结构的属性,若这些属性值也相同,则Sij为1。 若计算所得SoL值大于阈值0. 9则认为两节点在布局上相似。同样的方法计算所有子节点之间相似度,得到相似节点的个数。 步骤S206,查看相似节点的个数是否满足预设值。 一般情况下,主题信息块的数量 通常都比较多,选取合适的阈值可使结果更准确。 步骤S207,如果满足阈值,则认为该节点为可能的结果,将其保存以待进一步的处理。 步骤S208,如果未满足阈值,则需要在其子节点中继续寻找相似的节点,即把该节 点的所有子节点均添加到待处理队列中。转至步骤S202继续执行。 步骤S209,从得到的可能的结果中确定主题信息块。可根据不同的网页类型使用 不同的方法,若是论坛网页的主题索引页面,则可根据所含相似子节点个数最多的节点为 包含主题信息块的节点,各相似子节点即为主题信息块,这是因为,主题索引页面通常会列 出数十个最新的主题,或者根据节点中所含链接的锚文本长度最长,因为主题索引页面中 通常都会提供主题的标题链接用来指向内容页面,而标题通常含有较多的文字,上述两种 方法也可结合使用。在内容页面中应使用不同的方法,因为有的帖子回帖很少,这就导致主 题信息块的数量很少,但是内容页面的主题信息块中通常含有数量较多的文本内容,因此 可以以此为特征来确定内容页面中的主题信息块。 步骤S210,从主题信息块中抽取指定信息。 一般从论坛网页中抽取的信息无非就 是帖子的标题、作者、内容、发表时间、查看和回复的数量等等,这些信息本身各具特点,但 有时也会产生影响,如帖子的查看和回复数为数字而帖子的内容中也可能出现数字等。但 是在主题信息块内,这些信息的位置是相对固定的,由于主题信息块是相似的,所以所有主 题信息块中某个位置上的信息应该都是相同类型的,会表现出一定的统计规律性。因此,可 以将主题块表示成具有明显语义信息的节点的集合,比如文本节点、超链接、图片等,信息 其它节点不予考虑。其中第i个主题信息块Bi表示为如下形式& = {ni, n2, n3. . . nk} , 代表各语义节点。采用深度优先的方式遍历主题信息块中的所有节点,按照下面的步骤得 到Bi : 获取下一个要处理的节点。若为空,结束。否则转至(2)。
若当前节点的子节点只含有文本节点或链接节点,将其添加到Bi中,转至(1)。
由上述方法将所有主题信息块表示成语义节点的集合。先对Bi中的节点进一步 过滤,若所有的Bi中节点ni都相同,则认为rii是噪声节点,再应用以下规则从Bi中抽取包 含指定信息的节点 Rl :对所有Bi中对应文本节点求出其长度的平均值,最大者为正文。 R2 :对所有Bi中对应链接节点求出其锚文本长度的平均值,最大者为标题。 R3 :所有Bi中对应某节点其文本中均含有数字则为查看回复数。 R4 :所有Bi中对应某节点其文本中均含有一定格式的时间字符串则为时间。 R5 :若所有Bi中对应某节点其文本中均出现"作者"、"Name"等字样则为作者,否
则Bi中链接节点中位置靠前且锚文本长度较短的为作者节点。 步骤S211,完成信息抽取的工作。 最后说明的是,以上实施例仅用以说明本发明的技术方案而非限制,本领域普通 技术人员对本发明的技术方案所做的其他修改或者等同替换,只要不脱离本发明技术方案 的精神和范围,均应涵盖在本发明的权利要求范围当中。
权利要求
一种Web论坛信息抽取系统,其特征在于,该系统包括如下模块网页采集模块,用于根据用户指定的论坛站点和相应的版块自动下载论坛网页;网页解析模块,用于对网页内容进行清洗,形成网页的文档对象模型以便信息抽取算法的实施;在线抽取模块,用于根据论坛网页的布局结构特点对网页中的指定信息进行抽取;数据库存储模块,用于将所抽取的内容存储在数据库系统中以便进行其它的应用。
2. 根据权利要求1所述的Web论坛信息抽取系统,其特征在于,所述网页采集模块包括 以下单元网页获取单元,该单元向HTTP服务器发送请求,读取返回的内容; 链接获取单元,该单元从下载到的网页中分析提取出待下载的网页的URL ; 下载队列管理单元,该单元根据一定的策略从下载URL队列中取出下一个要下载的URL。
3. 根据权利要求1所述的Web论坛信息抽取系统,其特征在于,所述网页解析模块进一 步用于所述网页采集模块中的链接获取单元,链接分析提取是基于网页的DOM树进行的。
4. 根据权利要求1所述的Web论坛信息抽取系统,其特征在于,所述在线抽取模块包括 以下单元网页主题信息块发现单元,该单元从网页中确定包含待抽取信息的块状区域,对网页 噪声进行初步过滤;信息抽取单元,该单元对主题信息块中的网页噪声进行进一步的过滤,再从中抽取出 指定的信息。
5. 根据权利要求1所述的Web论坛信息抽取系统,其特征在于,所述数据库存储模块包 括以下单元信息识别单元,该单元用于确定抽取出的信息是否已存在于数据库中,进一步确定是 否要进行插入记录操作或是更新记录操作或是空操作;信息保存单元,该单元将抽取出的信息插入或更新至数据库。
全文摘要
本发明公开了一种Web论坛信息抽取系统,该系统包括如下模块网页采集模块,用于根据用户指定的论坛站点和相应的版块自动下载论坛网页;网页解析模块,用于对网页内容进行清洗,形成网页的文档对象模型(DOM)以便信息抽取算法的实施;在线抽取模块,用于根据论坛网页的布局结构特点对网页中的指定信息进行抽取;数据库存储模块,用于将所抽取的内容存储在数据库系统中以便进行其它的应用;本发明的能对互联网上多种论坛的指定信息进行自动抽取,且有很高的准确率。
文档编号G06F17/30GK101727486SQ200910227300
公开日2010年6月9日 申请日期2009年12月4日 优先权日2009年12月4日
发明者李弼程, 林琛, 王允, 郭志刚, 阎红灿 申请人:中国人民解放军信息工程大学