网页标题抽取方法及其装置
技术领域
本发明涉及一种网页标题抽取方法及其装置,尤其涉及一种基于相似度计算方法的网页标题抽取方法及其装置。
背景技术
目前来说,对于网页的标题的抽取方法方法有以下几类:1.一种是基于域的抽取方法。该方法需要针对每个域内包含的网页集合进行分析,并根据分析结果,总结出此域中网页标题的特点,最后以这些特点为基础编写标题抽取程序,也就是包装器。由于为每个域中每类网页都准备了相应的包装器,所以此种方法可以准确的抽取出网页中的标题,但是这种抽取方法也有其明显的局限性:(1)特定的包装器只能对特定域下的特定网页进行抽取。存在于Internet中的域数量众多,即使是对某一域的内容进行抽取,也需要为其生成大量包装器。(2)当抽取目标域中的标题特点发生变化的时,比如标题的布局被修改,那么包装器也要随之修改,如果涉及修改的特征过多,将不得不重新编写包装器。可以看出,这种方法缺乏通用性、可维护性差,很难应用在互联网中遍历抽取。因此,此方法只能用于抽取特定范围、规模小、相对固定的网页集合中。2.利用机器学习方法生成基于定界符的抽取规则,规则的获取需要训练手工标注的样本实例。该方法仅仅使用语义项的上下文来定位信息,没有使用语言的语法约束。
因此,需要出现一种普适性好的网页标题抽取方法。
发明内容
针对上述问题,本发明提供一种能够从网页中正确提取标题的方法及其装置。
一种网页标题抽取方法,用于从通过输入用户选定的查询词所得到的与所述查询词相关的网页中抽取真实标题,其特征在于,包括以下步骤:
(1)网页文档预处理步骤
将网页解析为纯文本信息,并将所述纯文本信息划分为若干个语言单位;
(2)相似度计算步骤
利用分词工具对所述若干个语言单位进行分词,并计算语言单位间的相似度;
(3)权值计算步骤
根据两两语言单位之间的相似度,得到每个语言单位的初始权值;
(4)权值调整步骤
对每个语言单位的质量进行评估,重新调整每个语言单位的权值,得到每个语言单位的调整权值;
(5)标题选取步骤
计算每个语言单位的度数和总度数以及调整权值大于等于阀值X的语言单位总个数,根据度数、总度数和总个数计算每个语言单位的平均度的阀值,选取度数大于等于平均度的阀值的语言单位作为候选单位,然后选取作为候选单位中的在文档中序号较小的前两个语言单位,然后取其中调整权值较大的作为真实标题。
优选地,利用Neohtml将网页解析为纯文本信息,所述纯文本信息包括标准信息和非标准信息。
优选地,两个语言单位之间的相似度计算为:
假设unit1和unit2为两个语言单位,set1和set2分别为两个语言单位分词后的词语集合,其中set内的数据结构表示为<word,count>,word为词语,count为word出现的次数,通过以下公式①计算两个单位unit1和unit2间的相似度:
Sim(unit1,unit2)=Sim(set1,set2)=sameCTlog(size(set1)+size(set2))]]> ①
其中Sim(unit1,unit2)表示两个语言单位之间的相似度,sameCT表示同时出现在set1和set2两个集合的共同词语,在每个集合中出现的次数之和,size(set)为集合中词语的个数。
优选地,所述语言单位的权值通过下述公式②进行计算:
weight(uniti)=Σj=1NSim(uniti,unitj),(i≠j)]]> ②
其中,weight(uniti)为每个语言单位的权值,uniti为需要计算权值的语言单位;Sim(uniti,unitj)为语言单位uniti与语言单位unitj之间的相似度;N为文档中语言单位的总数目,1≦i≦N。
优选地,所述网页文档用图G表示,图G中各个顶点分别对应各个语言单位,利用下述公式对上述步骤(3)中的每个语言单位的权值调整:
weight'(uniti)=weight(uniti)*linkCT(uniti)
其中,weight(uniti)为上述步骤(3)计算的每个语言单位uniti的初始权值,linkCT(uniti)为图G中顶点uniti的度,weight′(uniti)为调整后的每个语言单位的权值,1≦i≦N。
优选地,所述语言单位的度数是指与该语言单位对应的顶点相连的边的个数。
优选地,所述顶点之间的边是否存在取决于顶点对应的语言单位之间的相似度的大小,如果相似度的值等于0,则表示顶点之间不存在边,如果相似度大于0,则表示顶点之间存在边,并且边的权值为相似度的值。
优选地,所述阀值X为0.1。
优选地,所述平均度的阀值等于总度数除以两倍的总个数。
本发明还提供一种网页标题抽取装置,其特征在于,包括:网页文档预处理单元,用于将网页解析为纯文本信息,并将所述纯文本信息划分为若干个语言单位;相似度计算单元,利用分词工具对所述若干个语言单位进行分词,并计算语言单位间的相似度;权值计算步单元,根据两两语言单位之间的相似度,得到每个语言单位的权值;权值调整单元,通过内容权威度和链接权威度来对每个语言单位的质量进行评估,重新调整每个语言单位的权值;标题选取单元,计算每个语言单位的度数和总度数以及权值大于等于阀值X的语言单位总个数,根据度数、总度数和总个数计算每个语言单位的平均度阀值,选取度数大于等于平均度阀值的语言单位作为候选单位,然后选取作为候选单位中的在文档中序号较小的前两个语言单位,然后取其中权值较大的作为真实标题。
本发明提出的方法不仅可以满意地实现对“非标准网页”的抽取,而且对“标准网页”有较好的泛化能力。能够从难以总结普适性规则的网页集合提取标题,并且选择正向迭代最细粒度切分算法分词后的公共子词语方式计算单位件的相似度,通过一系列计算步骤和方法,最终抽取出“真实”标题,从而提高了标题抽取的准确率。
附图说明
图1是本发明的网页标题抽取方法的示意图。
图2是本发明的一实施例的网页文本以图形式表示的示意图。
图3是本发明的网页标题抽取装置的示意图。
具体实施方式
本发明的宗旨是从网页中准确地提取标题,主要解决以下问题:
1.大多数情况下,用户可以通过HTML文档中的<title>和</title>
标签准确的获得“真实标题”,但有些时候人们却不经意地将“真实标题”表达在自定义的HTML标签中,而在<title>和</title>标签中填写的是“虚假标题”,本发明采用相似度计算方法来抽取网页“真实”标题的思想,在“标准网页”和“非标准网页”的数据集上都能取得更好的效果。
2.本发明对于Web网上的网页抽取准确率很高,泛化能力可以得到保证。
3.标题提取的准确率问题。本发明对于较大数据集的“非标准网页”处理性能仍然较好,从而有效的提高了标题的提取的准确率问题。
为解决上述技术问题,本发明网页标题抽取方法采用了以下技术:
(1)网页的解析和文本处理技术。借助Neohtml将网页解析为纯文本信息,将经过划分后的段落或句子等同定义为一个语言“单位”。本发明中主要在将网页解析为纯文本时用到该技术,另一个是在将网页文档中含有的信息转换为文本文档表示的时候。
(2)中英分词技术。分词器为IKAnalyzer(IK_2012u5),ICTCLAS、Ansj、结巴分词等,利用“正向迭代最细粒度切分算法”分词方法。本发明中主要在相似度计算用到该技术。
图1是本发明的网页标题抽取方法的示意图。如图1所示,本发明的网页摘要抽取方法包括:
步骤S1:网页文档预处理步骤
将网页解析为纯文本信息,并将所述纯文本信息划分为若干个语言单位;
具体地,利用Neohtml将网页解析为纯文本信息,所述纯文本信息包括标准信息和非标准信息。
步骤S2:相似度计算步骤
利用分词工具对所述若干个语言单位进行分词,并计算语言单位间的相似度;
具体地,可利用词频统计工具,如IKAnalyzer分词器、ICTCLAS、Ansj、结巴分词等将查询词分词为若干个子查询词,比如“清华大学”分词后为:“清华大学”、“清华”、“大学”。
两个语言单位之间的相似度可通过以下方法进行计算:
假设unit1和unit2为两个语言单位,set1和set2分别为两个语言单位分词后的词语集合,其中set内的数据结构表示为<word,count>,word为词语,count为word出现的次数,那么可通过以下公式①来计算两个单位unit1和unit2间的相似度:
Sim(unit1,unit2)=Sim(set1,set2)=sameCTlog(size(set1)+size(set2))]]> ①
其中Sim(unit1,unit2)表示两个语言单位之间的相似度,sameCT表示同时出现在set1和set2两个集合的共同词语,在每个集合中出现的次数之和,比如词w出现在两个集合中,在第一个中出现a次,在第二个集合中出现b次,w在两个集合中出现的总次数就是(a+b),size(set)为集合中词语的个数。
通过上述公式①,可得到各个语言单位之间的相似度。
步骤S3:权值计算步骤
根据两两语言单位之间的相似度,得到每个语言单位的权值;
具体地,语言单位的权值可通过下述公式②进行计算:
weight(uniti)=Σj=1NSim(uniti,unitj),(i≠j)]]> ②
其中,weight(uniti)为每个语言单位的权值,uniti为需要计算权值的语言单位;Sim(uniti,unitj)为语言单位uniti与语言单位unitj之间的相似 度;N为文档中语言单位的总数目,1≦i≦N。
通过上述公式②,可得到每个语言单位的权值。
步骤S4:权值调整步骤
对每个语言单位的质量进行评估,重新调整每个语言单位的权值;
本发明利用HITS算法通过两个评价权值——内容权威度(Authority)和链接权威度(Hub)来对语言单位的质量进行评估,得到作为候选标题的候选语言单位,通过比较两个候选单位的权值,选取权值较大的单位作为抽取“真实标题”的结果(具体如何选取,后续介绍)。
在本发明中,网页文档可用图G表示。图G是一个二元组(V,E),其中V称为顶点集,E称为边集。它们亦可写成V(G)和E(G)。E的元素是一个二元组数对,用(x,y)表示,其中x,y∈V。图G中各个顶点分别对应各个语言单位,顶点之间的边是否存在取决于顶点对应的单位之间的相似度的大小,如果相似度的值等于0,则表示顶点之间不存在边,,如果相似度大于0,则表示顶点之间存在边,并且边的权值为相似度的值;边的权值大小为相似度的值。顶点的初始权值为步骤S3中计算的值。利用下述公式③对上述步骤S3中的每个语言单位的权值进行调整:
weight'(uniti)=weight(uniti)*linkCT(uniti) ③
其中,weight(uniti)为上述步骤S3中计算的每个语言单位uniti的初始权值,linkCT(uniti)为图G中顶点uniti的度,weight′(uniti)为调整后的每个语言单位的权值,1≦i≦N。
步骤S5:标题选取步骤
计算每个语言单位的度数和总度数totalDegree,以及权值大于等于阀值X的语言单位总个数geNodeCount,根据度数、总度数和总个数计算每个语言单位的平均度的阀值aveDegree,选取度数大于等于平均度的阀值的语言单位作为候选单位,然后选取作为候选单位中的在文档中序号较小的前两个语言单位,然后取其中权值较大的作为真实标题。
在本发明中,“度”是指计算机数据结构“图”中的基本概念。顶点的度数就是与顶点相连的边的个数。
下面对本发明的标题选取进详细描述。
(1)计算网页文档中所有顶点的度数degree和总度数totalDegree,以及权值大于等于x的顶点总个数geNodeCount。其中x为可定义的参数值,实验测试取x值为0.1时比较合适,但是并不限于此。
(2)计算平均度的阀值aveDegree:aveDegree=totalDegree/(2*geNodeCount),其中aveDegree为用于控制权值过小的语言单位。判断条件为:如果某个语言单位的度数uniti.degree<aveDegree,则不考虑将该单位作为候选的标题,1≦i≦N。
(3)经过(1)、(2)计算:选取候选标题中序号idx最小的语言单位作为抽取“真实标题”的结果。其中idx为该单位在文本文档被划分为多个单位中相对应的索引序号(最后可能为title的unit可能不止一个,这时idx较小的比较可能是正确的标题)。一般,候选标题是按序号排列的,选取序号较小的前两条,然后取其中权值较大的作为真实标题。
为进一步阐述本发明的网页标题抽取方法,下面举例说明。
第一步:网页文档预处理
搜索的某网页(网页地址:
http://www.nwepdi.com/Pages/widescreen/showinfo.aspx?myID=1023&myListID=8bc767bd-89f2-449f-a3fb-7729d27d8026&source=ListIII.aspx),对该网页的文档的标题进行抽取,首先解析网页源代码,获取一个个的”单元“,结果如下(为演示方便,有所简化):
中国电力工程顾问集团西北电力设计院
当前位置:
我院彬长、山阴总承包项目荣获首届电力行业优秀工程总承包奖
发布时间:2014-10-16浏览次数:1414
在中国电力规划设计协会组织的第一届电力勘察设计行业优秀工程项目管理和优秀工程总承包获奖项目评审中,
我院EPC总承包的陕西彬长矿区煤矸石资源综合利用(2×200MW) 发电工程荣获首届电力行业优秀工程总承包一等奖,
山西山阴(2x300MW)煤矸石综合利用发电工程荣获二等奖
第二步:相似度计算
(1)将每个句子进行分词,结果如下,形式为:[词,出现次数]
[西北,1][设计院,1][集团,1][顾问,1][电力,2][工程,1][中国,1]
[当前,1][位置,1]
[彬,1][优秀,1][山阴,1][项目,1][承包,2][电力,1][长,1][工程,1][我院,1][荣获,1][奖,1][首届,1][行业,1][总,2]
[浏览,1][1414,1][2014-10-16,1][时间,1][次数,1][发布,1]
[规划,1][勘察,1][优秀,2][和,1][项目,2][承包,1][电力,2][组织,1][管理,1][工程,2][评审,1][第一届,1][在,1][设计,2][中,1][获奖,1][协会,1][行业,1][总,1][中国,1]
[彬,1][优秀,1][epc,1][利用,1][电力,1][发电,1][承包,2][资源,1][长,1][工程,2][我院,1][2,1][荣获,1][一等奖,1][200mw,1][首届,1][陕西,1][综合,1][行业,1][煤矸石,1][总,2][矿区,1]
[荣获,1][利用,1][山阴,1][二等奖,1][综合,1][2x300mw,1][发电,1][煤矸石,1][山西,1][工程,1]
(2)计算两两语言单位之间的相似度
以第一句和第三句为例:
两句中共同的词语为”电力“和”工程“,“电力”在第一句中出现2次,在第三句中出现1次,“工程”在第一句中出现1次,在第三句中出现1次,共同词语出现的总词数sameCT为:2+1+1+1=5次。第一句中总词数size(set1)为:1+1+1+1+2+1+1=8,第三句的总词数size(set3)为:1+1+1+1+2+1+1+1+1+1+1+1+1+2=16。
根据单位之间相似度公式Sim(set1,set3)=sameCTlog(size(set1)+size(set3)),]]>Sim(unit1,unit3)=5log(8+16)=1.57,]]>计算出第一句和第三句的相似度为1.57。
第三步:权值的计算
根据两两语言单位之间的相似度,可以计算每个语言单位的权值,公式如下:
weight(uniti)=Σj=1NSim(uniti,unitj),(i≠j)]]>
计算每个语言单位的权值,结果如下,idx为编号,weight为权值:
【idx:0,weight:5.788839926601924
idx:1,weight:0.0
idx:2,weight:13.812360234086254
idx:3,weight:0.0
idx:4,weight:4.373282418846475
idx:5,weight:3.986313713864835
idx:6,weight:0.0】。
第四步:权值的调整
将文本表示为图,根据顶点间的相似度大小确定顶点间是否有边存在,本实施例的图如图2所示,顶点的编号对应上面的idx,也就是语言单位出现的顺序。
对权值进行调整,调整公式为:weight'(uniti)=weight(uniti)*linkCT(uniti),如编号为0的语言单位,原来的权值为5.788839926601924,度为4,所以调整后的权值为:5.788839926601924*4=23.155359706407697。
同理,每个语言单位调整后的权值为:
【idx:0,weight:23.155359706407697
idx:1,weight:0.0
idx:2,weight:55.24944093634502
idx:3,weight:0.0
idx:4,weight:17.4931296753859
idx:5,weight:15.94525485545934
idx:6,weight:0.0】。
第五步:标题的选取
计算所有顶点的度数和totalDegree=20;
计算权值大于等于0.1的顶点的总个数geNodeCount=4;
计算平均度的阈值AveDegree=20/(2*4)=2.5
如果顶点的度小于设定的阈值2.5则不作为候选单位,计算结果如下,idx表示位置编号,flag表示是否是候选单位,weight为初始权值,weight1为调整后权值,text为单位文本,后面跟的是分词结果:
【idx:0,flag:true,weight:5.788839926601924,weight1:23.155359706407697,
text:中国电力工程顾问集团西北电力设计院[西北,1][设计院,1][集团,1][顾问,1][电力,2][工程,1][中国,1];
idx:1,flag:false,weight:0.0,weight1:0.0,text:当前位置:[当前,1][位置,1];
idx:2,flag:true,weight:13.812360234086254,weight1:55.24944093634502,text:
我院彬长、山阴总承包项目荣获首届电力行业优秀工程总承包奖[彬,1][优秀,1][山阴,1][项目,1][承包,2][电力,1][长,1][工程,1][我院,1][荣获,1][奖,1][首届,1][行业,1][总,2];
idx:3,flag:false,weight:0.0,weight1:0.0,text:发布时间:2014-10-16浏览次数:1414[浏览,1][1414,1][2014-10-16,1][时间,1][次数,1][发布,1];
idx:4,flag:true,weight:4.373282418846475,weight1:17.4931296753859,text:在中国电力规划设计协会组织的第一届电力勘察设计行业优秀工程项 目管理和优秀工程总承包获奖项目评审中,[规划,1][勘察,1][优秀,2][和,1][项目,2][承包,1][电力,2][组织,1][管理,1][工程,2][评审,1][第一届,1][在,1][设计,2][中,1][获奖,1][协会,1][行业,1][总,1][中国,1];
idx:5,flag:true,weight:3.986313713864835,weight1:15.94525485545934,text:
我院EPC总承包的陕西彬长矿区煤矸石资源综合利用(2×200MW)发电工程荣获首届电力行业优秀工程总承包一等奖,[彬,1][优秀,1][epc,1][利用,1][电力,1][发电,1][承包,2][资源,1][长,1][工程,2][我院,1][2,1][荣获,1][一等奖,1][200mw,1][首届,1][陕西,1][综合,1][行业,1][煤矸石,1][总,2][矿区,1];
idx:6,flag:true,weight:0.0,weight1:0.0,text:山西山阴(2x300MW)煤矸石】。
最后从候选标题(flag=true)中选出前两条,权重较大者作为网页真实标题,最后的标题为:我院彬长、山阴总承包项目荣获首届电力行业优秀工程总承包奖。
本发明还提供一种网页标题抽取装置。如图3所示,本发明的网页标题抽取装置包括:网页文档预处理单元1,用于将网页解析为纯文本信息,并将所述纯文本信息划分为若干个语言单位;相似度计算单元2,利用分词工具对所述若干个语言单位进行分词,并计算语言单位间的相似度;权值计算步单元3,根据两两语言单位之间的相似度,得到每个语言单位的权值;权值调整单元4,通过内容权威度和链接权威度来对每个语言单位的质量进行评估,重新调整每个语言单位的权值;标题选取单元5,计算每个语言单位的度数和总度数以及权值大于等于阀值X的语言单位总个数,根据度数、总度数和总个数计算每个语言单位的平均度阀值,选取度数大于等于平均度阀值的语言单位作为候选单位,然后选取作为候选单位中的在文档中序号较小的前两个语言单位,然后取其中权值较大的作为真实标题。
各个单元的具体功能与上述介绍的网页标题抽取方法中所论述的相 一致,在此避免赘述。
尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。