仿人工细粒度网页信息采集方法

文档序号:6556253阅读:465来源:国知局

专利名称::仿人工细粒度网页信息采集方法
技术领域
:本发明涉及一种可广泛用于建立细粒度查询的搜索引擎的网络信息采集的方法,具体地说是一种仿人工细粒度网页信息采集方法。
背景技术
:目前国内外相关的技术有字典式分析采集、格式区分采集二类方法,其中格式区分采集的适用面非常狭窄,所能细分化采集到的数据量十分有限(如网页的中文章的标题、国页中的title等等),国内外极少采用。目前使用较多的是字典式分析的方法,如*公司;*大学;*医院;*元,这种方法有着效率低、准确率低、建设成本高、适用面窄等多种弊端。利用这种方法来对email地址与单位用户名进行匹配采集,其正确率只能达到20%左右,而且对计算机资源占用较多,不适于网络采集的运行环境(以google的网络机器人为例,每次运行需要访问42亿张网页,程序集群中的每一台工作站都需要在多线程下、计算机各方面资源近饱和的状态下运行,因此字典式分析的方法也不适用于大型搜索引擎的网络采集)。网络机器人Robot,又称Spider、Worm或Rander,是一种可以主动在Internet上漫游并获取信息的程序。国内外对网络机器人的研究时日已久,网络机器人智能分析多采用字典式分析,但这种方法效率低、准确率低、成本高。网络机器人对智能分析模块的性能要求不同于一般程序,因为程序所处理的网络信息(尤其是网页信息)多为自然语言,信息量十分巨大,程序对互联网的漫游又是近饱和的并行计算,字典式的分析显然不适用于这种环境。网络机器人的智能分析网页信息、细粒度采集网页信息的落后,使得目前几乎所有的网络机器人只能提供粗粒度的网页信息,如网页的全文。网络机器人几乎成为搜索引擎的代名词。他们无法准确可靠地为用户提供细粒度的信息,例如目前的技术不可能实现,通过对电子商务网站网页的漫游,细分化地采集到各条商品的名称、价格、折扣、性能介绍等信息。也不可能通过漫游某个黄页网站,将每一个公司的名称、电话、传真、地址、法人等信息逐一采集。
发明内容本发明的目的是针对当前网页信息采集所采用的字典式和格式区分式采集方法存在的所能细分化采集到的数据量十分有限、效率低、准确率低、建设成本高、适用面窄等问题,发明一种能智能模拟人工工作的采集方法的仿人工细粒度网页信息采集方法。本发明的技术方案是一种仿人工细粒度网页信息采集方法,其特征是它包括以下步骤a、在互联网上采用传统网络机器人的漫游方式对良结构化或半结构化网页内容及其网址进行采集;b、对采集到的网页的URL(即网页地址)进行模版区分,或将该网页地址中的符号“?”前的部分作为模版的识别标志,或直接将该网页的网址作为模版类别并添加相应的识别标志;c、对上述网页内容中的一个或多个目的所需要的信息元进行人工采集,同时与前述的本网页的识别标志一起归入本地数据库中;其中所述的信息元是指细粒度采集所得的信息,例如某单位的名称、某件商品的价格等;d、由计算机根据所采集到的信息元进行分析定位,生成若干套以标识信息点的相对位置或绝对位置的定位坐标体系,其中,各套定位坐标体系准确度评价指数的初始值均为零;所述的信息点是指在同一模版网页中出现某种信息元的具体位置,又可称为信息定位坐标;e、由计算机选用上述信息点定位坐标体系中准确度评价指数最高的一套对同模版的所有网页进行批量细粒度采集,将网页中与目的所需要的信息元归入数据库中;f、如果发现采集结果的准确率低,则重复步骤C的结果,由计算机再次生成相关的相对位置和绝对位置定位采集模式,并与先前的定位采集模式进行各自对应比较,并做记录,选用吻合度高的定位采集模式进行后续操作;g、如果经f步骤修正后的准确度仍然较低,则可重复步骤f,直到准确率达到满意为止。本发明利用网络机器人对网站漫游的过程中,每当访问到一张网页都会使用网络机器人技术来判断和区别该网页使用的模版并利用网页生成的相关jsp、php、asp、servlet等等程序来判断。如http//www.njrsrc.com/member/rcfiles/showRcDetaill.asp?rcid=yanchenggongxueyuan中,而本发明则以http//www.njrsrc.com/member/rcfiles/showRcDetai11.asp为模版,因为同样以http//www.njrsrc.com/member/rcfiles/showRcDetaill.asp开头的网址网页其格式大体是一致,各个信息元出现的位置基本是一致的。同一模版网页中的机器分析知识和经验是一致的。本发明的学习人工分析网页信息、细分化采集网页信息的过程采用了绝对定位和相对定位二类思路。当人工完成数据采集的成果后,执行学习功能,系统开始结合人工校对的结果(通过相关软件界面实现),对网页进行分析,对各个欲采集的数据元主动地定位分析,将定位的有关参数记录到数据库中。本发明还利用了定位知识来采集信息,并利用分析、定位出来的相关信息,用逆向的原理,系统可以方便地采集出基于同模版中其它的网页信息(在大型网站中,往往是上千万条的信息)。且以后访问同一网站也可以根据上一次的学习知识来完成该网站的细分化采集,无需人工干预。本发明的有益效果1、利用本发明的方法,可以在网际漫游时完成对网页的数据采集过程(利用学习到的定位知识来采集),效率、正确率是远远高于现有的字典式分析方法,适用率也高于其它方法,如字典式分析方法对人名或技术名词的采集几乎是无能为力的。本发明采集效率高的特点也使得细粒度数据采集可以在大型网络机器人上实现,如google、百度的网络机器人等等,这类型的搜索引擎中也可提供细分化信息的查询服务了。高准确度的特点可以使采集来的数据信息,直接用于电子商务网站的建设、各类情报的分析,大大减少了人工操作。2、本发明可广泛应用于大中型具有海量数据的动态网站,此类网站往往是信息采集价值较高的网站。例如通过漫游遍历某个网站,可以以公司为单元细分化地采集出该网站中所有公司的名称、电话、传真、地址、法人、产品、产品价格等信息。同样对一个电子商城的遍历,可以采集出所有商品的相关信息(名称、价格、折扣、图片、型号等等)。与传统网络机器人采集出的粗粒度全文信息相比,本发明细分采集信息价值大大提高了。所采集到的细分信息,可以直接用于商务情报的分析、各类数据库系统的数据源,甚至可以直接用做同类网站的数据库。3、本发明还可广泛用于建立细粒度查询的搜索引擎,本发明还可用于商业情报收集、电子商务网站信息量的低成本丰富等等广泛的领域。图1是本发明实施例网页示意图。图2是本发明系统流程图。图3是记录模块标识和相关数据的数据库示意图。具体实施例方式下面结合附图和实施例对本发明作进一步的说明。如图1、2、3所示。一种仿人工细粒度网页信息采集方法,它包括以下步骤a、在互联网上采用传统网络机器人的漫游方式对良结构化或半结构化网页内容及其网址进行采集;b、对采集到的网页的URL(即网页地址)进行模版区分,将该网页地址中的符号“?”前的部分作为模版的识别标志,或直接将该网页的网址作为模版类别并添加相应的识别标志(部分采用post方式或cookie方式传递参数的网页);c、对上述网页内容中的一个或多个目的所需要的信息元进行人工采集,同时与前述的本网页的识别标志一起归入本地数据库中;其中所述的信息元是指细粒度采集所得的信息,例如某单位的名称、某件商品的价格等;d、由计算机根据所采集到的信息元进行分析定位,生成若干套以标识信息点的相对位置或绝对位置的定位坐标体系,其中,各套定位坐标体系准确度评价指数的初始值均为零;所述的信息点是指在同一模版网页中出现某种信息元的具体位置,又可称为信息定位坐标;e、由计算机选用上述信息点定位坐标体系中准确度评价指数最高的一套对同模版的所有网页进行批量细粒度采集,将网页中与目的所需要的信息元归入数据库中;f、如果发现采集结果的准确率低,则重复步骤C的结果,由计算机再次生成相关的相对位置和绝对位置定位采集模式,并与先前的定位采集模式进行各自对应比较,并做记录,选用吻合度高的定位采集模式进行后续操作;g、如果经f步骤修正后的准确度仍然较低,则可重复步骤f,直到准确率达到满意为止。下面结合一个具体实施例的具体步骤作进一步的说明如下1、网站网页模版区分判定技术目前互联网的WEB服务器的构架,多是由语言脚本(如ASP、JSP、PHP等)或生成网页的程序(如CGI和Servlet)加上后台数据库来实现的(其特点提供信息多、专业性,是我们网上信息采集的重点数据源)。这种网页信息是半结构化或良结构化的。具有高度的模版化,一个网站的关键模版通常只有三四种,动态列出的网页却是数十万计的,此类网站非常适合有效的数据采集。识别和区分网页的模版从网页信息本身分析是计算机的技术的又一个“软肋”,但是网页的链接通常是“http//…………/***.asp?name=kk&id=3675”,如http//www.njrsrc.com/member/rcfiles/showRcDetail1.asp?rcid=yanchenggongxueyuan此链接的前一部分http//www.njrsrc.com/member/rcfiles/showRcDetail1.asp是一个脚本语言asp,也就是一个模版,后面rcid=yanchenggongxueyuan代表该网页显示的数据标识符,通过前者可以方便地方便地识别和区分不同网页的网页模块。在网络机器人对网站漫游的过程中,每当访问到一张网页都会使用该技术来判断和区别该网页使用的模版。本发明中创新之处在于利用网页生成的相关jsp、php、asp、servlet等等程序来判断。如http//www.njrsrc.com/member/rcfiles/showRcDetail1.asp?rcid=yanchenggongxueyuan中,本发明以http//www.njrsrc.com/member/rcfiles/showRcDetail1.asp为模版,因为同样以http//www.njrsrc.com/member/rcfiles/showRcDetail1.asp开头的网址网页其格式大体是一致,各个信息元出现的位置基本是一致的。同一模版网页中的机器分析知识和经验是一致的。2、学习人工分析网页信息、细分化采集网页信息的过程采用绝对定位和相对定位二类思路。当人工完成数据采集的成果后,执行学习功能,系统开始结合人工效对的结果(通过相关软件界面实现),对网页进行分析,对各个欲采集的数据元主动地定位分析,将定位的有关参数记录到数据库中。第一类可以采用绝对位置定位的方法,在此类网页中,信息多以Table形式出现,有较固定的出现位置。系统可以采用绝对位置定位的方式,先定位信息所在的table,再定位信息所在的行列,也就是对html中的<table….>,<td>,<tr>记数,来定位信息,先定位到<table>,再定位到<tr>,后<td>。第二类采用相对位置定位,是用html中相邻的标识性语句(在<>中的)或非标识性语句来定位,如在相同模版的table中,“发布单位”的下一个单元格总是跟着单位的名称,“联系电话”后面的单元总是电话号码,“产品”后面跟的是出售的商品等等。如当人工校正完成各个数据录入后,按下学习按钮,系统就开始分析所在的网页,如果该网页的网址是模块型的即链接符合“http//………………./***.asp?name=kk&id=3675”的式样,就进行学习型地分析,并对人工校正的各个数据元主动记录定位信息。对于具体的数据元的定位,本系统开发了十二种位置方法,有代表性的有以下三种一种是当人工在全网页中找出的数据元的位置后,系统会在这个位置前后找到可以唯一定位的标识性语句内容(在“<>”中的),并记录下最后一个<>后到这一位置的距离。这个二个可以唯一定位的sign,要求是在全网页html中唯一出现,并且只以”<>”内容为标识。如在网页http//www.njrsrc.com/member/rcfiles/showRcDetail1.asp?rcid=yanchenggongxueyuan中人工找到与mail对应的用户名称的相关html代码(人工在系统的人机界面中找到的)<tdcolspan=4width=’70%’style={font-size10pt}>  <b>1、陈海</td><tr><tdwidth=’5%’></td><tdcolspan=3bgcolor=#eeeeee>■基本情况</td></tr><tr><tdwidth=’5%’><tdwidth=’2%’></td><tdcolspan=2>户籍所在地盐城首先,人工为系统定位到“陈海”二个字。系统主动以“<b>”为标识来定位,但进一步分析全网页发现”<b>”在全文中出现的频率太多不适合做sign,就加上<b>的前一个”<>”,以“<tdcolspan=4width=’70%’style={font-size10pt}><b>”来做标识,这二者在全文中相邻出现的频率只有一次,为唯一,所以系统将选定它为前sign(如果不为唯一,系统继续增加前sign的”<>”个数),同理这样选定后sign,前距离为2,后距离为零。第二种是以”<>”外的字符来定位(即在网页上显示的字符),上一种的设计看似天衣无缝,但还是有例外,如下<tr><tdalign=right>发布单位</td><td><ahref=’/jobs/posFiles/showDwDetail.asp?dwid=njplse’class=blue_9>南京普雷系统工程有限公司</a></td></tr><tr><tdalign=right>招聘部门</td>在网页中显示的效果是…………………………..发布单位南京普雷系统工程有限公司招聘部门人力资源部…………………………..如使用第一种方法,系统找到的前sign是“<ahref=’/jobs/posFiles/showDwDetail.asp?dwid=njplse’class=blue_9>”这一前标在不能用来在其它同模版网页的定位,因为对应每个单位的href内容是不同的,而“发布单位”和“招出聘部门”却是固定的,所以我们定义出第二种定位方法,以非标识性内容来定位(“<>”外的字符,也就是可以显示在网页中的字符),前sign是”发布单位”,后sign是“招聘部门”从而可精确的定位出“南京普雷系统工程有限公司”。第三种我们采用原始的记”>”方法,即当全网页的传送到第n个”>”时,该模块的企业系统名出现。每次调用study功能,都对这张网页进行一次这三种方法的定位分析,将结果记录到数据库中(在本系统中为了适应分布式和多线程的设计,其它如访问过的链接和找到的mail结果都存在数据库中)。3、利用定位知识来采集信息同理,利用2中的分析、定位出来的相关信息,用逆向的原理,系统可以方便地采集出基于同模版中其它的网页信息(在大型网站中,往往是上千万条的信息)。且以后访问同一网站也可以跟据上一次的学习知识来完成该网站的细分化采集,无需人工干预。利用这些学习来的定位知识,对网页的分析采集,是非常高效的,无论正确率还是效率都是远远优于传统的字典式分析方法。为了本发明系统可以进一步的分布式开发,采用可跨平台的java语言。限于篇幅,本发明以此系统中较简单的搜索email地址功能为例阐明整个系统设计思想及其工作流程。*实验运行于PIV1.8,256MB,win2000平台,32个并发线程,以典型的搜寻Mail地址为目标(搜寻email地址和组织/个人名称并建立一一对应的关系),对网站www.njrsrc.com进行非环球(unWorldSpider),深度为3的游历*当开启的并发线程数为150时,对网站www.njrsrc.com进行环球(WorldSpider),深度为6的游历实验的参数结果如下二者的访问分析网页的时间差进一步扩大,这说明在程序接近满负荷运转的时候,本案采集方法的高效性愈加明显,且正确率没有降低。综上,本案采集方法对网页的访问分析的速度远远快于一般字典式机器人,(商业软件与本案机器人(学习模式关)的速度差距主要是因为本案由java开发,运行于JVM以及字典设计的不同)。还需要指出的是无论是本案机器人还是所选的商业机器人,所使用的也仅仅是简单的字典分析方法(如此商业机器人使用的只是百家姓,加上“*公司*集团*厂*部*所*处*会*中心*院*室*校*行*世界*货运*苑*场*网”),如果增加字典的容量,进一步提高智能水平,速度势必还要下降。4、在人工较对的过程中,智能归纳出准确度最高定位知识。在每次人工校正的过程中智能地比较每种分析定位方法的成败,统计每种方种结果的置信度,为下次使用这一学习结果来搜集数据元时,指定置信度最高的定位分析方法。爬虫(Spider)的实现网络机器人游历功能在java下的实现,使用java类库中java.net.url类打开与网站服务器的链接,将网站的Html读入本程式的流,url=newURL(urlstr);//is=url.openStream();isr=newInputStreamReader(is);r=newBufferedReader(isr);本例中创建一个名为spider类,类中建一个GetSpider(Stringurl)的函数,逐行从流中提取并分析Html代码,找出Html文件流中<ahref=””>、<imgsrc=””>、<framesrc=””><linkhref=””>的url(也就是网页所有指向其它网页的链接),递归地调用GetSpider(url),实现爬虫的在internet上的网状展开(如图1)。此外,如图2,本发明系统还要解决的四个问题1.spider的深度限制,通过参数intmaxlevel来限制。2.防止死锁功能,防止爬虫从网页甲爬到网页乙,又从网页乙爬回网页甲,如此反复而死锁。加上了boolurl_visted()函数来实现导向。3.使用了多线程技术,解决了全系统中网速和服务器端的反应滞后的瓶颈,并采用动态平衡的设计思想防止系统计算的过载或资源的浪费。对于网络条件恶劣的环境还可以进一步改进成非阻塞式并发结构4.增加一个访问限制的控制,如限制程式不访问本站以外的网页(unWorldSpider),不访问本站相关网站以外的网站等等。邮址的提取和初步智能分析建立了privateUrlsPosfind_mail(UrlsPosurlmail)函数,其关键代码与spider相似只是提取的是有关@或href=”mailto…..等的相关字段,进一步分析并记录,判断系统是否有针对此种页面的分析记录(是否学过相关页面的分析),如无则使用初步智能分析的方法。初步智能分析的方法,使用的是字典式权重比较的分析定位方法。当然不可避免的有错误率高、数据采集效率低、字典建设成本高的缺点。在每次人工校正的过程中智能地比较每种分析定位方法的成败,统计每种方种结果的置信度,为下次使用这一学习结果来搜集数据元时,指定置信度最高的定位分析方法。privatevoidInsql(Stringsign,Stringhref,intdist,Stringlaststr,intwhichsign){….sql=″insertintostudy(href,sign″+whichsign+″,begin″+whichsign+″,last″+whichsign+″,suc″+whichsign+″)values(\″″+href+″\″,″+″\″″+sign+″\″,″+dist+″,\″″+laststr+″\″,0);″;stmt.executeQuery(sql);….}数据库study的结构如图3所示,数据库不仅记录了模块标识http//www.njrsrc.com/firstPage/showDwzpDetail.asp还记录了三种方法的定位所得的相关数据,以及在人工校对过程中各种方法成败的次数,以便系统分析各种方法针对每种模式的置信度,在下次分析网页时,以便系统决定使用哪种定位分析方法。图1是利用本发明的方法开发的一套采集email地址与用户名对应数据的软件示意图,从中可以看出系统非常准确地完了人名采集,并使之与email信息一一对应起来,放入本地数据库中,较好地实现了本发明的目的,而在目前现有技术中如要在网页中采集人名是非常困难、准确度非常低的工作,因此本发明较好地解决了这一问题,具有广泛的应用前景。权利要求1.一种仿人工细粒度网页信息采集方法,其特征是它包括以下步骤a、在互联网上采用传统网络机器人的漫游方式对良结构化或半结构化网页内容及其网址进行采集;b、对采集到的网页的URL进行模版区分,或将该网页地址中的符号“?”前的部分作为模版的识别标志,或直接将该网页的网址作为模版类别并添加相应的识别标志;c、对上述网页内容中的一个或多个目的所需要的信息元进行人工采集,同时与前述的本网页的识别标志一起归入本地数据库中;d、由计算机根据所采集到的信息元进行分析定位,生成若干套以标识信息点的相对位置或绝对位置的定位坐标体系,其中,各套定位坐标体系准确度评价指数的初始值均为零;e、由计算机选用上述信息点定位坐标体系中准确度评价指数最高的一套对同模版的所有网页进行批量细粒度采集,将网页中与目的所需要的信息元归入数据库中;f、如果发现采集结果的准确率低,则重复步骤C的结果,由计算机再次生成相关的相对位置和绝对位置定位采集模式,并与先前的定位采集模式进行各自对应比较,并做记录,选用吻合度高的定位采集模式进行后续操作;g、如果经f步骤修正后的准确度仍然较低,则可重复步骤f,直到准确率达到满意为止。全文摘要本发明针对当前网页信息采集所采用的字典式和格式区分式采集方法存在的所能细分化采集到的数据量十分有限、效率低、准确率低、建设成本高、适用面窄等问题,公开了一种能模拟人工工作的采集方法的仿人工细粒度网页信息采集方法,它可广泛用于建立细粒度查询的搜索引擎、商业情报收集、电子商务网站信息量的低成本丰富等等,与传统网络机器人采集出的粗粒度全文信息相比,本发明大大提高了细分采集信息价值,所采集到的细分信息可以直接用于商务情报的分析、各类数据库系统的数据源,甚至可以直接用做同类网站的数据库。文档编号G06F17/30GK1845098SQ20061003839公开日2006年10月11日申请日期2006年2月20日优先权日2006年2月20日发明者于磊,潘郁申请人:南京工业大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1