网页正文提取的方法及装置的制造方法

文档序号:9929631阅读:483来源:国知局
网页正文提取的方法及装置的制造方法
【技术领域】
[0001]本发明涉及爬词技术领域,具体的涉及一种网页正文提取的方法及装置。
【背景技术】
[0002]随着互联网技术的飞速发展,网页已成为人们获取信息的重要来源。但不同于传统文本,网页中除包含有效信息(正文)外还包含大量无效信息(噪声),例如网站的导航链接、广告内容与链接、版权信息等,这使得获取有效信息的效率大幅降低。为有效利用网页的信息,需提供一种快速准确的正文自动提取方法对无效信息进行过滤,提取出用户真正需要的正文内容,这也是影响舆情监测与分析、基于互联网大数据挖掘等领域分析结果的关键因素。
[0003]现有的网页正文提取方式主要有基于DOM树的方法和基于模板规则的方法。基于DOM树的方法将网页HTML文件解析为DOM树,依据正文信息在DOM树中的分布规律确定正文的位置,但这种方法由于要解析遍历所有DOM树使得正文提取速度较慢,且网页结构差异性大复杂度不同,特定的分布规律只能针对部分网页有效,泛化能力一般。基于模板规则的方法一般通过人工为特定的网站配置提取模板规则,从而可以快速的在指定的区域内将文本提取出来,但网站的不定时更新常导致模板失效而无法有效提取信息,并且规则比较固定导致提取的正文常含有不同程度的杂质(主要为不规范的脚本),这种方法要维持较高的提取准确度,需大量的人工投入以及优质的模板规则选择,这在网络信息爆炸的时代是极大的挑战。
[0004]现有基于DOM树结构的网页正文的提取方法存在以下缺点:1)D0M树的构建和遍历效率低、速度慢;2)对于不规范的网页,可能有构建DOM树失败的风险;3)该方法的正文分布规律不具有一般性,只对部分网页具有较好的提取准确率。
[0005]现有基于模板规则提取正文的方法存在以下缺点:I)人工维护模板规则工作量大;2)模板规则更新的及时性无法保障;3)模板规则的质量难以保证。

【发明内容】

