基于知识图谱的自动问答系统构建分析研究 计算机科学与技术专业_第1页
基于知识图谱的自动问答系统构建分析研究 计算机科学与技术专业_第2页
基于知识图谱的自动问答系统构建分析研究 计算机科学与技术专业_第3页
基于知识图谱的自动问答系统构建分析研究 计算机科学与技术专业_第4页
基于知识图谱的自动问答系统构建分析研究 计算机科学与技术专业_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目录TOC\o"1-3"摘要 1Abstract 2第一章 绪论 31.1研究背景 31.2知识图谱 31.3基于知识图谱问答系统 41.3本文组织结构 4第二章 自动问答研究概述 52.1研究现状 52.2知识库问答的主流方法 62.3本章小结 7第三章 KBQA系统框架设计 83.1系统中的知识库 83.2预处理 103.3主题实体链接 113.4关系链推理 123.5重排序 133.6本章小结 13第四章 KBQA系统实现 144.1数据处理 144.1.1数据过滤及清洗 144.1.2知识库拓展 144.1.3加载知识库 154.2中文分词 164.3主题实体链接 164.3.1算法描述 164.3.2词汇特征 184.3.3基于序列标注模型的特征 194.3.4实体链接最终得分 214.4关系链推理 214.4.1算法描述 224.4.2基于字粒度的匹配度 234.4.3基于词粒度的匹配度 254.4.4遇到的问题 264.5问句输入输出 264.6实验结果 274.7本章小结 28第五章总结与展望 295.1本文总结 295.2展望 30参考文献 31致谢 34摘要在当今社会,随着信息技术的飞速发展,人们对于信息准确化的需求越来越高,各种各样的信息获取方式层出不穷,传统的以关键词匹配以及文档检索为基础的搜索方法需要一场变革。现在很多研究者在信息检索中逐渐加入基于知识库的自动问答技术。同时,基于知识库的问答具有更简洁、更高效、更直接和更准确的特点,可以很好的提高获取信息的效率。目前关于中文知识库问答的研究还远远不足。由于中文表达的多样性以及中文句法结构的复杂性,中文知识库问答是一个非常有挑战性的工作。作者因为上述原因选择知识库问答的研究课题。本文主要研究工作如下:1)使用一种基于排序的实体链接方法。这种方法利用词汇特征和基于序列标注模型的语义特征。其中的基于序列标注模型的语义特征有效克服了知识库中实体构词特征稀疏以及无法利用知识库的实体词典等之前无法解决的问题。更适合中文问句主题实体链接。2)使用一种基于匹配度计算的关系链推理方法。这种方法从两个方面去描述问句与候选关系链的匹配程度。在字粒度上,使用char-basedF1BLEU方法,在基于知识库的问答中,我们可以把问句泛化后得到的pattern看做参考译文,候选关系链看做预测译文。在词粒度上,先把问句以及对应的候选关系链用向量表示,然后计算问句和候选关系链的余弦相似度。3)构建了一个基于知识图谱的中文开放领域知识库问答系统。关键词:知识图谱;关系链推理;实体链接;问句分类;相似度计算;自然语言处理 AbstractIntoday'ssociety,withtherapiddevelopmentofinformationtechnology,traditionalsearchenginesbasedonkeywordmatchinganddocumentrankingareinurgentneedofarevolution.Allkindsofinformationacquisitionmethodsemergeinendlessly.Manyresearchersandsearchcompanieshaveintroducedautomaticquestionansweringtechnologyintoinformationretrieval.Knowledge-basedquestionansweringismoreconcise,moreefficient,moredirectandmoreaccurate,whichcangreatlyoptimizetheefficiencyofuserinformationacquisition.Atpresent,theresearchonChineseknowledge-basedquestionansweringisfarfromenough.BecauseofthediversityofChineseexpressionsandthecomplexityofChinesesyntacticstructure,Chineseknowledge-basedquestionansweringisaverychallengingtask.Forthesereasons,theauthorestablishedtheresearchsubjectofChineseknowledge-basedquestionanswering.Themainresearchworkisasfollows:Usingaranking-basedtopicentitylinkingalgorithm.Thismethodtakesadvantageoflexicalfeaturesandsemanticfeaturesbasedonsequenceannotationmodels.Thesemanticfeaturesbasedonthesequenceannotationmodeleffectivelyovercometheproblemsthatcannotbesolvedbeforetheknowledgebaseissparse,andtheentitydictionarythatcannotbeusedintheknowledgebasecannotbesolved.ItismoresuitableforthetopicentitylinkingofChinesequestion.Arelationchaininferencealgorithmbasedoncalculatingmatchingdegreeisused.Thismethoddescribesthematchingdegreebetweenquestionandcandidaterelationshipchainfromtwoaspects.Incharlevel,thechar-basedF1BLEUmethodisused.InKnowledge-BasedQuestionAnswering,wecanrefertothepatternobtainedaftergeneralizationofthequestionasareference,andthecandidaterelationshipchainasapredictivetranslation.Intermsofwordgranularity,thequestionsandcorrespondingcandidatelinkchainsarerepresentedbyvectors,andthenthecosinesimilarityofquestionandcandidaterelationchainiscalculated.ConstructingaChineseopendomainknowledge-basedquestionansweringsystembasedonKnowledgeBase.Keywords:KnowledgeBase;RelationChainInference;EntityLinking;QuestionClassification;QuestionSimilarityCalculation;NaturalLanguageProcessing 第一章 绪论本章首先介绍基于知识图谱的自动问答系统的研究背景,然后简单介绍了什么是知识图谱以及基于知识图谱的问答系统的定义。在本章的最后简要地概括了整篇论文的组织结构。1.1研究背景自然语言处理(NaturalLanguageProcessing)是当前计算机科学领域中的一个非常重要的方向,自然语言指的是在人类漫长的发展史上所创造使用的语言,是人与人之间最基本的交流方式[1]。计算机与人之间通过自然语言进行交流是人工智能中非常重要的一部分。由于自然语言的多样性、抽象性和复杂性,从现有的基础理论和工程技术来看,自然语言处理是计算机科学和人工智能领域中很重要同时又很难解决的问题,有待于更多的理论研究创新和实践探索[2]。自动问答(AutomaticQuestionAnswering)是自然语言处理领域中的一个重要分支,旨在让用户直接通过人类的自然语言问句从计算机中获得期望的答案[3]。近些年兴起的KBQA,可以直接将用户问题在知识库中所对应的实体检索出来,并作为答案返回给用户,是一种更为高效的问答方式[4]。随着互联网的发展,人们使用搜索引擎来获取信息的需求也日期增加,但是基于传统的搜索引擎的方式,得到的结果是数万的链接,用户只需要其中一部分。用户就必须亲自仔细浏览这些网页去寻找自己真正想要的信息,是否存在没有被检索出来的相关网页也无从知晓。如何从浩如烟海的资料中为用户找到所需信息已成为信息时代的一个重要研究课题[5]。1.2知识图谱知识图谱(KnowledgeGraph)是在自动问答系统中广为应用的一种知识库,它最初是由谷歌公司最初提出[6]。知识图谱是由大量的节点以及节点之间的有向边组成。其中节点表示知识库中的实体(Entity),有向边表示实体与实体间的关系(Relation)。从存储结构来看,知识在这种知识库中以“主语—谓词—宾语(SPO)”三元组的形式表示[7]。谓词即表示关系的有向边,主语和宾语即与有向边相连的头节点和尾节点,因此也可以将知识图谱看作一种语义网络。1.3基于知识图谱问答系统近年来,随着大规模知识图谱的构建与完善,基于知识图谱的问答系统逐渐成为自动问答系统中的重要组成部分。基于知识图谱的自动问答的任务是将用户的自然问句转化成某种语义表示,并在知识图谱中进行查询,最终将知识图谱中与问题相关的实体作为答案返回给用户[8]。知识库问答中的核心问题在于如何将用户的非结构化输入与知识库中的结构化数据进行语义匹配,这涉及到自然语言处理中的多项技术[9]。当前很多搜索网站(如谷歌、百度)都可以对用户输入的问句型query提供知识库问答的结果,以便使信息获取的方式更为高效、简洁。1.3本文组织结构本文总共分成五个章节,具体章节结构如下:第一章为绪论。介绍了本毕设系统的研究背景,并对知识图谱以及问题的定义作出简单介绍。第二章介绍了自动问答。内容包括自动问答系统现状、自动问答系统概述、系统结构以及目前有关知识库问答的主流方法。第三章详细介绍了KBQA的系统框架设计。主要包括知识库、预处理、主题实体链接、关系链推理以及重排序。第四章主要是介绍KBQA的系统实现。介绍了构建基于知识图谱的自动问答系统过程中我的主要工作及结果展示。第五章为总结与展望。总结并归纳实现这个毕业设计的自动问答系统所做的工作,并展示了我对自动问答系统以后发展的期待。

