本发明是关于互联网数据收集技术领域,特别涉及一种智能化的新闻网页信息抽取方法。
背景技术:
当前的新闻网页信息抽取技术,主要是基于模板的抽取方式、基于网站文本分布特征的抽取技术和基于网页标签结构的信息抽取,而这三个技术都存在明显缺陷。
随着互联网的发展,现在网页的结构更替周期非常的短,有的时候可能几个星期就会更换,所以基于模板的抽取方式在使用的过程中会需要大量的模板更新和制作导致大量的投入,而且很难保证时效性。
基于文本分布特征而进行的信息抽取的方法对于长文本的新闻有很高的精确度,但是也同样存在着他的一大弊端。因为其是基于文本密度进行的识别,第一个要求就是文本密度要足够高,对于一些短的简要新闻就很难识别准确。特别是现在的网页附带过多的推荐信息,所以这种误识别的可能性会更高。
基于网页标签结构的信息抽取在非常初期的网页结构相对简单的时候是非常有用的一个方式。但是随着web前端开发技术的不断演化,网页标签已经没有了原来那么有代表性,自然的这样的方法也就很难在现在乱用标签结构的网页中使用。
技术实现要素:
本发明的主要目的在于克服现有技术中的不足,提供一种智能化的新闻网页抽取技术。为解决上述技术问题,本发明的解决方案是:
提供一种智能化的新闻网页信息抽取方法,具体包括下述步骤:
步骤(1):自动生成初始抽取模板;
步骤(2):在使用的过程中自学习地进行模板更新;
所述步骤(1)具体包括下述子步骤:
步骤A:首先获取需要进行网页信息抽取的网站的至少50个近期(两周以内)新闻网页链接,作为样本;
步骤B:对步骤A获取的新闻网页,(根据标准的html标签集合)抽取页面标签框架;
所述页面标签框架是指由html标签构成的一个树型标签层次框架;
步骤C:对步骤B中抽取的所有网页的标签框架,进行标签框架结构比对,识别出共有网页标签框架;
所述共有网页标签框架是指所有网页标签框架中均包含的标签框架;
步骤D:对步骤A中获取的新闻网页,使用基于文本密度的通用抽取算法,抽取正文信息;
步骤E:对步骤A中获取的新闻网页,根据步骤C和步骤D的处理结果,识别出同一个网页在步骤D中的得到的正文信息,其在步骤C获取的共有网页标签框架中的标签位置;
所述标签位置是指包含该正文信息的最内层标签;
步骤F:根据步骤E获取的所有标签位置和步骤C的处理结果,识别出标签位置在共有网页标签框架中的网页标签路径;
所述网页标签路径是指html标签框架树中的一个分支路径;
步骤G:对步骤F的处理结果进行统计,统计出各标签路径的出现次数;这里的出现是指一个路径自己出现或是被另外一个路径包含;
然后根据统计出来的各标签路径的出现次数进行排序,获取出现次数最多的路径,并从出现次数最多的路径中选取路径深度最深的路径作为模板路径,并生成抽取模板;
所述路径深度是指路径的层次数,层次数越多深度越深;所述抽取模板是指由标签路径保存成的信息,并以标签树的形式保存为模板,用于新闻网页的正文内容抽取;
所述步骤(2)具体包括下述子步骤:
步骤H:周期性(每月至少两次)地从历史链接库中抽取至少200个的新闻链接(一般取上一次模板生成后一个月内的新闻链接),再次使用步骤G中生成的抽取模板进行新闻正文抽取;
所述历史链接库中保存有已经被成功抽取出正文的新闻链接;
步骤I:将步骤H得到的抽取结果,与历史的抽取结果进行对比,用于识别抽取模板是否依然有效:
若新的抽取结果与历史抽取结果不符,则说明该抽取模板已经失效,执行步骤J;若新的抽取结果与历史抽取结果相同,则认为该抽取模板仍然有效,则跳到步骤K执行;
步骤J:重复执行步骤(1),获取近期(两周以内)的新闻页面,重新生成新的抽取模板;
步骤K:到达设定的周期时间时,重新执行步骤H,即进行周期性的模板有效性判断及更新。
在本发明中,所述步骤B和步骤C,具体包括下述步骤:
步骤a:自动识别网页标签;
步骤b:自动去除页面中无效标签;所述无效标签是指不影响本身页面结构的标签(包括js脚本标签、html注释标签、样式文件引入标签、不包含任何文本内容的标签);
步骤c:构建框架标签树,即页面标签框架;
步骤d:根据各页面的框架标签树,通过相互进行比对,获取框架标签树的共有树;所述共有树是指所有框架标签树的重合部分,也就是在在所有标签树中都存在的部分;
步骤e:步骤d识别的共有树,即共有网页标签框架。
在本发明中,所述步骤D中基于文本密度的通用抽取算法,具体包括下述步骤:
步骤f:根据无效标签,去除页面中的无效信息;
所述无效标签是指不影响本身页面结构的标签(包括js脚本标签、html注释标签、样式文件引入标签、不包含任何文本内容的标签);
步骤g:将步骤f处理后的页面结果,使用特定的分隔符(这里采用换行符)替换页面中剩余的标签符号,得到的页面结果为由分隔符分开的文本块;
所述文本块是指两个分隔符间存在的文本内容;
步骤h:根据步骤g的结果,计算出各文本块之间的距离,即文本块的密度;
所述文本块的距离是指两个文本块中间分隔符的个数,分隔符个数越多表示距离越远,即密度越小;
然后根据文本块的距离,顺序的遍历整个页面的文本块:从第一个文本块开始,如果第二个文本块和第一个文本块之间的距离小于合并最大距离,我们就将第一个和第二个文本块合并成一个文本块;再遍历第三个文本块,如果第三个文本块和第二个文本块(这里的第二个文本块是指原始的第二个文本块,而非合并之后的文本块)的距离也小于合并最大距离,则继续将第三个文本块合并进前面第一和第二个文本块合并后的文本块;依次类推,直到出现第N个文本块,如果第N个文本块和第N-1个文本块的距离大于合并最小距离,则前面N-1个文本块的合并结果作为第一个文本块;而从第N个文本块开始重复前面的操作依次合并产生新的文本块,直到整个页面文本块遍历结束,完成对原来的小文本块的合并;
所述合并最大距离是指设定好的阀值,当两个文本块之间的距离小于该阀值则进行合并(这里定义的合并最大距离为4);
步骤i:根据步骤h合并出来的文本块结果,获取其中最大的文本块,即文本长度最长的文本块(即我们认为文本块密度比较高的文本块,就是集合成这个大文本块所涉及到的原始文本块密度比较高);
步骤j:步骤i获取的最大的文本块,即作为本页面抽取的正文信息。
本发明的工作原理:主要通过智能分析生成初始抽取模板,然后在使用的过程中通过自学习的方式自动的调整模板结构保证在网页结构发生改变的同时能够实时的调整。而且因为在过程中是以模板的形式进行最终的提取,所以也解决了短文本抽取不准确的难点。
与现有技术相比,本发明的有益效果是:
本发明充分利用了网页结构特点,及借助基本抽取数据进行自动化的模板生成,解决了传统模板化抽取方法中要手工制作模板成本高的问题,而且在最后会生成模板也同样解决了通用抽取方法对短文本抽取准确度低的问题。
本发明基于自学习的方法在使用模板的过程中进行自动的模板更新,通过这样一方面解决了模板抽取方法中因为不能及时更新模板而导致的延后和大量更新模板工作量大的问题。而且自学习和的方法也可以减少模板过渡时间内出现大量抽取垃圾数据的问题。
附图说明
图1为自动生成新闻内容抽取模板工作流程图。
图2为模板失效自动识别和更新流程图。
具体实施方式
首先需要说明的是,本发明涉及网页信息处理技术,是计算机技术在互联网技术领域的一种应用。在本发明的实现过程中,会涉及到多个软件功能模块的应用。申请人认为,如在仔细阅读申请文件、准确理解本发明的实现原理和发明目的以后,在结合现有公知技术的情况下,本领域技术人员完全可以运用其掌握的软件编程技能实现本发明,凡本发明申请文件提及的均属此范畴,申请人不再一一列举。
下面结合附图与具体实施方式对本发明作进一步详细描述:
首先自动生成初始抽取模板;,如图1中所描述流程如下:
步骤A:首先获取需要进行网页信息抽取的网站的50个以上两周以内的新闻网页链接,作为样本;
步骤B:对步骤A获取的新闻网页,(根据标准的html标签集合)抽取页面标签框架;
所述页面标签框架是指由html标签构成的一个树型标签层次框架;
步骤C:对步骤B中抽取的所有网页的标签框架,进行标签框架结构比对,识别出共有网页标签框架;
所述共有网页标签框架是指所有网页标签框架中均包含的标签框架;
步骤B和步骤C主要包括以下步骤:
步骤a:自动识别网页标签;
步骤b:自动去除页面中无效标签;所述无效标签是指不影响本身页面结构的标签(包括js脚本标签、html注释标签、样式文件引入标签、不包含任何文本内容的标签);
步骤c:构建框架标签树,即页面标签框架;
步骤d:根据所有页面的框架标签树,通过相互进行比对,获取框架标签树的共有树;所述共有树是指所有框架标签树的重合部分,也就是在所有标签树中都存在部分;
步骤e:步骤d识别的共有树,即共有网页标签框架。
步骤D:对步骤A中获取的新闻网页,使用基于文本密度通用抽取方式,即通过文本在网页中文本的集中度来进行网页文本抽取的方法,抽取正文信息。其主要包括以下步骤:
步骤f:根据无效标签,去除页面中的无效信息;
所述无效标签是指不影响本身页面结构的标签(包括js脚本标签、html注释标签、样式文件引入标签、不包含任何文本内容的标签);
步骤g:将步骤f处理后的页面结果,使用特定的分隔符(这里采用换行符)替换页面中剩余的标签符号,得到的页面结果为由分隔符分开的文本块;
所述文本块是指两个分隔符间存在的文本内容;
步骤h:根据步骤g的结果,计算出各文本块之间的距离,即文本块的密度;
所述文本块的距离是指两个文本块中间分隔符的个数,分隔符个数越多表示距离越远,即密度越小;
然后根据文本块的距离,顺序的遍历整个页面的文本块:从第一个文本块开始,如果第二个文本块和第一个文本块之间的距离小于合并最大距离,我们就将第一个和第二个文本块合并成一个文本块;再遍历第三个文本块,如果第三个文本块和第二个文本块的距离也小于合并最大距离,则继续将第三个文本块合并进前面第一和第二个文本块合并后的文本块;依次类推,直到出现第N个文本块,如果第N个文本块和第N-1个文本块的距离大于合并最小距离,则前面N-1个文本块的合并结果作为第一个文本块;而从第N个文本块开始重复前面的操作依次合并产生新的文本块,直到整个页面文本块遍历结束,完成对原来的小文本块的合并;
所述合并最大距离是指设定好的阀值,当两个文本块之间的距离小于该阀值则进行合并(这里定义的合并最大距离为4);
步骤i:根据步骤h合并出来的文本块结果,获取其中最大的文本块,即文本长度最长的文本块,即我们认为文本块密度比较高的文本块;
步骤j:步骤i获取的最大的文本块,即作为本页面抽取的正文信息。
步骤E:对步骤A中获取的新闻网页,根据步骤C和步骤D的处理结果,识别出同一个网页在步骤D中的得到的正文信息,其在步骤C获取的共有网页标签框架中的标签位置;
所述标签位置是指包含该正文信息的最内层标签;
步骤F:根据步骤E获取的所有标签位置和步骤C的处理结果,识别出标签位置在共有网页标签框架中的网页标签路径;
所述网页标签路径是指html标签框架树中的一个分支路径;
步骤G:对步骤F的处理结果进行统计,统计出各标签路径的出现次数;这里的出现是指一个路径自己出现或是被另外一个路径包含;
然后根据统计出来的各标签路径的出现次数进行排序,获取出现次数最多的路径,并从出现次数最多的路径中选取路径深度最深的路径作为模板路径,并生成抽取模板;
所述路径深度是指路径的层次数,层次数越多深度越深;所述抽取模板是指由标签路径保存成的信息,并以标签树的形式保存为模板,用于新闻网页的正文内容抽取;
其次,实现模板状态的自动更新,如图2中所描述流程如下:
步骤H:周期性(每月至少两次)地从历史链接库中抽取至少200个的新闻链接(一般取上一次模板生成后一个月内的新闻链接),再次使用步骤G中生成的抽取模板进行新闻正文抽取;
所述历史链接库中保存有已经被成功抽取出正文的新闻链接;
步骤I:将步骤H得到的抽取结果,与历史的抽取结果进行对比,用于识别抽取模板是否依然有效:
若新的抽取结果与历史抽取结果不符,则说明该抽取模板已经失效,执行步骤J;若新的抽取结果与历史抽取结果相同,则认为该抽取模板仍然有效,则跳到步骤K执行;
步骤J:重复执行步骤(1),获取两周以内的新闻页面,重新生成新的抽取模板;
步骤K:到达设定的周期时间时,重新执行步骤H,即进行周期性的模板有效性判断及更新。
最后,需要注意的是,以上列举的仅是本发明的具体实施例。显然,本发明不限于以上实施例,还可以有很多变形。本领域的普通技术人员能从本发明公开的内容中直接导出或联想到的所有变形,均应认为是本发明的保护范围。