面向多源异质数据源的学科知识图谱构建方法①

2022-01-06 06:04:50李家瑞李华昱
计算机系统应用 2021年10期
关键词:页面图谱实体

李家瑞,李华昱,闫 阳

(中国石油大学(华东)计算机科学与技术学院,青岛 266580)

高校之间的竞争主要以学科竞争为基础,学科的实力在某种程度上可以代表院校的水平.学科评估能够有效且全面地了解学科的建设现况,通过对学科的正确评估,寻找建设中存在的问题,从而进一步明确该学科的前进方向,实现更好的发展[1].由于学科建设的成果涉及很多方面的内容,以分散的文档、网络资源等形式对学科相关信息进行存储和显示,不能够全面地展示各项数据之间的关联,同时会使信息统计和潜在关系的挖掘较为困难,不利于后续评估工作的开展.

知识图谱(knowledge graph)作为大数据时代下一种新型高效的知识组织方式,能够基于图对多源异构数据进行知识融合与关联[2].本文将知识图谱技术应用至高校计算机学科领域,首先通过网络爬虫和规则映射的方法,从资源丰富的知网、高校官网、学科评估文件等数据源中获取计算机学科相关的领域知识.针对可能出现的杂质数据问题,使用微调后的BERT(Bidirectional Encoder Representations from Transformers)模型进行数据的分类,过滤异类数据.对于可能存在的人物实体重名问题,提出一套利用Word2Vec进行相似度判断的实体对齐方法,解决知识融合时的实例冲突问题.最终将知识导入Neo4j图数据库中完成知识图谱的存储,并基于此知识图谱建立起计算机学科可视化系统,实现对各类数据的信息查询、关系展示等多种功能,为上述问题提供了较好的解决思路.

本文的组织结构如下:第1节介绍知识图谱的相关知识及本文的研究思路; 第2节介绍计算机学科本体的构建; 第3节介绍知识图谱构建的相关内容,主要包括知识获取、知识融合和知识存储等过程; 第4节介绍计算机学科可视化系统的实现与性能评估; 第5节为总结与展望.

1 相关知识及研究思路

知识图谱的概念是由Google在2012年首先提出的,目的是改善搜索引擎返回结果的质量,提升用户搜索体验.根据覆盖面的不同,可以将知识图谱划分为通用知识图谱和领域知识图谱.其中通用知识图谱的覆盖面更广,涵盖了现实世界中的许多常识性知识,较为知名的大规模通用知识图谱有DBpedia、Wikidata、Freebase等,这些知识图谱的规模都很庞大,但对抽取知识的质量要求并不严格,包含各个领域的知识结构也较为简单,所以在应用于特定领域时表现不是很好.领域知识图谱则是面向具体的领域构建,对该领域内知识的准确度和深度等都有着非常严格的要求,能够为目标领域的上层应用提供很好的支持.知识图谱目前已经在医疗、电商、法律等领域有了较多的应用,比如通过基于知识图谱的聊天机器人,让用户自主了解有关医疗保健和药物方面的知识[3]; 基于构建的盗窃案件法律文书知识图谱,设计推理规则以提供相似案件量刑参考[4].

知识图谱模型以图论中的图结构G=(V,E)为基础,其中,V是顶点集,E是边集.知识图谱可以被认知为由一条条事实知识构成,知识可由三元组(h,r,t)的形式表示,其中,h代表头实体,t代表尾实体,r是两个实体之间的关系.在构建知识图谱时,主要有自上而下和自下而上两种构建方式.自上而下方式指直接从较高质量的数据集中抽取相关的本体和模式信息; 而自下而上是指从采集到的大量数据中提取出资源模式,然后选择其中置信度高的作为后续知识图谱构建的基础[5].对于一些较为成熟、知识体系完备的领域,通常可以采用自上而下的构建方式,即先对schema本体进行定义,再使用有监督、半监督和无监督等方法抽取知识,最后结合知识融合、知识推理等机制使得构建出的领域知识图谱更加完善.