第二章 自动问答研究概述自动问答的核心问题是如何深度理解非结构化的自然语言问句,并在结构化知识库中进行查询、匹配和推理,需要结合分词、实体链接、关系链推理等自然语言处理的基础技术。知识库问答简要流程如图2.1所示。图2.1知识库问答流程2.1研究现状自动问答系统,就是在计算机能够理解人们用自然语言提出的问题的基础上进行分析与理解,然后也使用人们日常用的自然语言给出问题的答案[10]。近二十年来,随着互联网的广泛普及以及自然语言处理方向基础技术的飞速发展,自动问答技术又成为研究者关注的热点问题。1995年Dr.Richard开发设计了聊天机器人Alice,正因为这一成果,他在2000-2001期间连续两年获得了人工智能领域的最高荣誉奖--洛伯纳奖;1999年,TextRetrievalConference首次举办了自动问答领域的评测任务,这一活动使得自动问答技术在当时得到飞速发展;随后IBM研发了Watson系统,这一系统在当时与人类的答题比赛中战胜了人类并获得100万美金奖励,这在业内尚属首次;苹果研发的在iOS以及macOS运行的Siri交互系统,不断改变人类与手机的交流沟通的方式,也促使同类产品不断进步;还有很多其它的研究机构以及公司也成功研发基于文字或者语音的自动问答系统,比如谷歌的GoogleNow、亚马逊的Alexa以及微软的小冰[11];随着大规模知识库的构建,基于知识图谱的问答技术也开始迅速发展。主流的知识库问答方法可以分为三类:基于语义解析的方法、基于信息抽取的方法和基于向量建模的方法[12]。2.2知识库问答的主流方法语义解析(SemanticParsing)语义解析这种方法本质上是一种偏向于语言学的方法,它的主体思想是将用户用自然语言表述的语句转化为一系列形式化的形式,在对这个形式化的形式完成解析之后,得到一种可以代替这个问题语义的逻辑形式,接着在知识库里面使用相应的查询语句,搜索出合适的问题答案[13]。问句的结构化表示如图2.2。图2.2问句的结构化表示信息抽取(InformationExtraction)信息抽取方法的思想是对于自然语句,我们提取自然语句当中的实体,接着在知识图谱中搜索有关这个实体的相关实体与关系,这些有关联的实体和关系构成一个知识子图[14]。这个子图里面的每个节点或者节点与节点之间的边都可以作为问句的答案。然后再通过观察问题以及一些已经制定好的规则去抽取出问题的关键,得到问句的特征向量。然后建立分类器对答案进行进一步的筛选,最后得到答案。向量建模(VectorModeling)基于向量建模方法是根据问题得出问题的答案候选,把相关问题和问题的候选答案全部都映射为分布式的表达式,然后使用训练数据对这个表达式进行训练,训练的目标是让问题以及问题的正确答案的向量表达的得分尽最大可能的高[15]。在模型训练完成之后,可以根据问题候选答案的向量表达式子和问题的分数进行ranking,得出问题的答案。2.3本章小结本章主要介绍了自动问答系统的由来及其迅速发展,并介绍了如今有关问答系统方面的研究状况,多个机构都投入许多精力研究自动问答系统,并将自动问答系统加入到自身的产品或者应用中去。接着,对自动问答系统进行简要的阐述,介绍了如今知识库问答的三个主流方法:语义解析、信息抽取、向量建模。基于语义解析的方法特别依赖词汇映射以及人工特征,基于信息抽取很对于层次地表达问句语义不容易做到。近年来兴起深度学习技术,使研究者把知识库问答研究的重点放在了基于向量建模的方法。可以看出当前知识库问答的研究工作更多的是基于英文知识库(FreeBase)和英文的数据集(WebQuestion)上的[16]。针对中文知识库问答的研究工作进行得还远远不够。