[0006]本发明的目的在于提供一种能解决上述技术问题的网页正文提取的方法及装置。
[0007]本发明的一方面一种网页正文提取方法,包括以下步骤:
[0008]步骤SlOO:对网页HTML文本进行切片和过滤处理,得到文本切片列表sliceList,对文本切片列表sliceList中的不规范标签进行修复,得到修复切片列表rSliceList,对修复切片列表rSliceList中待清理标签进行清理,得到清理切片列表cSliceList;
[0009]步骤S200:计算清理切片列表cSliceList中每个文本切片slice的特征值,对具有特征值的清理切片列表cSliceList进行基于切片特征值的多次文本聚合,每次文本聚合后,从重新算每个文本切片si ice的特征值,得到聚合切片列表aggregateList;
[0010]步骤S300:遍历聚合切片列表aggregateList,过滤其中的标签切片,对文本切片进行规制校验,如果满足规则条件则过滤,如果不满足就加入候选列表中,对候选列表按照文本有效字符长度从高到低进行排序,取候选列表中排序第一的文本作为正文输出。
[0011]进一步地,步骤SlOO包括以下步骤:
[0012]步骤S110:根据网页类型设置需要过滤的标签集合,逐字符读取HTML文本,当其字符为html文本分隔符“〈”时,将“〈”之前的文本构造为一个文本切片并设置其标签类型为空插入文本切片列表sliceList中,记“〈”位置为标签起始位置并继续查找html文本分隔符“〉”,记“〉”位置为标签结束位置,提取签起始位置与标签结束位置之间文本的标签类型,比对标签类型是否属于过滤标签集合,如果属于则查找标签类型对应的结束标签并将签类型的标签起始位置与其对应的结束标签的结束位置之间的文本过滤清除,如果不属于则将签起始位置与标签结束位置之间的文本及标签类型构造为一个文本切片,若标签类型的第一个字符不是则将该切片记为开始标签切片BTag,否则将该切片记为结束标签切片ETag,插入文本切片列表sliceList中,遍历html文本后输出文本切片列表sliceList;
[0013]步骤S120:初始化堆桟stack,遍历文本切片列表sliceList,若当前文本切片si ice为BTag则将当前文本切片si ice及其索引推入stack,若当前文本切片si ice为ETag,则查找stack中是否有与当前文本切片si ice的标签类型对应的BTag切片,若有则对stack进行出栈操作,一直到出栈的元素的标签类型与当前ETag切片的标签类型相同为止,对于标签类型不相同的出栈的文本切片slice将其对应的索引加入待修复列表,遍历完毕得到待修复列表,对文本切片列表sliceList对应位置的文本切片slice进行删除或补全操作,输出修复切片列表rSliceList;
[0014]步骤S130:根据网页类型初始化清理标签集合及清理器,遍历修复切片列表rSliceList,若当前文本切片si ice为BTag且其标签类型属于清理标签集合,则使用该标签对应的清理器进行清理,清理器查找与当前BTag切片标签类型对应的ETag切片,并将当前BTag切片索引位置与对应ETag切片索引位置之间的所有BTag和ETag类型切片删除,将其之间的所有标签类型为空的切片的文本进行合并构造新的文本切片加入清理切片列表cSliceList中,并返回对应ETag切片索引位置的下一位置作为下一轮迭代的开始位置;若前文本切片slice不为BTag切片则将该文本切片加入清理切片列表cSliceList中,遍历完毕输出清理切片列表cSliceList。
[0015]进一步地,特征值为:每个切片文本切片slice直接包含文本切片的数量、标签类型、是否为空标签、每个切片文本切片slice直接包含的标签数量、每个切片文本切片slice直接包含的a标签数量、标签路径和包含的分割符数量。
[0016]进一步地,步骤S200中多次文本聚合包括依序进行的格式类标签文本聚合、转义字符聚合、空标签过滤聚合、P标签聚合、div标签聚合和文本切片数量聚合。
[0017]进一步地,规则包括通用规则与定制规则,通用规则为用于过滤网页中常见的噪声文本,定制规则为用于过滤不同类型网页特定的噪声。
[0018]本发明的另一方面还提供了一种如上述的方法用的网页正文提取装置,包括:
[0019]文本预处理模块,用于对网页HTML文本进行切片和过滤处理,得到文本切片列表sliceList,对文本切片列表si iceList中的不规范标签进行修复,得到修复切片列表rSliceList,对修复切片列表rSliceList中待清理标签进行清理,得到清理切片列表cSliceList;
[°02°]聚合模块,用于计算清理切片列表cSliceList中每个文本切片slice的特征值,对具有特征值的清理切片列表cSliceList进行基于切片特征值的多次文本聚合,每次文本聚合后,重新算每个文本切片si ice的特征值,得到聚合切片列表aggregateList;
[0021]过滤提取模块,用于遍历聚合切片列表aggregateList,过滤其中的标签切片,对文本切片进行规制校验,如果满足规则条件则过滤,如果不满足就加入候选列表中,对候选列表按照文本有效字符长度从高到低进行排序,取候选列表中排序第一的文本作为正文输出。
[0022]进一步地,文本预处理模块包括:
[0023]文本切片过滤模块,用于根据网页类型设置需要过滤的标签集合,逐字符读取HTML文本,当其字符为html文本分隔符“〈”时,将“〈”之前的文本构造为一个文本切片并设置其标签类型为空插入文本切片列表sliceList中,记“〈”位置为标签起始位置并继续查找html文本分隔符“〉”,记“〉”位置为标签结束位置,提取签起始位置与标签结束位置之间文本的标签类型,比对标签类型是否属于过滤标签集合,如果属于则查找标签类型对应的结束标签并将签类型的标签起始位置与其对应的结束标签的结束位置之间的文本过滤清除,如果不属于则将签起始位置与标签结束位置之间的文本及标签类型构造为一个文本切片,若标签类型的第一个字符不是则将该切片记为开始标签切片BTag,否则将该切片记为结束标签切片ETag,插入文本切片列表sliceList中,遍历html文本后输出文本切片列表sliceList;;
[0024]标签修复模块,用于初始化堆桟stack,遍历文本切片列表sliceList,若当前文本切片si ice为BTag则将当前文本切片si ice及其索引推入stack,若当前文本切片s I ice为ETag,则查找stack中是否有与当前文本切片si ice的标签类型对应的BTag切片,若有则对stack进行出栈操作,一直到出栈的元素的标签类型与当前ETag切片的标签类型相同为止,对于标签类型不相同的出栈的文本切片slice将其对应的索引加入待修复列表,遍历完毕得到待修复列表,对文本切片列表sliceList对应位置的文本切片si ice进行删除或补全操作,输出修复切片列表rSliceList;
[0025]标签清理模块,用于根据网页类型初始化清理标签集合及清理器,遍历修复切片列表rSliceList,若当前文本切片si ice为BTag且其标签类型属于清理标签集合,则使用该标签对应的清理器进行清理,清理器查找与当前BTag切片标签类型对应的ETag切片,并将当前BTag切片索引位置与对应ETag切片索引位置之间的所有BTag和ETag类型切片删除,将其之间的所有标签类型为空的切片的文本进行合并构造新的文本切片加入清理切片列表cSliceList中,并返回对应ETag切片索引位置的下一位置作为下一轮迭代的开始位置;
[0026]若前文本切片slice不为BTag切片则将该文本切片加入清理切片列表cSliceList中,遍历完毕输出清理切片列表cSliceList。
[0027]本发明的技术效果:
[0028]本发明提供的网页正文提取方法无需人工干预设置相应的提取规则,即可实现网页正文的快速自动提取,该提取方法可以适应不断更新的网站规则,很好的保留正文的格式信息,具有很高的准确度和正文完整度。
[0029]本发明提供的网页正文提取装置无需人工干预设置相应的提取规则,即可实现网页
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1