知识图谱的一般构建流程为:首先确定知识表示模型; 然后根据数据的不同来源,选择不同的技术手段获取知识,并导入至知识图谱数据库中; 接着综合利用知识融合、知识推理和知识挖掘等技术对构建出的知识图谱进行规模和质量上的提升; 最后根据目标场景的不同需求设计有效的知识访问与呈现途径,如人机交互问答、图谱可视化分析、相似推荐等.

本文对计算机学科知识图谱的总体构建流程如图1所示.首先对计算机学科领域本体进行建模,定义概念之间的语义关系.对于不同的数据来源,设计相应的表格映射与网络爬虫算法,并结合抽取规则得到领域数据,然后利用基于BERT的分类方法对数据进行清洗过滤,实现知识的获取.在知识融合的过程中,通过训练好的Word2Vec词向量模型判断词相似度,进而完成实体的对齐.最后将融合整理后的数据导入至Neo4j图数据库中进行知识存储.基于上述构建好的知识图谱,本文搭建了计算机学科的可视化系统,可以提供基础信息查询、关键词检索、递进式检索和语义搜索等多种功能,同时以图形化的方式展示结果,便于用户完成实体关系查找和资源统计等工作.

图1 总体构建流程

2 计算机学科本体构建

本体定义了知识图谱的类集、关系集、属性集等,主要强调概念之间的关系,是对知识图谱模式层的管理.通过构建本体模型,可以对实体、关系以及实体属性等进行约束规范,作为后续知识抽取与组织的指导[6].本文以中国石油大学(华东)计算机科学与技术专业第四轮学科评估简况表为主要知识源,结合具体的计算机学科领域相关网站,使用OWL语言作为本体描述语言,通过Protégé本体开发工具,完成高校计算机学科本体的构建.

计算机学科本体中包含的概念及其构成的关系结构通过Protégé中的OntoGraf工具展示如图2所示.在此本体模型中,主要包含了教师、校友、在读本校生、在外留学生、院校机构、国家级项目、省部级项目、期刊论文、会议论文和专利等10个类,且子类概念之间通过多种关系相互关联.本体中将概念之间的关联关系表示为语义关系,在Protégé中也被称为对象属性,包括通用语义关系和自定义语义关系[6].本文构建的本体中包含了多种自定义语义关系,相关的概念及详细说明如表1所示.

表1 自定义语义关系表

图2 学科知识图谱本体模型

3 学科知识图谱构建

3.1 知识获取

3.1.1 数据来源

在知识图谱构建的过程中,数据是极其重要的底层支持,只有获取到大量研究领域中的数据,才能够建立一个质量较好的知识图谱.一般用于构建知识图谱的知识来源可以是结构化数据、半结构化数据、非结构化数据、物联网传感器和人工众包等[7].通过调查发现,高校计算机学科领域内的相关数据主要分布在电子文档以及各种网站中,比如学科评估文件、高校官网、国家知识基础设施等网站,这些数据源都分别涵盖了不同类别的学科领域数据,包括教师信息、论文、专利、科研项目等.因此本文主要从表2所示的来源中获取领域知识.

表2 知识图谱数据来源

3.1.2 数据提取过程

对于以表格文档形式存储的类结构化数据,例如高校计算机学科评估简况表,可以采用基于映射的信息抽取方法,即先将待提取的表头字段与上文构建的学科本体中的数据属性之间建立一一映射关系,然后使用本体定义的词汇描述提取出的结构化信息,从而防止属性名之间同义异名问题的发生,完成对目标表格单元中数据的提取.

对于存储于互联网网页中的数据,由于不同网页的内容组织结构具有较大差异,所以在爬取数据时,需要根据不同的目标网站制定针对性的爬虫方法.常用的网络爬虫有Requests、Selenium等,不同爬虫的实现原理也存在差异:Requests通过初始URL下载网页,再结合网页解析库解析其中包含的标签内容,获取新的URL依次进行爬取[8]; 而Selenium则是通过模拟用户的操作行为,比如点击按钮、输入文本等方式,直接运行在浏览器中,实现网页间的正确跳转[9].不同的实现原理也决定了每种类型爬虫的优缺点以及各自的适用场景:Requests爬取的速度快,但当跳转页面的URL无法获取时会导致爬取中断,因此适合于目标URL可以获得的情况; 当目标URL不可直接获得时,可以采用Selenium进行页面跳转,但其存在的缺点是需要等待浏览器打开加载,所以爬取效率远不如Requests.