第三章 KBQA系统框架设计本文的工作是构建基于知识图谱的自动问答系统。本文设计的KBQA系统框架如图3.1所示。本章介绍系统的预处理、实体链接、关系链推理和重排序等模块。图3.1KBQA系统框架3.1系统中的知识库该知识库是由NLP&CC2016评价任务比赛提供的,包括一个知识库以及用于训练和测试的问题-答案对。大约有43M的SPO数据对,其中大约6M主语,0.6M谓词和16M的宾语。训练集包含14609个问答对,测试包含9870个问答对。答案是人为标记的,大部分是KB中的对象(其余是由人为错误或其他意外原因引起)。SPO对指的是主谓宾三元组,如表3-1所示,其中每一个三元组都可以组成一个句子。主语可以理解为主题实体,谓语和主语可以组成关系链,宾语是问题的答案。表3-1知识库三元组空气干燥|||中文名|||空气干燥空气干燥|||外文名|||airdrying空气干燥|||形式|||两个罗育德|||别名|||罗育德罗育德|||民族|||汉族罗育德|||出生地|||河南郑州于明诠|||出生地|||山东乐陵于明诠|||出生日期|||1963年生于明诠|||职业|||书法家盖盖虫|||日文名|||カブルモ盖盖虫|||种类|||咬住神奇宝贝mention2id是指一个mention对其id的映射,如表3-2所示。这个表主要的作用有两个,一个是解决一些mention不统一的问题,另一个是增加问题的可能性,避免错过正确答案的情况发生。表3-2mention与id的映射石川伯耆守|||石川数正directselling|||直销 直销业 直销模式xenosaga|||异度传说 异度传说(MonolithSoft制作的RPG系列游戏)村官|||村官(大学生村官) 村官(凌雨主演电影) 父子村官揠苗助长|||揠苗助长(美国电影) 揠苗助长(成语) 揠苗助长最重要的事|||最重要的事 それが大事yangjiming|||杨奇鸣美少女战士r|||美少女战士R 美少女战士R(动画《美少女战士》第二部)马丁·泰勒|||马丁·泰勒 马丁·泰勒(英国足球运动员) 马丁·泰勒martintaylor|||马丁·泰勒martintaylor|||马丁·泰勒 马丁·泰勒(英国足球运动员)万家灯火(林兆华李六乙导演话剧)|||万家灯火(林兆华李六乙导演话剧)3.2预处理在预处理模块,要对用户输入的问句进行分词,然后在根据分词结果进行词性标注、命名实体识别以及依存句法分析。1)分词。中文当中有关文本处理的一个最基础的工作就是中文分词,这是自然语言处理问题当中经常需要解决的问题。中文与英文有着明显的不同,英文句子有停顿词,意味着英文词本身就是一个个分开的,而中文则不一样,一句话中一般只有标点符号等分隔,没有词与词的界限,所以当我们在进行有关中文自然语言处理的问题时,通常最一开始需要做的就是进行中文的分词。分词的效果好坏将直接影响后续的对句子的处理。当然对于具体的不同的应用场景,分词的要求也会有相应的偏差。2)词性标注。词性标注的意思是对给句子中的所有的词确定一个合适的标记,这些标记可以是动词、名词、副词等。它是自然语言处理中一个非常重要的基础性任务。词性标注在机器翻译、语音识别、信息检索等领域有着非常广泛的应用。3)命名实体识别。命名实体识别又叫做“专名识别”。命名实体识别目前的难点在于现在命名实体的数量集异常的庞大并且还在不停的增加,所以在词典中纳入所有的命名实体是不切实际的方法。据统计,人民日报的2,305,896条语料库中存在有19,965个人名,这些人名绝大多数都没有录入到词典里[17];另一方面,命名实体构成的规则是非常复杂的,很难去找到这之间的规律,因此很难通过简单的方法去识别命名实体。当前比较传统的命名实体识别方法主要分为以下两种:基于规则的方法基于统计机器学习方法基于规则的方法需要我们人工去构造我们需要的规则模板和我们需要的规则及特征(如中心词、关键词、停顿词、标点符号、指示词、位置词、方向词等),用我们构造的这些规则模板和特征对目标文本进行模式上的匹配和字符串级别的匹配[18]。这种构建规则模板和特征的方法是基于知识库和词典,只有在它们基础上构造出的规则模板和特征才能减少错误的影响[19]。人工构造我们需要的规则的这种方式工作量大,并且系统的可移植性低,不具有普遍性。4)依存句法分析。依存句法分析是自然语言处理的核心技术,它用于分析句子的成分,比如主谓宾定状补等成分,并组织起句法结构,例如主谓语、结构、定中结构等[20]。它主要是通过分析句子里面的词语与词语之间的依赖关系,并用树状图结构来表示整个句子。3.3主题实体链接如前文所说,本系统使用的知识库异常庞大,如果把知识库当中的每一个实体都当做候选答案,那么计算的开销就非常大,并且影响性能与效果。因此最好能找到一个实体,以这个实体为起点,将知识图谱中与这个实体有直接关系或者间接联系的实体作为问题的候选答案。如题3.4所示。图3.4主题实体链接模块在基于排序的主题实体链接模块中,我们最开始需要在问句中找到候选mention(指实体名)。本文通过构造N-gram词的方式来构造候选实体。对于用户的输入问句,N不是一个固定数值,N的取值范围是1到句子包含词的个数,因此我们可以根据用户问句的分词结果列举出所有的可能的候选实体。再将构造出的所有N-gram词去遍历知识库,与知识库中的mention列表进行匹配,能与知识库中匹配成功的词则被认作是输入问句的候选mention。然后还要进行特征提取。接着根据这些特征去计算候选mention的得分。最后根据知识库里面的mention到实体的对应关系,将候选mention对应到候选实体。这样我们就得到了问句的候选实体及其对应的得分情况。整体如图3.5。图3.5主题实体链接模块流程3.4关系链推理我们的知识库,可以理解成一个知识图谱。在这当中,每个实体都对应一个节点,实体与实体之间的关系用图中的边表示。从知识图谱中的X出发,沿着边一直走,如果能到达实体Y对应的节点,那么认为实体X和实体Y存在路径。对于一个问句,如果知识库能够解决这个问句,换句话说,如果能够找到问题的答案,那么问句的主题实体和问句的答案实体在知识图谱里面一定存在路径。所以我们在找到问句的主题实体之后,找出在知识图谱里面所以与主题实体有直接或者间接联系的实体,我们把这些实体统一叫作候选实体,问题的答案肯定在这些候选实体里面。例如在问句“姚明的老婆是什么星座?”中,找到主题实体“姚明”后,可以根据对应的关系链“妻子-星座”找到对应的答案“天蝎座”。这一过程就叫作关系链推理如图3.4所示。图3.4关系链推理3.5重排序问句pattern和问句pattern所对应的关系链中出现相同词的概率通常比较高。比如在问句pattern“<entity>/这/部/专辑/是/什么/时间/发行/的/?”与其中一个候选关系链“发行-时间”的共现词个数比“制作人”、“发行-地点”“专辑-歌曲”这些候选的重复词多。从前面章节我们知道,候选答案是否是问题的答案由两个因素决定:候选答案对应的候选主题实体是否是问句中正确的主题实体候选答案对应的候选关系链是否能与问句很好地匹配所以我们在选择最后的输出答案的时候,实体链接模块(3.3节)的得分和关系链推理模块(3.4节)的得分都需要考虑到。我们采用的加权求和将实体链接和关系链得分线性结合在一起作为候选答案实体的最终得分。根据这个得分对所以候选答案进行排序,取top-1作为答案输出。3.6本章小结本章展示了KBQA系统框架设计。包括问句的预处理模块、主题实体链接模块、关系链推理模块和重排序模块。在预处理模块模块介绍了分词、词性标注、命名实体识别和依存句法分析等知识点。接着详细阐述了实体链接模块和关系链推理模块的知识点。最后,介绍了基于实体链接和关系链推理模块的得分去重排序,取最高得分作为最终答案。

