基于web的数据抽取有几种方式它们的优缺点是什么,
基于Web开发模式的信息抽取分类:4 .产品研究/评论/创意1。自然语言处理/机器学习2010-12-27 17: 32,571人阅读评论(0)基于Web开发模式的收集和报告信息抽取
2010年12月27日,李海波
注:转载请注明作者和出处;未经许可,不得在印刷媒体上发表。这是我在信息提取方面的经验和总结。希望对互联网Web信息抽取感兴趣的朋友有所启发。如果有任何问题,请发邮件给我或添加我的msn讨论。
信息抽取是互联网自然语言处理的第一步,信息抽取的准确性将直接影响后续处理。信息抽取的目标是去除噪声,获取有价值的信息,如标题、时间、文本、链接等。
主流算法介绍
从网页中提取信息的方法有很多,比如算法:基于模板的、基于信息的、基于视觉的、基于语义挖掘的、基于统计的。HTML处理可以分为:基于线块的和基于DOM树的。下面我一一介绍。
1.基于模板,一般有URL和HTML的模板都是手工维护的。当URL与URL模板匹配时,相应的HTML模板用于提取信息。这种方法见效快,准确度高。可以用来抢几个站,还可以做一些模板设置工具,减少工作量。大量的站需要更多的人力来维护模板列表。
2.基于信息量(下面我会解释信息量),参见基于行块分布函数的文本提取,计算源代码中哪些行的文本分布较多,取文本较多的行;此外,还有一些算法可以计算线条的主体密度,即简单的主体长度/标签数量。还有一种基于信息量的方法,就是建立一棵Dom树,把row函数改成Dom树中一个节点的评价函数。对于资讯类网站来说,这种方法会起到很好的作用,但是需要考虑到的是,抽取网页信息并不意味着字数多。比如正文下面有一段版权信息或者网站描述。如何删除这些信息?另外,游戏下载网站分为结构化信息、描述信息、游戏操作说明等部分。信息是分散的,而不是集中的。这种信息怎么处理?
3.基于视觉的页面分割算法是基于块的算法的具体实现,基于块的算法是微软亚洲研究院的算法,在微软搜索引擎Bing中使用。我比较喜欢这个算法,因为我提出了两个好的思路:一个是按照视觉划分块,一个是按照视觉合并块。基于可视化的处理比较复杂,需要CSS、Javascript等引擎,使用浏览器内核库处理HTML,所以性能可能不高。另外,这个算法的结果只是告诉你一个网页可以分成多少个块,每个块的位置和大小是什么,哪个块和哪个块是需要进一步计算的文本。
4.基于语义的文本抽取,根据锚文本、页面标题等不易出错的信息找到文本块。这种算法是有效的,但还是有局限性。
5.基于统计的,基于块和统计相结合的新闻文本抽取,基于同一层网页相似度的网页去噪。前者的统计是寻找同一网页中的文本块,后者是链接同一路径中不同网页的相似性来去除噪声。这两者是有区别的。基于统计,可以减少由于单个网页的差异而导致的误差,提高准确性。
从Web开发人员的角度来看
以上方法都是基于网页的规则,可以解决一些问题。问题的根源在于网页是由网页工程师开发的。研究他们的web开发习惯和模式是信息抽取的最根本,而我是做Web开发的,所以总结了几个对信息抽取有用的模式:
模式1:相似的页面使用一套模板。互联网的网站大致可以分为CMS系统(如帝国CMS)、博客系统(如Wordpress)和论坛系统(如Discuzz)。不管是什么系统,同类网页都是根据相同的模板和后台数据生成的静态或动态页面。结构是一样的,但是内容不一样。如果有修改,也是统一修改,手工制作的页面很少。
模式2:块标签用于不同功能的信息。块标记(组标记)用于所有块。HTML中的标签具有块属性,如DIV、TABLE、FORM、CENTER、LI等。
模式3:重复该结构的循环。列表,论坛,博客评论,一般都是获取数据行,然后根据行循环输出。
模式4:根据信息组织块。一是风格上有区别,比如导航、文字、相关文章、评论、左导航、右广告风格;回复和回复的风格是一样的。第二,块越相关,块越近,文字、相关文章、评论越近,而文字离右边的广告越远。
模式五:不管是网页开发者水平不高,还是网站流氓,很多文字都不干净,广告里的一些文字我都等不及。
根据上面的分析,结合上面的一些参考算法,提出了一种基于Web开发模式的信息抽取算法,可以普遍解决信息抽取中的准确性和干净性问题。注意:准确是指文字的完整性;清洁度校正不包含噪音。
基于Web开发模式的信息抽取算法描述
1.根据“模式1”,收集n (n=1)个相同域名或路径的网页,相同域名或路径的网页具有相同模板的可能性高。如果n=1,则退化为单个网页的信息抽取,难以抽取新闻和短博客。如果对一组网页进行合并提取,可以更好地解决这个问题。
2.根据“模式2”,根据HTML的block标签构建N棵Dom树。该树中并不是所有的HTML标签都是节点,只有block标签的可见节点才能创建一个节点,这样可以满足信息抽取的需要,提高效率。下图显示了建立的五个Dom树。
图1
3.判断N个Dom是否相似,主要是选取编号较高的Dom树的上分支的节点来判断其结构是否相似,取相似的Dom树结合其节点特征。可能N个Dom属于多个模板,你可以组合多个Dom树,逐个计算。特征:文本长度,链接数量,链接中的文本长度,图片大小,标签数量。假设合并后的Dom树为d,如果某条路径的节点在不同的Dom树中,且特征完全相同,那么这个节点可以忽略(去掉版权、网站描述等重复的噪音信息)。
4.根据“模式4”,为d合并相似的文本块,比如图2中,节点7下面的10、11、12都是文本块(可以根据节点特征计算)。如果它们有相同的父节点,它们可以合并到节点7中。这一步,有一些博客或网站的文字分布在几个区块。如果不合并,提取的文本将是不完整的。
图2
5.按照“模式3”,合并d中的循环块,这一类主要是评论和论坛信息,如图3。节点2、3、4、5、6是结构相同的节点,合并到节点2中。如果不合并,会提取一小块,导致信息不完整。同时,对于圆形连续块,需要有一个减重的过程。对于一些博文和评论,评论的权重会大于博文的权重,不进行权重降低,会提取评论而不是博文。
图3
6.找到信息最多的块。这里解释一下信息量的概念。信息量是通过文字、链接、图片、视频、动画及其风格向用户传达信息的量化标准。说白了就是网页想给用户什么信息。内容页面为用户提供内容,而导航页面为用户提供链接。计算信息量的公式不一样。图4是网页的结构。根节点1下有三个节点:2、3、4;根据信息量计算公式,节点3信息量最大,取节点3;节点3下有两个节点7和8,7最大;7下面是11,所以把节点11作为文本节点。为什么不取节点15?有两种可能。一个是步骤4中节点15已经合并到节点11中,另一个是节点15的信息太小无法选择。
信息量公式=文本信息链接信息图片信息视频(包括Flash)信息标签信息
图4
7.根据“模式5”,找到文本节点只是意味着文本包含在文本节点中,找到的文本节点仍然包含噪音,比如文本块中的广告信息,比如文本块中的相关链接信息太多等等。这时就需要进一步清理文本块,去除噪声信息。对于论坛,如果只需要帖子本身的信息,而不需要用户信息,可以根据论坛重复回复的特点,计算每个回复块中每个块的信息量的方差。方差大的是帖子块(因为帖子长度变化大),方差小的是用户信息块(用户信息块差异小)。
算法优势分析
1.使用group标签和标签中的css进行分块,而不是使用VIPS中的颜色、大小、位置等信息,简化了计算过程,效率高。因此,在实际应用中计算结果也很好。如果能把颜色、位置、大小等因素考虑进去,精度会进一步提高。是否需要处理css,要看实际需要。
2.利用同一模板下不同页面的结构相似度和一个页面中循环块的相似度来提取信息,信息提取的准确率比单页面、单块提高了3%以上(估计值)。比如简讯(只有一句话)很难处理,比如只提取论坛里帖子的内容(左边是个人信息,不需要签名文件),比如提取没有评论的博文等.通过观察一组相似的结构来处理信息,这种思想可以扩展到其他类型的页面信息提取。
3.算法是通用的。它只需要根据不同的算法组合相似的块,设计合理的信息公式,就可以为不同的应用场景提供各种提取的信息,比如提取文本、图片、视频,链接、结构化内容等。
4.进一步优化,在结构相似的基础上,可以保留网页结构和网页信息模板的特征,供不能抽取信息的网页使用,特别是论坛、博客等回复数量不规则的页面。
实际应用效果
在实践中,文本提取部分检测了数万个网站(包括资讯、博客、论坛网站)的数据,准确率可以达到96%以上。
HUB的链接分析部分使用了这种算法,分析HUB页面中需要抓取的网页链接,不包括左右两侧的热点链接和导航链接。在数万个Hub页面上进行了测试,准确率达到了92%。-如果考虑到块的位置,效果会更好。
信息抽取中的其他一些问题
标签容错:该算法不识别属性、CSS、脚本的内容,只需要处理标签匹配,即使标签匹配错误,只要能提取信息即可。
识别:可以从头部提取字符集,也可以使用mozilla的字符集检测组件自动识别。建议将编码改为utf-8。
语言识别:可以使用中日韩utf-8编码区间,计算字符分布在哪个语言区间的概率。
标题提取与净化:将锚文本与标题结合,按照规则截断标题,去掉“_ News Center _ Sina.com”等无意义的东西。也可以根据相似网页标题的共有部分进行截取。
日期时间识别:文字区域上下不远的地方,可以用规律来匹配。如果有多次,可以大于某个时间(2000年以后?)最接近现在的时间,但不超过当前时间。
图片提取:提取文字区域的大图链接,图片的介绍性文字可以提取图片下面的文字或者图片周围的文字以及标题的文字。
提取:提取链接最多的块。如果链接了介绍缩略图的HUB页面,可以计算出文字和图片作为权重。HUB页面也是各种形式,难度不亚于文字提取。
其他:我以后再补充。
附录:以下是文档部分,一起分享,供参考。
基于Web开发模式的信息抽取
网页信息提取器
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。