本文提出了一种网络爬虫算法,能够根据网页组织形式的不同,灵活调用以上两种工具,在完成目标数据获取的同时,又尽可能地提高爬取效率.具体的爬虫工作流程如图3所示.

图3 爬虫工作流程

算法在爬取开始后需要首先对网页中跳转URL的组织情况进行判断.比如对于高校的官方网站,其师资列表页面内一般包含教师详细信息页面的URL,因此可以通过以下步骤爬取:(1)从师资列表页面URL开始,通过Requests库获取页面内容;(2)按照定义好的页面抽取规则,取出教师详细信息页面URL并放入待抓取URL队列中,若URL不完整,则根据相似页面的URL构造对缺失字段进行补充;(3)根据待抓取URL队列下载详细信息页面,从中提取目标数据,并保存至数据存储文件中;(4)整个过程循环执行,直到队列中的所有URL爬取完毕[8].而对于中国知网等一些不能直接获得跳转页面URL的网站,可以选择Selenium工具爬取,实现流程为:(1)配置URL地址及相关参数,调用Selenium的webdriver打开浏览器页面;(2)等待页面加载完成,定位搜索框与按钮元素,完成搜索条件输入后,模拟用户点击按钮进行跳转;(3)页面加载成功后,使用XPath提取目标数据,并进行数据持久化操作;(4)重复以上过程,直至满足爬取数量或所有页面爬取完毕[9].

3.1.3 数据清洗

考虑到在进行数据爬取时会出现杂质数据的问题,例如定位至错误的HTML标签,或由于解析出错导致文本缺失等,因此有必要在存储数据前进行数据清洗操作.本文通过实验比较TextCNN和BERT两种模型对相关学科数据分类的结果,设计出一种分类策略实现对爬虫数据的清洗过程.

文本分类模型TextCNN是由Kim等在2014年提出的,其目的是对卷积神经网络CNN进行变形,然后引入至文本分类的任务中[10].TextCNN的网络结构分为4层,包括嵌入层、卷积层、最大池化层和全连接层,通过输入待分类文本的词向量矩阵,经过卷积和池化操作后,输出该文本对应每个类别的概率分布[11,12].BERT主要基于双向Transformer编码器结构实现,同时利用遮蔽语言模型(MLM)和下一句预测(NSP)两个无监督任务进行联合预训练,使其经过特定的微调操作后即可迁移到下游自然语言处理任务中,比如内容检测[13]、命名实体识别[14]、文本分类[15,16]等.

为了确定使用哪种分类模型对学科数据的清洗效果更好,以清洗论文专利类数据为例进行对比实验.实验数据集中以包括论文专利的科研成果类数据为分类的正样本,以非论文专利类数据作为负样本,总共包含约13 000条数据,取其中的80%作为训练集、20%作为测试集对两类模型进行训练和测试.

对于TextCNN模型的嵌入层,首先对文本数据进行分词处理,然后使用基于26 GB(800多万条)百度百科词条、13 GB(400多万条)搜狐新闻和229 GB小说合并的训练语料进行训练所得到的Word2Vec词向量模型[17],对每个文本分词词语生成其128维嵌入表示,整合后构成词向量矩阵作为输入数据.在卷积层中,设置卷积核尺寸为[3,4,5],每个尺寸的卷积核个数为64,提取输入矩阵不同的feature map特征.最大池化层选择1-max pooling方式,抽取feature map向量中的最大值,即捕获其中最重要的特征.最后将经卷积池化获取的特征传至Softmax层,得到文本的分类标签结果.本文设置TextCNN模型训练的批次大小值为64,测试过程中不同迭代步数的准确率变化如图4所示.