第四章 KBQA系统实现第三章讲述了本毕业设计自动问答系统的整体框架,介绍了这之间的各个模块。在了解了自动问答系统的框架之后,下面介绍在系统实现过程中主要工作。4.1数据处理4.1.1数据过滤及清洗使用如下两类规则对数据进行处理:如图4.1正则表达过滤非关键词及图4.2数据清洗规则。图4.1正则表达式过滤非核心词图4.2数据清洗规则4.1.2知识库拓展在仔细观察了知识库以及问句之后,我使用如下两个规则对知识库进行拓展。对于mention2id映射表,把所有形如“string+足球俱乐部|||id”这样的元组,拓展成“string|||id”以及“string+俱乐部|||id”。因为有很多的问句中都会类似于“巴黎圣日耳曼是哪一年成立的?”和“巴黎圣日耳曼俱乐部是哪一年成立的?”,为了统一,我们把这些表示同一个意思的词语映射为同一个mention的id处理。这增加了约608K的数据。对于三元组知识库。把所有第一列元素中含有“简称”、“全称”以及“别名”都替换成“全称”,把“球队昵称”都替换成“球队全称”,把这些替换的作为拓展的知识库使用。这增加了约352M数据。4.1.3加载知识库本文知识库规模如表4-1所示:表4-1知识库规模三元组43,063,796条拓展三元组6,578,077条mention到id的映射7,623,034条拓展的映射11,086条其中原三元组有43,063,796条数据,拓展三元组有6,578,077条数据。这些三元组我们可以理解为主谓宾。mention到id的映射有7,623,034条,拓展映射有11,086条。存放实体与其别名的映射。这个表主要的作用有两个,一个是解决一些mention不统一的问题,另一个是增加问题的可能性,避免错过正确答案的情况发生。设计了如下的KnowledgeEngine类加载知识库。封装了如图4.3的各个函数。图4.3KnowledgeEngine类结构设计其中load_name_2_id函数加载知识库中mention到id的映射及其拓展,load_triple函数加载知识库中的三元组及其拓展。其它函数为后续操作服务。4.2中文分词在人和机器在进行自然语言交互的时候,如果能有一个精确地中文分词系统作为基础,那么能有效帮助计算机理解用户的自然语句的含义。由于中文的特殊性,现阶段中文分词研究有如下四个难题:词没有清晰的界定是先分词还是先理解意思如何消除分词歧义分词系统或者说词库还没有录用的词本系统的分词使用的是NLPIR工具和苏州大学的分词系统,两个结合。最初使用的是NLPIR分词工具,后来在使用过程中发现NLPIR会有一些postag缺失导致的问题。当遇到这种问题时,会使用苏大分词系统。举例如下:儿童一岁生日蛋糕NLPIR:['儿童','一','岁','生日']苏大系统:['儿童','一','岁','生日','蛋糕']下面是具体实现:deftokenizer_nlpir(s):res=[item[0]foriteminpynlpir.segment(s)]if''.join(res)!=s.replace('',''):res=tokenizer_suda(s)returnresres=tokenizer_nlpir(s)4.3主题实体链接在实体链接模块,输入是问句经过预处理之后产生的结果,输出是候选实体及候选实体对应的得分。候选实体的得分越高,是问句中的主题实体的可能性越大。4.3.1算法描述在基于排序的主题实体链接模块中,我们最开始需要在问句中找到候选mention(指实体名)。本文通过构造N-gram词的方式来构造候选实体。对于用户的输入问句,N不是一个固定数值,N的取值范围是1到句子包含词的个数,因此我们可以根据用户问句的分词结果列举出所有的可能的候选实体。再将构造出的所有N-gram词去遍历知识库,与知识库中的mention列表进行匹配,能与知识库中匹配成功的词则被认作是输入问句的候选mention。然后还需要对上续步骤中选出的候选mention进行特征提取。在知识库中,有很多类似于地点、书名、歌名等类型的实体,还有“是”、“什么”、“在哪”这种特别常见的词是知识库中实体的可能性非常大,但是这些词作为问句的主题实体的可能性非常小,这些词会对主题实体链接模块形成干扰。对于这类粒度比较小但是非常常见的词可以用停用词表去对这些词进行特殊处理,而像“在哪里”这种粒度稍微大点的,停用词表很难去覆盖到。所以我们应该选择合适的特征去排除上面说的这类词。对于这类问题,我们选择一些词汇特征(例如IDF)解决,效果也很好。但对于问句“苏州大学计算机学院的尔蒙的生日是什么时候?”,从词汇特征来看,“苏州大学计算机学院”和“尔蒙”都可能是主题实体,因此需要依靠句法结构特征以及更高级的语义特征去判断。本文采用几种常见的特征,这些特征可以分为词汇特征和基于序列标注模型的特征。他们从不同角度表明了一个候选实体作为最后主题实体的可能性大小。然后根据这些特征去计算候选mention的得分。最后根据知识库里面的mention到实体的对应关系,将候选mention对应到候选实体。这样我们就得到了问句的候选实体及其对应的得分情况。具体的实现如下:defel_processor(self):self.generate_train_cand_mentions()#生成N_gram候选self.el_calculate_feature_score()#计算特征得分self.reserve_top_n_cand_mentions(n=self.el_top_n)#取前5个数self.generate_train_cand_info()#mention映射到实体self.train_set_linking()为了对不同的实体计算得分,我们选择选择两类特征:词汇特征:主要考虑tf-idf得分,实体长度,是否包含书名号,是否在停用词列表。基于序列标注模型的特征:本系统使用双向LSTM进行序列标注建模,并改进了一般序列标注模型的损失函数,使模型更加依赖于上下文特征,而不是构词特征,可以缓解特征稀疏的问题。下面是计算特征得分的具体实现封装:defel_calculate_feature_score(self):self.cal_mentions_tf_idf_score()self.cal_mentions_length_score()self.cal_semantic_feature_score()self.cal_final_score()4.3.2词汇特征采用下面几种词汇特征:候选实体的长度在句子中,候选mention的长度越大,它作为候选实体的可能性越高。例如在句子“韭菜炒鸡蛋是如何做成的?”中,根据候选实体的长度特征可以认为“韭菜炒鸡蛋”比“韭菜”或者“鸡蛋”更高的分数,可以把“韭菜炒鸡蛋”认为是候选实体。候选实体是否在设定的停用词表中对于停用词表,像“谁”、“哪儿”、“什么”、“在”这样的词经常出现在我们的句子里面,然而这些词作为主题实体的概率是很低的,一般主体实体不是这类词[21]。为了排除这些词的干扰,本系统使用的停用词表包含约600个停用词。候选实体是否是命名实体对于候选实体,如果它是人名、菜名、机构名称、地点等命名实体的话,比如像“王强”、“淮扬菜”“苏州大学”这些词出现在问句的时候,很可能是主题实体,相应的我们需要提高这个词的分数。我们可以很好的识别出问句中的候选实体是否是命名实体。候选实体是否在书名号中在问句中,当含有书名号的书籍出现在里面时,这本书作为句子的主题实体的可能性是非常大的,例如在问句“《雪中悍刀行》这本书是谁编写的?”中,“雪中悍刀行”是句子的主题实体。所以把候选实体是否在书名号中作为一项词汇特征考虑。计算IDF值IDF值是度量词语普遍性的一个重要指标。它的含义是,如果包含某个词的句子越少,那么这个词对于其他词的区分度就越大,他的重要性也就越大,IDF的值也就越大[22]。它的计算公式如式4-1所示。IDF式4-1其中D表示文档总数,这边每个文档可以理解为不同的句子,ct表示包含词t的文档个数,知识库中有很多像“在什么地方”、“在什么时候”、“在哪里”这类的高频mention,这类词特别容易出现在各种句子里面,然而作为主题实体的可能性太低。这些词的粒度比较大,意思是容易包含其他实体,停用词表一般很难覆盖这类词,同时,这样的mention包含的其他实体都是各门各类很宽泛的词,正因如此,它们的IDF值都很小。所以经过分析,我们选择IDF4.3.3基于序列标注模型的特征本系统使用双向LSTM网络来建模。双向的LSTM模型相比较于词汇特征来说能够能好的顾及词与词之间的前后关联,而不是局限于词语词义本身的意思。本系统模型使用的词向量是使用word2vec中的skip-gram模型(跳字模型)在百科知识库训练得到的。模型的结构图如图4.4所示。首先把每个句子都转换成向量表示,然后对其进行softmax分类,分类标记分为三类“BEG”、“END”、“NOR”。“BEG”标记表示主题实体前一个位置,“END”标记表示主题实体后的一个位置,“NOR”标记表示除“BEG”标记和“ENG”标记之外的其他所有位置。图4.4对候选mention打分的序列标注模型对于一个候选实体,它作为主题实体的概率得分用公式4-2计算。其中Sj(t)表示句子的第j个位置对应的是t标签的概率。即Sx("BEG")表示句子的第x个位置是“BEG”标签的概率。w表示句子中的候选mention,x和P式4-2我们采用了交叉熵损失函数去训练这个模型,计算公式如4-3所示。loss=-式4-3这里的yw表示候选w是否是主题实体。在候选词w是对的情况下yw=1。在其他情况下y与传统的模型不同,本系统使用的双向LSTM模型对主题实体的前后词标记特殊的标注,对主题实体内部标记普通的标注。这样的好处是可以使得模型能够顾及主题实体的上下文信息,减少对主题实体内部特征的学习,换句话说,我们的模型减少了候选实体内部对于结果的影响。除此以外,该模型对每一个候选mention都输出一个得分,这个得分经过softmax操作后变为概率化的得分。我们最后把这个概率化的得分作为一项特征得分,和词汇特征得分一起考虑。从而使系统的整体效果得到提升。下面是模型的加载。需要说明的是这个模型是预训练过的,我们只需要使用这个模型,给它传递合适的数据与参数,它就能给我相应数据的结果。defload_mention_model(self):model_path='./model/params_cache/bi-gru0.params'model_name='gru'bidirectional=Truehidden_dim=300num_layer=2dropout_rate=0.2model=LSTMModel(mode=model_name,hidden_dim=hidden_dim,num_layer=num_layer,dropout=dropout_rate,bidirectional=bidirectional)model.load_params(model_path,ctx=ctx)returnmodel以下是具体的调用:batch_datas代表候选实体,丢到模型中,会输出对应的概率化得分。这边需要注意的是输入参数的格式必须要正确。可以参考说明文档。data=nd.array(batch_datas).Thidden=self.mention_model.begin_state(func=nd.zeros,batch_size=data.shape[1])output,state=self.mention_model(data,hidden,data.shape[1])scores=output[:,1:]4.3.4实体链接最终得分最终的实体链接得分公式如式3-4所示。S式4-4其中Sw是词汇特征得分,Sm是基于序列标注模型的得分,4.4关系链推理在得到问句的候选的主题实体之后,还需要去知识库中找到这些实体对应的节点,将与这些节点直接连接或间接连接的节点抽取出来得到一个知识库的子图。我们子图中的每一个节点都当作候选答案。对于这当中的每一个候选答案,主题实体与其路径上的边所对应的关系是判断这个主题实体是否是正确答案的重要依据。我们把这些路径上的关系序列叫作关系链。在这里,把关系链推理当成是匹配度计算问题。首先对于所有的候选实体,找到与它们相关的子图,子图里面的实体都是候选答案,同时找出每个实体对应的关系链。然后把我们找到的关系链中的关系按照从主题实体到候选答案的顺序组成字符串序列。接着对于每一个候选关系链和问句做不同的匹配度计算。使用不同层次的匹配作为特征进行打分。得分最高的关系链最有可能问句对应。4.4.1算法描述本系统输入是问句、问句在预处理模块的结果以及在实体链接模块得到的候选实体。输出的是问句在知识图谱中的候选关系链的得分。得分越高,是问句对应的结果关系链的可能性越大。算法分为以下几个步骤:生成候选关系链对于预处理模块出来的每一个候选实体,从这个实体在对应的知识图谱中的节点出发,在知识库中搜索和它直接或者间接相连的节点,这些节点为候选答案实体。对于每一个候选主题实体来说,把与之相应的候选答案在知识图谱中路径上的关系按顺序连成字符串,这就叫作候选关系链[23]。问句范化成不同的pattern对于所有不同的候选实体,我们将问句做出一点改变,把候选主题实体用“<entity>”替换,例如对于问句“李刚的儿子是哪个大学的?”和当前的候选主题实体“李刚”,我们把问句范化成“<entity>/的/儿子/是/哪个/大学/的/?”,如果候选关系链“儿子-大学”是根据候选主题实体“李刚”找到的,那么“<entity>/的/儿子/是/哪个/大学/的/?”就是与这个问句相对应的问句的pattern。对于“姚明的老婆是什么星座?”这一问句,我们可以范化成“<entity>/的/老婆/是/什么/星座/?”,如图4.5所示。图4.5问句范化计算匹配度对于问句泛化步骤中的候选关系链及其相应的pattern,本系统使用基于字粒度和词粒度的匹配度。具体的计算在4.6节。计算候选得分使用基于字粒度和词粒度的匹配度得分的线性组合在一起,输出候选关系链得分。对于问句泛化步骤中的候选关系链及其相应的pattern,本系统使用基于字粒度和词粒度的匹配度。最后使用两个特征计算得分的线性组合。4.4.2基于字粒度的匹配度中文表述有很多同义词意思特别接近,例如“妈妈”与“妈咪”、“喜欢”与“喜爱”。正因为这样,问句的主体部分和主体部分对应的关系链往往比其他候选词接近,例如“李刚喜欢什么样的衣服?”与相应的“喜欢的衣服”之间的相似度,比与“体重”、“学历”、“籍贯”这些候选词相似度要高。因此,在字粒度上计算候选关系链的相似度是一个非常有必要而且有效的方法。本系统使用的是基于预测译文和参考译文中的N-gram词的共现程度去评价预测译文的好坏。在KBQA中,我们可以把问句泛化后得到的pattern看做参考译文,候选关系链看做预测译文。使用改进后的char-basedF1BLEU。对于问句patternp和候选关系链c,它们的字粒度的匹配值可以用公式4-5表示。假设C是一个参考译文集合,预测译文c∈C,S是参考译文的集合,s是S中与c对应的参考译文。其中lc表示候选关系链的字数,lp表示问句pattern的字数,z表示最高取到z元字,K表示当前候选关系链取n元字的时候字的集合,n元词k∈K,lenn(c)指的是候选关系链c的n元字个数,lenn(soverlapPRFbBLEUCBF-式4-5其中overlapk(c,p)表示n元词k在c和s中重合频次,count(s,k)表示n元词k在举例来说,对于QA中的:问题:我们这首歌一共持续多长时间?候选关系链:歌曲时长如果我们只取unigram(泛化后的<entity>作为一个单独的字进行处理),所以有如下:参考译文:[<entity>,这,首,歌,一,共,持,续,多,长,时,间,?]预测译文:[歌,曲,时,长]其中重合字有[歌,时,长],所以:kp4.4.3基于词粒度的匹配度问句pattern和问句pattern相应的关系链中出现相同词的概率通常比较高。比如在问句pattern“<entity>/这/本/专辑/是/什么/时间/发行/的/?”与其中一个候选关系链“发行-时间”的共现词个数比“制作人”、“发行-地点”“专辑-歌曲”这些候选的重复词多。所以,也可以使用词粒度的相似度去进行匹配度计算[25]。本系统使用的思想是将句子变成用向量表示。在此之前,对候选关系链和问句pattern过一遍停用词表,去掉所以的停用词,剩下的每一个词都代表一个维度。例如:问句pattern:<entity>/这/本/专辑/是/什么/时间/发行/的/?关系链:发行-时间去掉停用词后的集合是{本,专辑,时间,发行},这里把“<entity>”当成停用词。那么有如下:问句pattern的向量:[1,1,1,1]对应关系链的向量:[0,0,1,1]它们的相似度可以用公式4-6表示,即余弦相似度。公式中vc表示候选关系链c的空间向量,vp表示问句sin式4-6计算流程如图4.6所示。图4.6基于词粒度的匹配度计算4.4.4遇到的问题在中文问句中,我们可以发现,用于问句的关系链推理的关键词,它出现的位置有一种偏好性,几乎所有的中文问句,关系链推理的关键词都出现在一个句子的结尾或者靠后的位置,比如:《大学计算机基础》一共有多少页?韩国球员闵勋基的身高是多少?球员尼亚尔的出生日期?对于这个特点,我们使用如下的解决方案:对overlapkoverlap式4-7其中的γ是超参数,需要进行设置,它的作用是增加靠近末尾的实体的分数比重。indexn(s)4.5问句输入输出由于数据集太大,工作流程比较繁琐,每次执行加载时间较长。为了便于查看效果,所有问题写进文件,每次批量处理,而不是仅仅处理一句。问句如图4.7所示。图4.7问句输入对于上面的部分问题,系统输出的答案如图4.8所示。图4.8问题答案4.6实验结果我们把训练集按照8:1:1划分为内部训练集、验证集以及测试集。实体链接阶段我们使用内部训练集以及fastText训练词向量。表4-2是实体链接阶段的结果:表4-2实体链接结果数据集准确率内部划分训练集97.26内部划分验证集97.25内部划分测试集97.17测试集98.01对于γ参数的调试,如图4.9所示:图4.9γ参数调试横坐标表示γ的取值,纵坐标F1值。当γ取10附近时候效果最好,精确率和召回率的调和均值F1是65.01。4.7本章小结本章主要是介绍自动问答系统的实现。对于数据处理、分词、实体链接部分做出了详细的说明。对于关系链推理模块,仅仅给出介绍,了解其中的方法,没有给出具体的实现。这是因为这部分基本是把给出的公式翻译成代码。在数据处理模块,介绍了数据过滤的规则以及知识库拓展的方法,在这之后介绍了为了加载知识库所设计的类及其方法。然后,对中文分词做出介绍,并且给出了本系统使用的分词系统。接着详细介绍了实体链接部分,包括其中的算法描述,以及其中的特征选择。之后介绍自动问答系统的具体输入及其输入格式、输出以及输出格式。最后,给出了实验的最终结果F1值。

