乔晶晶,段利国+,李爱萍,2
(1.太原理工大学 计算机科学与技术学院,山西 太原 030024;2.武汉大学 软件工程国家重点实验室,湖北 武汉 430072)
知识库在知识图谱构建、自动问答系统等领域具有重要作用[1]。但是人工构建知识库速度慢、规模小、难度大、易出错、更新滞后,达不到实际需求的要求。如何自动构建实用的海量知识库具有较高的研究价值和应用前景。
随着Web2.0的发展,因特网上出现了大量的拥有海量数据的百科知识社区,如百度百科、维基百科、搜狗百科、互动百科等。从这些社区中自动提取实体及其相关知识用于知识图谱、自动问答系统构建,具有重要研究价值。
对大量百科词条进行统计、对比、分析发现,现有的百科知识社区具有如下特点。
(1)不同百科社区数据异构,即语义上相同的实体在不同的百科社区,其数据表现形式不同;
(2)单一的百科社区实体覆盖不全面、信息描述不完整,数据有缺失;
(3)不同百科社区分类体系不同,有的条目分类不准确、不具体。甚至用户可以自定义类别条目;
(4)存在实体歧义现象,即某一实体名称对应着多个语义不同的百科词条页面;
(5)数据质量参差不齐。
上述现象的存在,为利用百科知识社区自动抽取数据构建知识库造成重重障碍,如何克服上述困难,综合利用不同百科社区的知识资源的特征信息,自动对齐不同百科社区上的同义实体,并实现数据补全,具有较高的研究价值。
本文主要贡献如下:
(1)利用词语在知网与词林中的语义信息,计算实体名称及实体摘要相似度,提高实体对齐准确率。
(2)提出采用权重因子反映类别标签在百科分类树中的深度信息,计算实体类别相似度时,深度越大,说明分类越精确,实体相似度更高。
知识库的实体对齐始于“本体匹配”,即针对本体类别的语义相似度进行匹配。Dutot[2]利用启发式算法,反函数及上层语义信息实现多源知识库实体对齐。张琦[3]利用Freebase共享网站数据,通过迭代模型和判别模型进行实体对齐。随着Web 3.0的发展,实体数量不断增加,网络百科社区规模不断扩大,多源知识库中实体对齐成为新的研究热点[4,5]。现有的实体对齐方法融合实体的多种特征。王雪鹏等[6]建立了一个5层分类,356个类别,278个属性的知识描述体系,综合利用实体属性、实体类别及非结构化文本关键词解决多源知识库实体对齐问题,不足之处是只考虑知识库中名称相同的实体,未考虑名称不同但实质相同的实体对齐问题。文献[7]基于互动百科、百度百科构造中文资源描述框架(RDF)知识库,将通过资源描述框架模式(RDFS)规范化的属性作为特征,进一步通过建模,获取实体上下文信息,实现实体对齐。文献[8]利用实体属性值对作为特征模板,并引入属性值的共现概率,使用扩展特征向量空间模型进行实体消岐。徐庆等[9]利用实体类型、《同义词词林》编码树等特征计算实体相似度,具有借鉴意义。胡芳槐[10]对每篇文章的标题和内容建立倒排索引,选取相似度高于指定阈值的文章作为候选文章,将文章标题的余弦相似度、文章内容相似度、文章标题的编辑距离等作为特征,使用支持向量机(SVM)判别两个候选实体是否是同义实体。
针对使用部分特征进行实体对齐准确率不高的问题,本文综合利用实体的名称、摘要关键词集合、类别、属性-属性值序列等多种特征计算实体相似度,最终实现实体对齐。
网络百科社区是互联网中公开存在的包含大量用户生成数据的集合,这些数据属于半结构化数据。中文领域使用率较高的网络百科社区是百度百科和互动百科。百科中的每个实体均以网页形式展现,统计分析发现,百度百科词条包括“是否特色词条、词条名称、摘要、信息框、目录、内容、参考资料、词条标签、浏览次数、编辑次数、最近更新时间”等结构标签,互动百科词条包括“词条名称、摘要、基本信息、目录、内容、参考资料、开放分类、编辑次数、参与编辑人数、最近更新时间”等结构标签,二者并不完全一致。为便于问题描述,本文给出如下定义。
定义1 选取百度百科和互动百科共有的词条结构特征,将实体数据形式化表示为E=
EN为实体名称。网络百科中知识的基本单元为词条,除了消歧页面,每个词条对应一个实体。本文选取词条名称作为实体名称;
EK={w1,w2,…,wn|wi∈摘要、内容、目录、参考资料}-EN,为词条自由文本的关键词去除词条名称之后构成的关键词集合;
EC为实体类别,分别对应百度百科中的词条类别标签和互动百科中的开放分类,用于标记实体的所属类别。因为许多实体具有多种类别,例如,在百度百科中,词条“鲁迅”的类别标签有“文学家”、“文化人物”等。因此,EC进一步表示为EC={c1,c2,…,cn};
EP为实体属性-属性值序列,数据来源于百度百科中的信息框和互动百科中的基本信息框,包含一系列的“属性-值”对,因此EP进一步表示为EP={property,value},其中property={p1,p2,…,pn}为属性集合,value={v1,v2,…,vn}为属性值集合,{pi,vi}为实体属性与属性值对。
对于两个候选实体,要么是同义实体,要么不是。如果两个实体的相似度足够高,我们就认为两个实体是同义实体,也就是对齐的。由E=
实体名称虽然只是一个词语,但是包含丰富的语义信息,本文采用如下算法计算两个实体名称的语义相似度。
算法1:实体名称语义相似度算法
步骤1 借助百科词条的同义词或重定向功能,判断两个实体是否为同义词。若为同义词,其实体名称语义相似度sim_en(E1,E2)记为1,否则转步骤2。
步骤2 采用文献[11]的方法计算实体E1及E2的词条名称语义相似度sim_en(E1,E2)。如果两个实体的名称既不在知网中也不在同义词词林中,记sim_en(E1,E2)为0。
每个词条的自由文本篇幅较大,若全部采用计算代价太高,而摘要包含了词条最重要的语义信息,且篇幅短,处理速度快,计算成本小,所以本文通过计算两个实体摘要的语义相似度来衡量两个实体的相似度。
算法2:实体摘要语义相似度算法
步骤1 提取摘要部分关键词。实体E1的关键词集合EK1表示为词序列{w11,w12,…,w1m},实体E2的关键词集合EK2表示为词序列{w21,w22,…,w2n}。
步骤2 利用算法1计算EK1和EK2之间任意两个关键词的语义相似度sim_ek(w1i,w2j)。
步骤3 利用式(1)计算关键词集合的实体语义相似度
(1)
w1i=max(sim_en(w1i,w21),sim_en(w1i,w22),…,sim_en(w1i,w2n)),w2j=max(sim_en(w2j,w11),sim_en(w2j,w12),…,sim_en(w2j,w1m))
百科实体的类别标签集合为EC={c1,c2,…,cn}。利用式(2)来计算两个实体E1及E2类别标签的相似度
(2)
式中:EC1为实体E1的类别标签集合,EC2为实体E2的类别标签集合,sim_ec(E1,E2)值越大,表示两个实体的类别标签语义相似度越高。
权重因子反映类别标签在百科分类树中的深度信息,深度越大,权重因子越高,说明分类越精确,实体相似度更高。考虑到百度百科缺乏明确的分类体系,此处使用的是互动百科分类树。如果|EC1∩EC2|>1,α采用式(3)计算
(3)
式中:n=|EC1∩EC2|表示共有的类别标签的个数,h为分类树的高度,di为第i个类别标签的深度。
通过LCS[7]方法计算实体属性的相似度,具体算法描述如下:
算法3:实体属性相似度算法
步骤1 利用式(4)求实体E1及E2共有属性集
up(E1,E2)=property1∩property2
(4)
式中:property1为实体E1的属性集,property2为实体E2的属性集。
步骤2 利用式(5)计算两个实体共有属性pi的相似度
(5)
式中:pi对应实体E1的第x个属性p1x,其属性值为v1x。同时,对应实体E2的第y个属性p2y,其属性值为v2y,lcs(v1x,v2y)为属性值的最长公共子序列。
步骤3 利用式(6)计算实体E1及E2属性标签的相似度
sim_ep(E1,E2)=average(sim(pi))
(6)
融合实体名称、摘要关键词集合、类别及属性等多种特征,采用式(7)计算两个百科实体的相似度
sim(E1,E2)=w1×sim_en(E1,E2)+w2×sim_ek(E1,E2)+w3×sim_ec(E1,E2)+w4×sim_ep(E1,E2)
(7)
sim(E1,E2)大于一定的阈值判定两个实体可对齐,否则两个实体不可对齐。在表1所示数据集上,使用粒子群算法选取式(7)中的权重参数及判定实体相似的阈值。
输入:来自百度百科和互动百科的1528个词条页面。
输出:sim(E1,E2)。
(1)提取实体名称、实体同义词;
(2)提取实体摘要;
(3)对实体摘要进行分词、去停用词得到实体摘要的关键词集合;
(4)提取实体的实体类别;
(5)提取实体属性-属性值序列;
(6)根据2.2节基于知网与词林的实体名称语义相似度算法计算实体中两两之间的名称相似度sim_en(E1,E2);
(7)根据式(1)计算实体中两两之间的摘要相似度sim_ek(E1,E2);
(8)根据式(2)、式(3)计算实体中两两之间的类别相似度sim_ec(E1,E2);
(9)根据2.5节LCS算法计算实体中两两之间的属性相似度sim_ep(E1,E2);
(10)综合(6)~(9)根据式(7)计算实体相似度sim(E1,E2)。
本文数据选用从互动百科和百度百科随机下载的包含图书、人物、电影3类词条共1528个页面,能够反映不同网络百科的分类体系不同、数据异构的特点。在表1所示的数据集上,使用粒子群算法选取式(7)中的权重参数及判定实体相似的阈值。选取准确率(P)作为评价指标,P=Na/Nr,其中Nr为人工判定能够对齐的实体数,Na为本文算法能够正确对齐的实体数。为了检验本文算法的有效性,与基于网络语义标签的实体对齐算法、基于实体属性与上下文主题的实体对齐等算法进行了比较分析。
本文从互动百科及百度百科中分别随机下载了包含人物、电影、图书3类词条的html页面文档,分析发现部分实体数据稀疏,特别是缺少关键属性数据,因此人工方式对下载的数据进行清洗,得到本文实验的正式数据集,如表1所示。
表1 实体对齐数据统计信息
进一步分析发现,表1所示数据集中,同一实体其实体名称、摘要、属性-属性值序列、类别4个特征在百度百科和互动百科中各自所含的信息量也不一样,具体区别见表2。
相同的属性在不同的百科中可能具有不同的属性名,比如“出生时间”与“出生日期”,计算属性相似度前需对属性及属性值做标准化处理。本文通过人工比对分析的方式,对人物、图书、电影3类实体在百度百科和互动百科中的属性进行匹配处理,具体数据见表3。百度百科480个人物类页面共抽取157个不同的属性,170个影视类页面共抽取44个不同的属性,180个图书类页面共抽取34个不同的属性,互动百科376个人物类页面共抽取152个不同的属性,144个影视类页面共抽取68个不同的属性,178个图书类页面共抽取27个不同的属性。百度百科互动百科3类页面属性名相同的属性分别有94个、36个、15个,名称不同含义相同的属性分别有23个、14个、10个(含义相同的一组属性为1个)。人物、图书、电影3类实体标准化后的属性个数分别有80个、44个、16个。
表2 不同特征数及其比例
表3 属性标准化
相同属性名其属性值的表现形式可能不同,比如3 km和3000 m语义完全一样,但表现形式却不相同。为了增强属性相似度的可信度,需要对属性值的表现形式进行归一化。经过对来自百度百科和互动百科的图书、电影、人物3类共1528个词条的对比分析,本文制定了21条规则实现实体属性值表现形式的归一化。表4是部分归一化后的属性值示例。
表4 属性值归一化示例
在表1所示的实验用数据集中,包含百度百科词条830个,互动百科词条698个,实验中为每个词条赋予一个5个字母组成的ID,ID号是唯一的,第一个字母表示词条来源,百度百科用字母B表示,互动百科用字母H表示。第二个字母表示词条类别,人物类用字母P表示,电影类用字母M表示,图书类用字母B表示。最后3位数字标识实体编号,每种百科的每类实体重新编号。不同类别的实体对齐结果稀疏、意义不大,因此本实验仅对齐来自不同百科相同类别的实体。为了客观展示本文的实验效果,与基于网络语义标签的实体对齐算法进行比较,本实验也限定对齐实体名称相同的实体。从每种百科的每类实体中随机抽取编号等距的6对实体计算实体相似度及对齐结果,实验结果如表5所示。人工判定能对齐的12对实体和不能对齐的6对实体中,基于实体属性与上下文主题的实体对齐算法只考虑实体属性及上下文主题特征,有4对与人工标注结果不一致,基于网络语义标签的实体对齐算法有2对与人工对齐结果不一致,本文算法对齐结果只有1对与人工对齐结果不一致。
图1所示为实体名称、属性、类别、摘要4种特征及其综合在人物类、影视类和图书类中的准确率。4种特征综合使用的准确率在3种类别中都达到了92%以上。其中影视类实体特征信息完整表述准确,4类特征及其综合准确率都为最高。
图2显示几种方法实验结果的比较。第一种方法基于扩展特征向量空间模型方法只利用实体中的属性值-对作为特征模板,虽然引入属性值的共现概率进行实体判歧,但准确率较低。第二种方法基于实体属性及上下文主题特征进行相似度计算,准确率较略有提高。第三种方法基于网络语义标签对齐实体,其准确率虽略有提高,但是只考虑实体名称相同的实体对齐,未考虑实体名称不同但表达实质相同实体的对齐问题。由图2可知,实体名称及实体类别影响因子的使用提高了实体对齐的准确率。本文算法综合考虑各种特征,准确率最高,取得较好的实验结果。
表5 部分实验结果
图1 不同特征实验结果对比
图2 不同算法实验结果对比
本文注意到利用网络知识社区提取知识进而构建知识库是目前比较可行的方法。但是不同网络社区,其数据结构并不一致,这为自动获取准确的知识造成了障碍。本文提出了融合词条名称、摘要、属性-属性值序列、类别等多种词条特征的实体词条相似度计算方法判断实体之间是否能够对齐,取得较为满意的实验结果。不同的社区有关实体的数据无论在质量还是完善程度方面都参差不齐,单纯依靠单一的网络社区来获取知识具有较大的局限性,如何对数据正确性和可靠性进行甄别以自动获取高质量的数据是下一步研究的目标。