图4 TextCNN模型测试结果

对于BERT模型,本文采用在中文维基百科上进行预训练后得到的Bert-base-Chinese模型作为基准模型,模型总共包含12层,隐层为768维,使用12头模式,共1亿多个参数; 在微调模型时使用与TextCNN模型相同的数据集,设置学习率为2e-5,批量学习的batchsize为32,Epoch循环次数为5次,最终得到的测试准确率如图5所示.

图5 BERT模型测试结果

对比实验结果可以发现,在此场景中BERT的测试准确率能够达到0.91左右,高于TextCNN模型.因此本文选择基于BERT模型的方法,以Bert-base-Chinese作为基准模型进行微调操作,再对爬取到的相关学科数据按类分别进行清洗,清洗前后的各类数据量统计如表3所示.

表3 清洗前后各类数据量统计

3.2 知识融合

在对不同来源的知识进行融合时,容易出现实例异构问题,即同名实体可能指向不同对象,而不同名实体可能指向相同对象.因此需要通过实体对齐技术,确定不同信息来源中的两个实体是否指向现实世界中的同一个对象,若是则在实体间构建相应的对齐关系,完成知识的融合.通过从知网、SooPAT等数据源中采集高校计算机学科领域的相关数据,在构建知识图谱的过程中会出现人物方面的歧义问题.比如高校教师在不同的时间节点发表论文、发明专利等科研成果,却由于工作调动等情况被判定为不同的人物实体; 或者同一高校内的重名教师被错误指向为同一实体,从而造成科研成果信息的错误统计.因此为了构建准确的高校计算机学科知识图谱,需要设计出一种适合的实体对齐算法来解决上述问题.本文采用的实体对齐算法如算法1所示.

算法首先从多数据源中提取出重名人物得到待对齐实体集合; 然后,通过人物的基本信息进行初步筛选,基本信息包括性别、民族、出生年月等这些不易改变的属性信息; 最后,根据人物发表论文或申请专利中的关键词集合,使用Word2Vec获得对应词向量并计算词向量间的余弦相似度[18],若相似度超过自定义阈值,则可认为二者研究方向相同,指代同一实体.

针对如何确定相似度阈值的问题,本文设计了以下实验进行研究.首先选取部分高校教师的论文信息作为原始数据,每位教师随机选取3篇论文的关键词组成其研究方向关键词集合,假设某位教师研究方向关键词集合的长度为m,则集合可以表示为:

然后将该位教师余下的论文分别与该集合组成对比测试组,假设余下的某篇论文包含的关键词个数为n,则对比的关键词集合为:

之后使用Word2Vec模型得到关键词集合对应的词向量,研究方向关键词集合的词向量表示为:

对比的关键词集合的词向量表示为:

最后计算两个关键词集合之间词向量余弦值的平均值,将其作为该篇论文与对应教师研究方向之间的相似度:

两个词向量之间的余弦函数cos(∙)定义为:

其中,L为通过Word2Vec得到的词向量的维度,Vi为词向量的第i个分量.

本文随机抽取了共2400组测试数据,最终观察到关键词相似度的数值分布如图6所示.从图6中可以看出,相同研究方向的论文关键词相似度都在0.5以上,因此本文在实体对齐算法中设置相似度阈值为0.5.

图6 关键词相似度分布

为了验证算法的可行性,本文选取了数位重名但研究方向不同的教师,从知网上爬取其发表的论文信息,取同一教师的论文关键词集合作为正例数据,取不同教师的论文关键词集合作为反例数据,构成了包含800余条数据的测试数据集.然后从中随机抽取200、400、600、800条数据,与人工标注的结果进行准确率的分析计算.实验结果如表4所示,4次随机测试的准确率均在90%以上,说明基于Word2Vec的人物实体对齐方法识别出的错误数据较少,可以在高校学科领域的知识融合场景中使用.

表4 人物实体对齐测试结果

3.3 知识存储