第五章总结与展望5.1本文总结在系统构建开始前,首先需要对数据进行处理,包括非关键词过滤以及数据清洗。主要分为两条线。第一条是对知识库来说,首先对于给定的数据集,我们对它做出了一些预处理,构建了知识图谱,简单点说就是把知识库中的每一条原本不相关的实体但是在事实上有关联的相互关联,这是第二条线处理的基础。第二条线是对于用户的问句来说的,首先对问句进行预先处理,预先处理包括中文分词以及相关问句的中的实体识别,初步找出候选的实体。然后进行主题实体链接,找到一个实体,以这个实体为起点,将知识图谱中与这个实体有直接关系或者间接联系的实体作为问题的候选答案[26]。接着,进入关系链推理模块。在找到候选主题实体后,我们需要在知识库中找到和这个实体有关联的实体,这些实体我们认为是候选答案。而决定答案正确性的是实体之间关系,因此我们只要找出与主题实体最相关的关系链,那么就能顺着关系链找到对应的答案[27]。总的来说,本文的主要贡献可以总结为以下几点:1)设计了系统的整体框架。2)独立完成对知识库进行数据处理。包括数据清洗、知识库扩展以及加载知识库。2)实现问句的分词模块。使用NLPIR工具以及苏大分词系统相结合。3)完成了基于排序的实体链接模块。这里面利用词汇特征(字符串长度、是否是停用词、平均IDF等)和基于序列标注模型的语义特征。首先需要构建问句的N-gram词,然后用上面的特征对这些词进行打分,取得分最高的作为候选主题实体链接进入下一环节。其中基于序列标注模型的语义特征使用深度学习的方法,利用训练好的模型去对实体进行打分。4)在现有的知识库问答系统的基础上构建了一个基于知识图谱的中文开放领域知识库问答系统。5.2展望然而,本文的方法还有很多不足,可以提高的地方如下:在分词阶段,我们可以提高分词准确度,辅以人工进行词语修正,加入手工的规则,将修正的词语作为扩展词典,分词准确度将更高。在主题实体链接模块,在进行特征提取时,我们使用的特征选择是两种,一种是词汇特征,另一种模型特征是基于序列标注。我们还可以考虑加入句法特征,充分考虑句子的结构信息,因为这些信息在我们处理自然无语言任务时有时会有不错的效果[28]。在关系链推理模块,我们仅仅考虑基于字粒度以及词粒度的匹配度计算,这两个都是字面的匹配度,还可以考虑基于语义匹配的相似度计算,还可以加入词位置信息,还有句法信息等。可以对问句进行语义分析、依存句法分析和CCG(组合范畴法)[29]抽取出问题的主要问题点。随着中文信息处理技术以及人工智能的进一步发展,也使得基于知识图谱的自动问答系统的研究越来越成熟。自动问答系统回答的准确度也一年比一年有了提高[30]。由于中文的特性,汉字较多,同义词比较多,一词多用比较多,各种成语典故以及句子结构复杂,各种表述层出不穷,中文的自动问答系统相比于其他语言的问答系统要困难得多[31]。如果能够建立一个相对完善而又相对完备的知识图谱,那么对自动问答系统的准确度将有个较大的提升。所以,当前可以先进行中文知识图谱的建立工作,逐渐建立一个相对完善而又相对完备的知识图谱。我们已经开始寻找大量中文语料,开始关于这方面的工作,希望基于知识图谱的知识库问答可以更好更方便地帮助更多人分担繁琐而又重要的前期工作。