经过清洗对齐处理后的数据,其内容和格式已经满足学科知识图谱构建的要求,下一步的工作就是把这些数据导入到底层数据库中.Neo4j作为一种高性能的非关系型图数据库,将数据存储在一个超大型网络上,非常适用于对基于图结构的知识图谱进行存储[19].本文通过使用Python支持的Py2Neo第三方库提供的操作函数,将各类数据以节点和边等形式导入Neo4j中,并且可以进行对应的增删改查等操作.

最终构建完成的学科知识图谱的数据规模统计如表5所示,图谱中的各类知识形成了一幅庞大且错综复杂的多关系网络,有助于后续各项功能的实现及性能的优化.

表5 计算机学科知识图谱数据统计

4 可视化系统实现

本文基于上述知识图谱开发了一个高校计算机学科的可视化系统,系统采用B/S(Browser/Server)前后端分离的结构模式进行实现,通过Python的Flask框架搭建.前端中使用Echarts工具实现数据的图形显示效果[20],通过文本、力导向图等多种形式对学科领域知识进行可视化显示.

4.1 系统功能

本可视化系统的功能主要包括基础信息查询、关键词检索、递进式检索和语义搜索等,可以从实体、属性、关系等多个维度完成知识的搜索与展示.

4.1.1 基础信息查询

基础信息查询功能的目的是统计与被查询实体有关的所有实体和关联关系,然后以力导向图的形式将实体关系通过图形界面表示出来.同时使用符合图数据库存储结构的推荐算法,选出部分与被查询实体相似度最高的同类实体,作为用户可能感兴趣的推荐信息.功能实现过程的算法如算法2所示.

此功能主要包含直联查询和相似推荐两个数据处理模块.在直联查询模块中,先根据用户的输入构造相应的匹配路径[21],然后通过Cypher语句从Neo4j图数据库中查找所有与其有关的实体和其间关系.在相似推荐模块中,首先构造多跳匹配路径“(qe:Stype)-[r1]-(e)-[r2]-(me:Stype)”,其中qe指被查询实体,me指匹配到的实体,Stype表示两者为同一数据类型,r1、r2和e代表不做特定要求的关系和实体; 之后统计出匹配到的所有实体和对应的路径条数,按数量由多到少进行排序,选择其中的Top-k个实体作为相似推荐(本文所取的k值为3,即最多推荐3个相似实体).最后由得到的数据属性值确定节点和连线的类型和标签值,传入Echarts的绘图函数完成图形的绘制与显示.

图7所示为输入“中国石油大学(华东)”的信息查询结果,界面中包含与此实体直接相连的各类实体节点以及其间关系的说明,同时也为用户推荐出最相关的同类实体“中国科学院计算技术研究所”“中国海洋大学”和“南开大学”.力导向图支持放大、缩小以及图形的移动,当点击界面上方的类别标签时,能够对该类所有的实体节点进行隐藏或再现,便于用户观察和统计.左键点击节点时,可以跳转至该实体的详细属性页面,图8所示为“大数据环境下的油气开采创新方法研究与应用示范”项目的详细属性显示.

图7 “中国石油大学(华东)”查询结果

图8 详细属性显示界面

4.1.2 关键词检索

关键词检索功能会显示所有与输入关键词相关的实体节点,同时支持多关键词检索的任务.系统首先利用哈工大LTP语言处理工具对用户输入的关键词进行词性标注,包括人物、时间、名词等词性类型,然后根据词性分布构造相应的正则表达式,从知识图谱中查找符合条件的实体.

例如,当输入多个关键词为“神经网络”“识别”“2019年”时,LTP词性标注模块将它们分别标注为“n”“v”“nt”,对应构造出的正则表达式即为“(?=.*[神 ][经 ][网 ][络 ]).*”“(?=.*[识 ][别 ]).*” “(?=.*[2][0][1][9]).*”.之后将这些正则表达式作为属性字段组成Cypher语句进行检索,返回满足条件的实体,最终结果如图9所示.

图9 多关键词检索结果

4.1.3 递进式检索