参考文献[1]郑实福,刘挺,秦兵,李生.自动问答综述[J].中文信息学报,2002,(06):46-52.[2]刘里,曾庆田.自动问答系统研究综述[J].山东科技大学学报(自然科学版),2007,(04):73-76.[3]VoorheesEM,BucklandL.OverviewoftheTREC2003QuestionAnsweringTrack[C]//TREC.2003,2003:54-68.[4]LeeCW,DayMY,SungCL,etal.Chinese-ChineseandEnglish-ChineseQuestionAnsweringwithASQAatNTCIR-6CLQA[C]//NTCIR.2007.[5]高俊杰.基于领域本体的自动问答系统关键技术研究[A].中国中文信息学会.中国计算机语言学研究前沿进展(2007-2009)[C].中国中文信息学会:,2009:6.[6]黄昌宁.中文信息处理中的分词问题[J].语言文字应用,1997,(01):74-80.[7]SproatR,EmersonT.ThefirstinternationalChinesewordsegmentationbakeoff[C]//ProceedingsofthesecondSIGHANworkshoponChineselanguageprocessing-Volume17.AssociationforComputationalLinguistics,2003:133-143.[8]BlackEP.Trie,dictionaryofAlgorithmsandDataStructures[J].NationalInstituteofStandardsandTechnology,Archivedfromtheoriginalon,2010:05-19.[9]ZhangHP,YuHK,XiongDY,etal.HHMM-basedChineselexicalanalyzerICTCLAS[C]//ProceedingsofthesecondSIGHANworkshoponChineselanguageprocessing-Volume17.AssociationforComputationalLinguistics,2003:184-187.[10]杨小平,丁浩,黄都培.基于向量空间模型的中文信息检索技术研究[J].计算机工程与应用,2003,(15):109-111.[11]郭庆琳,李艳梅,唐琦.基于VSM的文本相似度计算的研究[J].计算机应用研究,2008,(11):3256-3258.[12]XueN,ConverseSP.CombiningclassifiersforChinesewordsegmentation[C]//ProceedingsofthefirstSIGHANworkshoponChineselanguageprocessing-Volume18.AssociationforComputationalLinguistics,2002:1-7.[13]ForneyGD.Theviterbialgorithm[J].ProceedingsoftheIEEE,1973,61(3):268-278.[14]田久乐,赵蔚.基于同义词词林的词语相似度计算方法[J].吉林大学学报(信息科学版),2010,(06):602-608[15]AltmanNS.Anintroductiontokernelandnearest-neighbornonparametricregression[J].TheAmericanStatistician,1992,46(3):175-185.[16]SaltonG,WongA,YangCS.Avectorspacemodelforautomaticindexing[J].CommunicationsoftheACM,1975,18(11):613-620.[17]MihalceaR,TarauP.TextRank:Bringingorderintotexts[C].AssociationforComputationalLinguistics,2004.[18]RFlorian,AIttycheriah,HJing,TZhang.Namedentityrecognitionthroughclassifiercombination2003,4:168-171.[J].ConferenceonNaturalLanguageLearningatHlt-naacl,2003,4:168-171.[19]YZhang,ZXu,TZhang.FusionofMultipleFeaturesforChineseNamedEntityRecognitionBasedonCRFModel[J].AsiaInformationRetrievalConferenceonInformationRetrievalTechnology,2008,45(6):95-106.[20]GLample,MBallesteros,SSubramanian,KKawakami,CDyer.NeuralArchitecturesforNamedEntityRecognition[J].NAACL.2016.[21]K.-J.Chen,S.-H.Liu.WordidentificationforMandarinChinesesentences[C].Proceedingsofthe14thconferenceonComputationallinguistics(COLING1992),Nantes,France,1992,101–107[22]N.Xue,etal.Chinesewordsegmentationascharactertagging[J].ComputationalLinguisticsandChineseLanguageProcessing,2003,8(1):29–48[23]M.Wang,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论