右键点击图中任一节点,即可进入以该实体为中心的下一层知识图谱,实现知识图谱的递进式查询.例如当点击图10(a)中的节点“IT类专业多层次实践创新平台建设”后,系统页面弹出确认提示框,用户确认后可跳转至以该节点为中心的信息展示界面,递进式检索结果如图10(b)所示.

图10 递进式检索功能展示

4.1.4 语义搜索

语义搜索通过挖掘输入问题背后的语义,使搜索的结果更加符合用户的真实意图.在进行语义搜索的过程中,首先使用LTP分词工具对输入问题和定义好的问题模板进行分词,通常分词工具对于专有领域中的实体和概念可能会出现过度划分等现象[22],对后续搜索造成困扰,因此本文通过增加自定义词典的方式来达到准确分词的目的.然后,分别将每一个问题模板和输入问题结合进行One-Hot编码,得到此模板和输入问题的词向量表示,通过计算两者词向量之间的余弦相似度,选择相似性最高的作为该输入问题的类型.最后将根据模板和问题关键词查询到的相关数据返回至前端界面进行整合显示.

图11为问题“郑秋梅老师和黄庭培老师共同发表的期刊论文情况”的搜索结果,界面中通过图形绘制直观展示了两位老师共同发表的期刊论文和合作关系,实现了语义搜索的目标.

图11 语义搜索结果

4.2 系统性能评估

为了验证本系统的性能能否满足用户实际使用的要求,在学科知识图谱可视化系统构建完成后,邀请了数十位高校计算机学科的相关人员进行测试.测试过程根据测试方法的不同分为两组:一组采用α测试方法,即给予参与测试者一定的系统使用说明与操作指导,主要是对可视化系统的可靠性进行验证; 另一组采用β测试方法,让参与测试者在无任何指导和帮助的情况下自主探索系统的功能,主要是对系统的健壮性和易用性进行验证.最终α测试组的总体反馈为本系统的数据覆盖范围较为广泛,交互友好,可靠性强; β测试组的总体反馈为系统易于上手和操作,且无异常情况产生.所有参与测试者的平均满意度达到91.67%,证明本可视化系统能够达到课题的研究目标要求.

同时本系统也作为辅助工具参与了第5轮学科评估材料的准备工作.其中,相关专家主要使用本系统对学科评估材料中的部分数据进行对比验证,以及时发现材料中的错误内容.这种工作模式不仅能够增加了评估材料的准确度,而且加快了材料准备的速度,提升了工作效率,使得本系统在实际的应用场景中也取得了令人满意的效果.

5 结束语

本文就高校计算机学科领域进行研究,给出了一套完整的领域知识图谱构建方案,并通过实验结果证明了该方案的可用性.针对多源异质的领域数据,设计基于规则映射与改进网络爬虫相结合的数据获取方法,然后使用fine-tuning后的BERT分类模型对数据进行清洗过滤.对于不同来源知识的融合问题,提出一种基于Word2Vec的实体对齐方法,有效解决融合过程中的数据冲突问题.最后将知识导入Neo4j图数据库进行存储,并基于此知识图谱完成了计算机学科可视化系统的实现,为以后的学科评估工作提供方便快捷的资源查询与关系展示等应用服务.由于计算机学科的数据来源中还包括一些非结构化的数据,后续工作中将完善有关非结构化文本的知识抽取方法,使构建的学科知识图谱更加全面.

猜你喜欢
页面图谱实体
刷新生活的页面
保健医苑(2022年1期)2022-08-30 08:39:14
绘一张成长图谱
前海自贸区:金融服务实体
中国外汇(2019年18期)2019-11-25 01:41:54
实体的可感部分与实体——兼论亚里士多德分析实体的两种模式
哲学评论(2017年1期)2017-07-31 18:04:00
补肾强身片UPLC指纹图谱
中成药(2017年3期)2017-05-17 06:09:01
两会进行时:紧扣实体经济“钉钉子”
振兴实体经济地方如何“钉钉子”
主动对接你思维的知识图谱
杂草图谱
杂草学报(2012年1期)2012-11-06 07:08:33
同一Word文档 纵横页面并存