版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
毕业设计(论文)学生姓名:指导教师:所在学院:计算机与通信工程 本人声明:1、本人所呈交的毕业设计(论文)是在老师指导下进行的研究(设计)工作及取得的研究(设计)成果;使用过材料;3、我承诺,本人提交的毕业设计(论文)中的所有内容均真实、可信。基于知识图谱的问答系统基于知识图谱的问答系统在人工智能飞速发展的现在,人们更青睐于以一种自然语言交流的方式获得更便捷、更高效的服务,即自动问答系统。同时,随着数据的不断增长,人们希望在知识资源及其载体之间形成网络,便于分析它们之间的相互联系,这种理论被称为知识图谱。知识图谱为任务型问答系统提供了技术支持,能够更高质量地满足用户的需求。对于问答系统的研究可以分为开放域问答系统和垂直邻域问答系统,在各个垂直领域,由于领域范围小,特征明显,人们已经做了大量尝试。但现在市面上仍然缺少成熟地针对开放域的问答系统,通过对开放域问答系统进行研究,能够更好地挖掘其中的通用方法,便于移植到各个垂直领域。因此,开展基于知识图谱的中文问答系统的研究极有必要。在这样的背景下,通过对知识图谱自动问答相关技术的研究,目标是提供一个精准的基于开放域的,同时支持多轮问答的中文知识图谱智能问答平台。本文主要工作如下:第一,完成了开放域知识图谱的构建,其中,利用爬虫等技术,对多源异构的数据进行三元组的提取,存入Neo4j图形数据库中。第二,实现了任务型问答系统的搭建,通过对用户输入的问题进行实体识别、关系抽取、意图识别、相似度计算等操作,转化为数据库查询语句,返回用户想第三,实现了非任务型问答系统的搭建,基于大量的问答数据,使用Seq2Seq模型进行训练,并引入attention机制,加快模型训练。第四,实现了多轮问答机制,利用上下文有关信息,完成指代消解、找出省略或隐藏的实体或意图。关键词:问答系统;知识图谱;任务型问答;非任务型问答;多轮对话基于知识图谱的问答系统Withtherapiddevelopmentofartificialinconvenientandefficientservicesbquestionansweringsystembasedonartificiarequire.Atthesametime,withthecontinuousgrowthofdata,peoplehopetousenetworktofacilitatetheanalysisoftheknowledgegraph.Theemergenceofknowledgegtask-basedquestionansweringsystems,whichcanmeequestionansweringsystemandverticalneigheachverticalfield,duetothesmallhavemadealotofattempts.However,thertoprovideanaccurateChineseplatformbasedonopendomainandsThemainworkofthispaperisasfollows:First,theconstructionof基于知识图谱的问答系统Second,theestablishmentofatask-basedquestionansweringByperformingentityrecognition,relationshipextrintodatabasequerystatemFourth,amulti-roundquestion-answeringmechanismisimplemented,whichKeywords:questionansweringsystem;knowledgegrapanswer;non-task-basedquestionandanswer;multi-rounddialogue基于知识图谱的问答系统 11.1课题研究背景及意义 11.2国内外研究现状 21.2.1知识图谱的研究现状 21.2.2问答系统的研究现状 41.3本文组织结构 6 72.1系统需求分析 72.1.1用户需求分析 72.1.2技术需求分析 82.2可行性分析 92.3系统功能模块设计 92.3系统总体架构 3知识图谱的构建 3.1知识图谱总体框架 3.2知识图谱数据获取 3.2.1数据抽取 3.2.2数据清洗 3.2.3三元组的构建 3.3知识图谱数据存储 3.4知识图谱可视化展示 4.1任务型问答模块的设计和实现 4.1.1实体和属性识别 4.1.3相似度计算 長沙理工大学基于知识图谱的问答系统4.1.2问题意图分类 4.1.4答案生成 4.2非任务型问答模块的设计和实现 244.3多轮问答模块的设计和实现 5.1系统后台实现 5.2系统前端实现 5.2.1系统首页 5.3系统测试 6总结与展望 6.2工作展望 致谢 附录 基于知识图谱的问答系统1在本章首先将介绍问答系统的选题背景及意义,分别分析知识图谱和问答系统的国内外研究现状,最后再给出论文的组织结构信息爆炸式的发展,虽然给人们提供了方便,但人们获取精确信息的时间和复杂性大大提升。人们通常花费更多的时间进行搜索,而不是具体使用。自从搜索引擎诞生,搜索引擎在海量数据中对用户问题中的关键字进行检索,获得按照相关度排序的答案文档。用户还需要进入具体网页才能获取到想要的答案。不同于传统的搜索引擎,问答系统能帮助用户快速准确地获取所需要的信息,不需要用户主动判断,该系统通过对用户输入的自然语言进行分析,然后在理解之后,经过查询或生成等处理流程直接将答案返回给用户,而不需要使用者再进行二次处理,方便快捷。问答系统已经不是一个新概念,从最初的图灵测试到模板匹配问答,再到信息检索问答,在技术创新和数据发展庞大的双重作用下,问答系统不断演化发展发展,目前,市面上有三种常见的问答系统:(1)基于检索的问答系统,这类系统通常会利用自然语言处理相关工具提取出问题中所包含的信息和关键字。只能回答问答库中已经预先设定好的问题。(2)基于社区知识库的问答系统,通过在网络社区、论坛、知识库中进行检索,从而获得完全相同或者具有一定相似度的问题,并返回问题的答案。(3)基于知识图谱的问答系统,将海量的数据构建成知识图谱,再利用自然语言处理相关技术提取实体和属性、识别对应意图,最后转化为结构化的查询语句,从知识图谱中查询出相关联的知识,能够给出更为精确的答案。知识图谱是知识库与语义网络的有机结合。它具有很强的组织、管理和理解网络中的大量信息的能力,为问题系统提供了一个简洁、结构化的三元组知识。知识图谱中的知识大多以三元组形式存储,包括<实体,关系,实体>和<实体,属性,性值>形式。根据所覆盖知识的领域范围,知识图谱可被分为基于开放域的百科类知识图谱(例如Dbpedia、zhishi知识图谱等)和基于垂直领域知识图基于知识图谱的问答系统2谱(如医疗知识图谱、电商领域知识图谱等)。本文所涉及的知识图谱,为基于中文开放域的百科知识图谱。随着大数据计算基础设施和深度学习技术的不断完善成熟,学术界和工业界在问答系统上开展了深度研究和应用,主要涉及的领域是智能医疗、金融和问答搜索,市场上仍缺乏对基于知识图谱和开放域的,同时支持多轮问答的中文问答系统的研究,这类系统更具有通用性,可迁移至其他垂直领域,因此,对中文开放域问答系统开展研究是很有必要的,通过对知识图谱构建、任务型和非任务型问答、多轮问答等相关技术的研究,目标是提供一个支持多轮问答的中文问答系统。本节分别对知识图谱和问答系统的研究现状展开说明,并对相关技术的发展趋1.2.1知识图谱的研究现状在第五届国际人工智能会议上,知识工程的概念被提了出来,从那以后,关于知识本体论的研究,就成为了一个计算机科学热门的研究方向。知识图谱是对语义网络和本体论的继承,特别是关于知识的组织和表达,使知识更容易在人机交互中进行交换、流通和加工。谷歌于2012年推出了GoogleKnowledgeGraph,即知识图谱,并使用该技术对Google搜索引擎进行性能和搜索结果优化,以获得更为准确的结果。Google搜索的示例图如图1.1。三楼i第W.1基于知识图谱的问答系统3知识图谱作为一个被广泛使用的复杂的系统,它往往是更大的系统的一部分并属于更大的系统。知识图谱的构建是一项复杂的工程,涉及知识提取、知识融合、知识消歧和质量评估。构建方法正逐渐从人工转向半自动,最终向完全自动化转变。市场上已经有很多知识图谱的构建工作和许多不同的应用场景。(1)搜索引擎邻域:在搜索邻域,为了给予用户更为直观的反馈和更精确的答等。其中Google谷歌知识图谱于2012年发布,是目前世界上规模最大、使用广泛的通用知识图谱。改变了传统搜索引擎通过关键词返回所有包含关键词页面这种匹配方式。新的搜索模式可以深度理解用户意图,返回精准知识。(2)在医疗领域,为了降低发现新药的难度,OpenPhacts联盟构建了一个发现平台,通过整合来自各种数据源的药理学数据,构建知识图谱,来支持药理学研究和药物发现。IBMWaston通过构建医疗信息系统,以及一整套的问答和搜索框架,以肿瘤诊断为核心,成功应用于包括慢病、医疗影像、体外检测在内的九大医疗领域。其第一步商业化运作是打造了一个肿瘤解决方案(WastonforOncology),通过输入纪念斯隆·凯特琳癌症中心的数千份病例、1500万页医学文献,可以为不同的肿瘤病人提供个性化治疗方案,连同医学证据一起推荐给医(3)在金融投资研究领域,成立于2010年的AlphaSense公司打造了一款新的金融知识引擎。与传统的金融信息数据平台不同,这款知识引擎并不仅仅局限在金融数据的整合和信息平台的范围,而是通过构建知识图谱,加上自然语言处理和语义搜索引擎,让用户可以更方便地获取各种素材并加工再使用。另外一款非常具有代表性的金融知识引擎是Kensho。它通过从各种数据源搜集信息,构建金融知识图谱,并关注事件和事件之间的依赖,以及对结果的关联和推理,从而可为用户提供自动化语义分析、根据特定行情判断走势等功能。(4)在政府管理和安全领域,一个具有代表性的案例是Palantir,因通过大规模知识图谱协助抓住了本·拉登而声名大噪。其核心技术是搜集、整理和分析不同来源的半结构化、结构化和非结构化数据,为相关人员提供决策支持。例如在军事情报分析系统中,将多源异构信息进行整合,如电子表格、电话、文档、传感器数据、动态视频等,可以对人员、装备、事件进行全方位实时的监控分析,基于知识图谱的问答系统4使调度人员第一时间掌握战场态势,并做出预判。它曾协助从纳斯达克前主席伯尼-麦道夫的金融欺诈中追回数十亿美元。(5)在电子商务领域,阿里巴巴生态积累了大量的商品和交易数据。构建了以商品、产品、品牌、条码为核心的百亿级商品知识图谱,可广泛应用于商品搜索、引导购物、平台治理、智能问答等业务领域,同时每天拦截数以千万计的恶意攻击,大大提升了消费者的购物体验。(6)在聊天机器人领域,具有问答功能的产品,例如Siri、微软小冰、公子小白、琥珀·虚颜、天猫精灵、小米音箱,背后均有大规模知识图谱的支持。在创建知识图谱时,知识的存储是一个重要方面。目前,大多数大型开放性知识图谱使用资源描述框架(RDF)来描述和存储知识图谱,Arena等人已经实现图谱,但基于非关系型数据结构的图形数据库也是一种存储方式。Neo4j图形数据库有一个内置的Cypher查询语句,可以提供高并发性和性能,以及灾难恢复和热备份的安全性。该数据库具有高并发性和高性能的优势。在智能问答领域,大型语义知识图谱提供了强大的结构化知识支持,为大量开放的互联网数据提供了统一的结构,并实现了其共享。1.2.2问答系统的研究现状自1860年,国外便开始了关于问答系统的研究,当时图灵测试的提出,促进了问答系统研究的发展。早期的研究是基于特定领域的问题,在专家通过人工方式提供的高质量知识的基础上,开发了一个专家系统。这种系统通常只能处理特定地区的可预测问题。随着自然语言处理技术的发展和壮大,自然语言数据库接语义和句法分析技术,将使用者的输入转化为具体的数据库查询语句,然后在数据库中进行查询。后来出现的开放式问答系统评价,促进了研究人员对问答系统的兴趣,也使像文本、图像这类的非结构化数据成为研究人员关注的焦点。随着互联网不断创新,许多基于社区的问题回答(CQA)系统如雨后春笋般出现,如百度知道、知乎、搜狗等,产生了大量的问答数据。为了充分利用这些数据,人们使用自然语言处理工具对用户输入进行深度理解,搭建一个自动化问答系统,该系统利用大量的对话问答数据作为语料和知识来源,提取用户问题的关键词和语5义信息,然后从文本中找到相应的答案。然而对话数据的质量参差不齐,以及问答系统的检索十分困难,为了解决这些问题,知识图谱将结构化的、半结构化的和非结构化的数据组合成一个存储在数据库中的三元组,并按照类似方式在知识图谱中进行匹配。与对话问答数据源相比,知识图谱的优势体现在数据结构化和数据关联上。知识图谱的问题回答方法有两类:第一类是基于符号表示的,使用一套语义分析技术来分析问题集,包括实体属性识别、意图分类和实体之间消歧等步骤。在问题被翻译成数据库查询语句后,知识图谱被查询,以提取相关的知识并将其组织成答案。另一种匹配问题和答案的方式是通过使用分布式语义表示来实现的,这可以说是一种新的搜索引擎技术。它使用分布式向量来表示用户的问题,答案也在知识图谱中表示为分布式向量,在计算两个向量的相似度后,输出最相似的候选答案。由于词向量的流行和深度学习的兴起,基于分布式语义表征的问答知识库已经迅速发展起来。基于知识图谱的问答系统示意图如图1.2所示。图1.2知识图谱问答示意图此外,在功能方面,问答系统可以细分为任务型问答系统和非任务型问答系统,任务型问答系统主要用于完成用户的查询问题、任务等,问题特征明显,可以使用基于信息检索、基于知识库的方式进行实现,问答系统解析用户输入的问题,提取问题中的特征和关键字,再在问答对或知识库中进行匹配获取相应答案。非任务型问答系统用于用户闲聊、娱乐陪伴等功能,此类问答系统不依赖于已有知识库,但需要根据对话问答数据进行端到端的卷积神经网络模型的训练,训练完成之后,只需要用户输入问题,无需逻辑处理即可直接生成答句。基于知识图谱的问答系统6本文内容具体分为七个章节,其中每一节的安排如下:第一章是绪论。主要对项目研究背景与意义进行分析,并分别概述了知识图谱和问答系统的研究现况,分析其种类和主流实现方法。第二章是对基于知识图谱的问答系统进行可行性分析和需求分析,以及给出系第三章完成了中文开放域百科知识图谱的构建,以及其数据采集、数据清洗、三元组构建、数据存储的细节描述。最后对知识图谱的可视化进行描述。第四章实现了任务型问答模块、非任务型问答模块和多轮问答模块的搭建,任务型问答通过对用户输入的问题进行实体识别、关系抽取、意图识别、相似度计算等操作,转化为数据库查询语句,返回用户想要的答案。非任务型问答系统的搭建基于大量的问答数据,使用Seq2Seq模型进行训练,并引入attention机制,加快模型训练。第五章对系统进行功能测试和非功能测试。第六章主要对本文的研究工作以及成果进行总结,并分析并说明基于知识图谱的问答系统中存在的问题和可采用手段,最后对未来的研究进行了展望。②②72.1系统需求分析回答他们的问题,这个过程大致分为两步:第一步是用户进行输入,用例图如图2.1所示。第二步是答案返回,用例图如图2.2所示。用户家恒图2.1用户输入用例图8包含C包含C包发用户用户图2.2答案返回用例图(1)知识图谱构建部分:与普通关系型数据库相比,图形数据库能够高效地数据库中,Neo4j数据库历史悠久,遇到问题能在各大论坛上找到解决方案,其功4.43ArangoDB目李8.GraphDB看图2.3数据库使用榜单数据爬取方面选用的是BeautifulSoup框架,BeautifulSoup是一个撷取类,并在11个不同的自然语言处理测试中取得了SOTA成绩,包括GLUE基准的9基于知识图谱的问答系统80.4%(相较于第二名提高了7.6%)和MultiNLI准确性的86.7%(相较于第二名提高了5.6%),使其成为自然语言处理发展史上的一个重要模型成就。(3)非任务型问答模块:主要使用引入Attention机制的seq2seq模型进行训练,Seq2Seq模型是处理序列到序列问题的有力工具,在神经网络翻译中被证明是非常成功的。Seq2Seq包括一个将观察到的样本X编码为固定长度的隐藏变量Z的编码器和一个将隐藏变量Z解码为输出标签Y的解码器。传统的Seq2Seq模型不适合于长句子。引入Attention可以解决这个问题。Attention机制的优点:打破了传统编码器-解码器结构在编解码时都依赖于内部一个固定长度向量的限制。同时每步的结果不依赖于上一步,可以做成并行的模式,最后相比卷积神经网络与循环神经网络,参数少,模型复杂度低。从技术、经济、操作三个方面分别对项目进行分析。首先是技术方面,尽管百科有反爬虫设置,但是可以通过代理跳过,同时选取的深度学习模型性能强大,足以解决现有问题。在经济可行性方面,本文使用的开发工具都是免费的个人开放版,同时选取的深度学习模型和自然语言处理的相关工具也是开源的,经济上可行。操作可行性,用户无需注册登录即可进行对话问答,页面简约而不简单,为不想打字的用户准备了语音输入输出,只需要输入想要的问题即可得到答案,操作无需上手,操作可行。根据用户需求,系统总体功能设计如图2.2所示。基于知识图谱的问答系统届准用决多(1)知识图谱构建模块:利用爬虫框架从在线百科网站进行爬取半结构化数据,并对数据中存在的问题进行相同属性合并、属性值单位归一化和属性值分割等操作,组装成一个个三元组,利用数据库语句存入neo4j数据库中。(2)任务型问答模块:用户输入问题之后,首先抽取出问题中的实体与属性,并将问题归类,不同问题对应查询方法不同,直接查询失败后将实体的相关属性查询出来,进行相似度计算,选取得分最高的路径再次进行查询,最后返回答案。(3)非任务型模块:当用户输入的问题不含有明确的实体名,没有查询意图时,便进入非任务型问答模块,陪伴用户进行闲聊。闲聊需要使用深度学习模型(4)多轮对话模块:当用户提出的问题与上文有关时,通常会使用代词、省略一些信息,因此需要对多轮对话进行识别,将上一轮问答使用json存储在浏览器临时数据存储介质中,对可能存在的问题进行处理。(5)前端页面模块:使用Flask完成前端页面设计,同时使用Echart进行知问答系统的总体架构图如图2.3所示。整个系统从上往下、由外往里分别为负责前端页面展示的ui,负责实现前后端通信的表示层,实现系统功能的业务层,提供具体实现算法接口的算法层,存储知识图谱的数据层,以及整个系统的运行日志记录图2.4系统架构图3知识图谱的构建目前,市面上仍然缺少公开的中文开放领域知识图谱,但大具为需要成批数据的知识图谱带来了充分可能。本章详细阐述了基于neo4j的知识图谱的构建中的方法和实现流程。在3.1节介绍了整体的框架,3.2节阐述了数据如何获取,3.3节介绍了知识存储任务的实现,3.4节对本章内容进行总结。本章构建中文开放领域知识图谱的总体框架图如图3.1所示。第一步进行数据获取,数据获取也分为三个步骤,首先是利用BeautifulSoup4框架从百度百科、维基百科等网页上进行数据爬取,然后对爬取的数据进行清洗,目的是将网页的半结构化数据和结构化数据转换为高质量的结构化数据,最后是三元组的构建。第二步是将构建好的三元组存入neo4j数据库中,最后利用数据库语言进行查询,将结果进行展示。数据抽取大致可以分为三类,第一类是结构化数据抽取,如从已有数据库中抽取数据。第二类是半结构数据抽取,如从表格中抽取知识。第三类是非结构化数据抽取,从文章或文本中提取数据。在数据抽取方面,本文使用BeautifulSoup4框架对百科类网站进行数据抽取,基于知识图谱的问答系统百科类网站有如下几个特点:(1)市面上常见的百科网站,如百度百科、维基百科等。通常都是使用一个单独的页面介绍一个实体,因此,网页的url都是以网站的前缀+实体名字构成的。(2)百科类网站页面格式统一,有着许多半结构化和非结构化的数据。(3)百科类网站通常都是由专业人员编写,错误较少,内容严谨质量高。截至2022年5月,百度百科已经收录了超2600万个词条,几乎涵盖了生活的方方由上述几个特点可以得出使用百科类网站作为数据源的好处:获取容易、抽取简单、错误少。使用BeautifulSoup4框架进行爬取的流程图如图3.2所示。抓取网页获取库清洗网页解析保存内容读取网址根据上述流程图,首先需要获取百科类网站的网址,百度百科的实体页面网址前缀是“/item/”,通过在后面加上自己想要查找的实体,即能跳转到对应的页面,但世界上实体的数量是无穷无尽的,每时每刻都有新的实体诞生,我们无法获取所有的实体名,因此通过此方法进行爬取是不可取的。通过对百度百科页面进行分析,当用户使用上述接口时,首先会根据词条名字查找词条的id和所属分类id等相关信息,然后构造实际数据url:“/item/词条名/词条id”,进行异步加载。因此,根据上述信息,爬取词条名字和id的步骤如下:(1)首先需要确定百度百科总共有多少分类,如图3.3所示,百度百科为我们提供了分类后的词条信息,但百度百科并没有提供所有分类的目录,但从页面的url可以看出,每一个分类都对应一个tagld。基于知识图谱的问答系统软空部我通过遍历所有可能的tagld,最终能够确定所有分类的id和类别名,对应表如表3.1所示:表3.1分类名与id对应表类别名天文学环境生态农业科学生命科学数理科学心理学信息科学工程技术化学地球科学(2)针对每一个分类,爬取每个分类的总词条数,根据每一个词条的名字和id按照上面的规则构造url,即能爬取到对应的实体页面。对于每一个实体页面,比不可少的是infobox信息,又叫基本信息框,是一组基于知识图谱的问答系统(属性,属性值)对,是对实体的结构化总结。很多情况下,可以不看内容,只看infobox信息就能了解这个实体。infobox是百科全书式知识图谱最重要的知识来源之一,从关系的数量和质量上看也代表了最有知识的一类关系。因此,本章所描述的知识图谱主要是建立在这些半结构化数据的基础上。3.2.2数据清洗经过上一步操作进行抽取的数据并不是那么完整,还是会有许多的质量问题,这是不可避免的,因为百科网站是由很多人众包编写的,并没有一个非常统一的编写标准,每个人的想法不一样,写出来的内容也不尽相同。这种不完整具体表现为:在基本信息框中,属性可能不一致,比如说,有的叫英文名,有的叫英文名称。属性值的写法也不一样,同样一个日期,有的人喜欢用年、月、日,有的喜欢用纯数字。还有一个需要特意强调的地方就是,大家喜欢把多个值写在一起,如使用顿号等,这样做其实对于转化为结构化数据是非常不利的。本来知识图谱想构建的是实体和实体的关系,结果抽取出来变成了实体和字符串的关系,因此,需要将多个属性值分开处理。所以,数据清洗模块我们分为了三个部分,首先属性融合,将所有等价属性合并,比如妻子和老婆。接下来对日期、数量等属性值进行归一化,转化为统一的日格式。最后,再通过一个值分割算法,将属性值中所有多值的情况分开。(1)首先进行单数据源的属性融合,分为两步,第一步是找到候选属性对。通过属性相似性来找候选属性对,如妻子和老婆这对同义词。通常需要需要利用外部的同义词知识库来做。本章使用的是百度汉语,百度汉语提供了较为详细的近义词对。第二步是删除错误的候选属性对。本章是基于启发式规则实现的,主要从两点考虑,首先,等价属性不能同时出现在一个实体中。例如长沙理工大学这个实体中不能同时出现“英文名”和“英文名称”这两个属性。第二,等价属性的值和作用域要相同。(2)然后进行数值属性值归一化,之所以要对数值属性归一化,是因为数值属性的属性值往往是由数字和单位构成。所以可以分为数值抽取和单位统一两个步骤,首先通过正则表达式抽取出年、月、日等数值信息,然后通过转化公式来统(3)最后是将多值分开,针对对象属性值,我们首先判断这个字符串是否存在基于知识图谱的问答系统分隔符。如果不存在任何一种分隔符,那就不需要分割。如果存在,按照出现的分隔符进行分割。3.2.3三元组的构建基于RDF数据模型,知识图谱由一条条知识组成,每条知识表示为一个SPO三元组。三元组是是RDF的核心概念,指的是两个事物和它们之间的关系,在语法上呈现为“主语+谓语+宾语”。经过上述两个步骤得到的高质量的半结构化数据,将实体名作为主语,实体的属性作为谓语,实体的属性值作为宾语,便3.3知识图谱数据存储Neo4j图形数据库是以图形结构的形式存储的数据库,以节点,关系和属性值适用场景和优缺点如表3.2所示。Create语句适用场景速度数万nodes/s数万nodes/s优点使用方便,可实时插入可以加载本地或可以从已存在的数据库中导入数据官方导入脚本,速度快,占用资源少缺点首先需要得到其他数据库中有数据不能中断,也需要件根据中文百科数据的大小和可操作性,本章使用create语句进行在线导入,数据存储流程图如图3.4所示。开始开始结束图3.4图数据库存储模块逻辑流程图为属性值,需要进行节点的去重,本章使用的是数据结构unorder_set进行去重,3.4知识图谱可视化展示结果可以使用可视化的形式进行展示。知识图谱的部分展示如图3.5所示,本文设计的知识图谱包含近20万个节点,30万条实体间关系。基于知识图谱的问答系统NeLahel图3.5中文开放域知识图谱部分展示②展沙理工大孝基于知识图谱的问答系统②4问答模块的设计和实现在完成上一章的知识图谱构建之后,就需要根据知识图谱设计一个问答系统,由于用户输入问题的随机性,问答系统可分为两类,第一类为面向具体应用场景的任务型问答系统,本文的问答系统中的任务型问答模块主要针对用户提出的百科常识性问题做出回答和解释。第二类为面向闲聊的非任务型问答,用户的话题自由,没有规律性,主要应用场景为娱乐、情感陪护、营销沟通。针对这两类不同问答模块,本章将分别进行介绍。本章介绍的任务型问答系统主要对一些常见问题进行回答,如根据实体查找属性,查找两个实体之间的关系等。任务型问答模块流程图如图4.1。开始开始用户输入实体和属性识别壹问题意图分类构建查询语句查询间接查询壹查询失败结果返回结束相似度计算答案生成基于知识图谱的问答系统当用户输入一个问题之后,首先需要识别文本中的命名实体和属性,然后进行意图识别,将问题划分为不同类别,在每一类问题中,根据之前提取的实体和属性构造查询语句,到Neo4j数据库中查询是否有结果,如果查询成功,即根据问题和查询结果生成答句,如果失败,获取数据库中实体各个属性,与问题进行相似度计算,选取相似度最高的路径作为查询路径,同时,相似度应大于0.8,避免答非所问,然后进行间接查询,答案生成与上文类似。下文将对各个步骤进行详细介绍4.1.1实体和属性识别实体识别目的是识别文本中名词性短语,实体识别主要有三种方法。(1)基于规则和词典的方法,规则是人工基于语法、文法和特定领域的知识等制定的。词典是由特征词组成的词典和外部词典的组合,外部词典指的是现有的一般知识词典。一旦规则和词典被开发出来,通常通过匹配来处理文本,以实现对命名实体的识别。该方法的准确性取决于词典和规则的设计。该方法的局限性是显而易见的:它需要大量的人力工作,不容易扩展。(2)传统的基于机器学习的方法,实体识别也被当作一个序列标注,序列标注中的当前预测标签不仅与当前的输入特征相关,也与之前的预测标签相关,即预测标签序列之间存在很强的依赖关系。主要的方法是。隐马尔科夫模型、支持向量机等。该方法速度慢,训练效果差。(3)基于深度学习的方法,深度学习避免了大量的人工特征的构建,同时,能本文使用深度学习BERT模型做实体和属性的识别,识别句子中的主谓宾,在CLUENER(中文语言理解测评基准)2020数据集上达到了98.5%的准确率,能够快速识别问题中的实体和属性。整体流程图如图4.2。BERT是一个预训练的语言表征模型。它不再像以往一样采用传统的单向语言模型或者把两个单向语言模型进行浅层拼接的方法进行预训练,而是采用新的maskedlanguagemodel,以致能生成深度的双向语言表征。针对自然语言处理的十多项任务中,bert模型都取得了非常高的准确率,位于各榜单之首。导入模型后,根据自己的数据集对模型的输建,由于bert出色的能力,只需要对网络结构进行微调即可。本文在原有bert基于知识图谱的问答系统模型后添加两层Linear层,层数过多将导致训练收敛较慢,准确率不一定会提高。同时经过调整batchsize等参数,得到了较好的训练效果。图4.2实体识别流程图4.1.3相似度计算在完成意图识别后,用户输入的问题被划分为不同类别,再与实体识别的结果相结合,可以生成具体的查询语句,若查询失败,说明所要查询的实体名或属性名未在数据库中,但数据库中有相似的信息。因此需要利用这些相关信息进行相似度计算,尽可能地回答用户的问题。首先需要进行一次间接查询,获取对应实体、属性和属性值。然后根据问题的不同类别,各自进行相似度计算。(1)实体的属性值问答。这类问题的实体名是固定的,因此只需要对属性值进行相似度计算,若有多个属性值,则依次进行计算。(2)根据属性和属性值回答主语。通常属性是固定的,对属性值进行相似度计算即可(3)实体之间的关系。实体名是固定的,不需要进行相似度计算。经过相似度计算之后,选取相似度最高的实体属性,再进行一次查询,返回对应的答案,对于相似度一样的,返回权重最大的结果,如果权重一样相似度一样,返回两条结果,逗号分开。4.1.2问题意图分类本章根据日常生活中常见的查询问题,将问题分为3类。(1)实体的属性值问答,根据实体回答对应的属性值,如刘翔有多高?可能会存在多跳问答,即询问实体属性的属性值,如长沙理工大学的校长的毕业院校?(2)根据属性和属性值回答主语,如哪些学校为985工程院校?(3)根据两个实体,找到其对应关系,如苹果和梨子有什么关系?意图分类有两种实现方式,第一种,基于固定规则,如只有同时识别到实体名和属性时才能判定该问题属于第一类,但上文中提到的实体识别模块并不能区分实体和属性值,如朱丽叶是谁的妻子?经过上一步提取出朱丽叶和妻子两个实体,但不能确定到底是询问朱丽叶的妻子是谁还是谁的妻子是朱丽叶。同时,基于规则的方法拓展性差,用户输入的问题是随机的,可能采取不一样的问法。因此,本文采用深度学习生成不同类问题,再根据这些问题进行训练,得到一个覆盖范围广的意图识别模块。总体流程图如图4.3。开始开始的规则题图4.3意图分类流程图首先需要设定不同问题的规则:(1)实体的属性值问答。其构成部分为实体+属性名1+属性名2(可以没有或有多个)+[’’,‘的’]+[’’,‘是’,‘是谁’,‘是什么’,‘有啥’,‘有哪些’,‘有’,‘有多大’,‘是啥时候’,‘是什么时候’,‘是多少’,‘是哪’,个’,‘哪些’,‘什么书籍’,‘什么作品’,‘什么’,‘什么人物’,‘啥地方’,…]+[’’,‘的’]+属性名+[’’,‘是’,‘为’,‘在’]+实体。其中属性和属性值的位置可以颠倒。(3)实体之间的关系。其构成部分为实体1+[’’,‘和’,‘与’]+实体2+[‘是啥关系’,‘关系是啥’,‘有啥关系’,‘有什么关系’,‘关系名是啥’,’’]。题,作为最终问题集。图4.4simbert训练方式示意图基于知识图谱的问答系统部分的数据是有效的。simBERT可以使用这种训练务,同时也可以获得语义文本向量来执行检索相似文本的任务。在生成最终问题集之后,将该问题集作为情感分类模型的数据集,进行训练,情感分类模型使用的是bert模型,具体处理步骤与上文类似,经测试,训练完成后可以达到98.77的精度,可以较好识别问答意图。4.1.4答案生成为了用户的体验,不能直接将查询结果返回给用户,需要根据不同问题制定不(1)实体的属性值问答。回答模板为:实体+“的”+属性1+属性2……+“是”+查询结果。(2)根据属性和属性值回答主语。回答模板为:查询结果+“的”+属性+属性(3)实体之间的关系。回答模板为:实体一+“和”+实体二+“是”+查询结果+“关系”经过上述几个步骤,任务型问答模块搭建完成,能够准确地回答用户的特定问由于用户输入的多样性,用户有时并不是想查询问题获得一个准确的答案,而是想要进行娱乐、情感陪护、沟通。而这些问题与上文的问题截然不同,且没有规律可循,但深度学习和大数据提供了一种解决方案,利用深度学习模型,训练大量数据,从而实现自动问答,即用户输入句子后,自动生成问答。目前,基于深度学习的闲聊机器人绝大多数是基于Seq2Seq模型的,该模型非常简单且易扩展,应用场景广泛,Seq2Seq模型的结构如图4.5。基于知识图谱的问答系统seq2seq是由encoder(编码器)和decoder(解码器)两个RNN的组成的。其中encoder负责对输入句子的理解,转化为contextvector,decoder负责对理解后的句子的向量进行处理,解码,获得输出。上述的过程和我们大脑理解东西的过程很相似,听到一句话,理解之后,尝试组装答案,进行回答。非任务型问答模块流程图如图4.6。文本序列化准备数据集完成编码和解码器模型模型训练结束首先需要准备训练模型的数据集,通过对目前市面上已有的开源中文问答数据集进行分析和整理,共找到8个公开语料,数据集的特点如图4.7所示。長沙理工大学基于知识图谱的问答系统Q你会开心的A幸辐不鼻真正的可预J班99情多6)版本调料)9看来你很鸯线来塘是吗?那么仰地签不多了副对白语料)有一整蛟典,对白不一定皇严谨的时话,原本量多轮(平均5.3C)来了了回粘适料)多轮,有啼盘Q:粮排,普有75床了吧A:标政说助坟袜、莫泉活生生的面测了Q北宗的小纯洁们.周日见,#静义摆柜酒纯画#圆大湿的左手在干箱,看着小纯播么.承鸡语料)过滤爱么,端过,段,别焊了。历心。考虑训练时间和语料质量,本文选取青云语料作为非任务型问答的数据集。有了数据集后,需要将数据集转化为模型可接受的输入即向量。本文使用wordembedding将所有的文本转化成向量,其过程是:将文本空间中的某个词,统计每个词出现的频率,映射到另一个数值向量空间。然后是准备编码器和解码器,编码器的目的就是为了对文本进行编码,把编码后的结果交给后续的程序使用。解码器主要负责实现对编码之后结果的处理,得到预测值,为后续计算损失做准备。最后调用编码器和解码器即完成了模型的搭建。但经过模型训练后,损失率依然很高。然后在Decoder中使用,这就要求Encoder把源句子中所有的信息都包含进去,但是当句子长度过长的时候,这个要求就很难达到,或者说会产生瓶颈。本文引用了Attention机制,注意力机制能够明显提升系统对于长序列的处理能力。就像我们自己看到一副画,我们能够很快的说出画的主要内容,而忽略画中的背景,中,通过LSTM或者是GRU得到的所有信息,不需要在Decoder的每个timestep使用全部的encoder的信息,这样就可以解决句子过长的问题。引入Attention机制后,模型训练的时间减少了,损失率也得到下降。能得到一个效果还不错的闲聊模块。有上下文的情况下,才能对问题进行正确的解析。多轮问答的流程图如图4.8所开始开始问题解析结束在进行存取时,使用json格式记录对话内容,字段如图4.9所示。基于知识图谱的问答系统“rsult“rsult.多轮问答相较于单论问答,通常存在三种问题,针对这三种问题,分别采取不(1)存在指代信息,如“她演过哪些电影?”。本文采用HanLp工具包完成指代消解。HanLP是由一系列算法与模型组成的用于自然语言处理等一系列任务的工具包,性能强大。本文使用HanLP工具包中的指代消解功能完成该任务。(2)省略或隐藏主语,如“有什么特点呢?”这类问题通常不含有主谓关系,但含有动宾关系,利用HanLp中的依存句法分析功能,分析用户输入的问题是否含有该特点,然后根据之前记录的历史问答填充该主语。(3)省略意图,如“那糖尿病呢?”该类问题既没有主谓关系,也没有动宾关系。处理方法与上文一致。经过这三种问题的处理之后,将用户输入的含有省略信息的问题还原为单一的查询语句,调用上面的非任务型问答和任务型问答模块即可正确回答用户的问题。5系统实现和测试本文系统后台采用python轻量级web框架Flask进行开发,前端方面使用种开放认证、表单验证、上传等功能。前端页面采用html开发,用于获取用户输入的自然语言提问和信息的展示,并使用Ajax技术提交到后台api,经语_init_.py图5.1问答系统代码结构图自然语言处理工具,如bert、seq2seq、simbert模型和相关h基于知识图谱的问答系统文件夹包含系统运行过程中产生的一些日志文件,便于调试和改错。static文件夹存放了Flask框架中的静态资源文件,主要有前端页面使用的css样式文件、页面。Chatbot.py文件负责任务型问答的主要逻辑,即实体识别、意图分类和相5.2系统前端实现对前端各个页面及功能展开详细介绍。A知识图计问答系统幅系统首页有两个功能模块,第一个是机器对话,若用户只需要进行问答和聊天对话,即可选择这个功能,用户还想在获取答案的基础上,查看答案实体属性间关系时,需要使用图谱问答模块。基于知识图谱的问答系统5.2.2图谱问答知图5.3图谱问答示意图用户输入问题后,可以按下键盘回车键或者查询按钮得到想要的答案,前端使用jQuery库中的Ajax函数进行异步传输,后台对用户输入问题进行处理后,返回相关答案、时间、Echart图表数据等json格式数据。其中前端使用js对Echart进行渲染。5.2.2机器对话法—生1n赵图5.4机器对话任务型问答图与图谱问答不同的是,图谱问答只是单轮的任务型问答,而用户在对话中,可能涉及到任务型问答、非任务型问答和多轮问答,这些内容不一定能够使用可视基于知识图谱的问答系统化工具进行展示。此外,用户除了使用文字输入外,还可以使用语音输入,当用户说了一段话之后,使用js将语音存储为wav文件,然后调用百度的语音转文字接口即可完成语音输入的功能。8系统搭建完成后,为确保系统能够在真实数据环境中运行,需要对系统进行功能测试和非功能测试。基于知识图谱的问答系统测试功能预期结果测试结果问句输入1.键盘输入2.语音输入两个方式都能正确识别问题符合预期问题处理模块通过后台算法,对用多轮问答,并能正确处理产生答案符合预期分别询问知识库中有的和没有的问题能够对查询结果或生成的结果加以修饰符合预期知识图谱可视化点击图谱问答,输入问题,等待可视化渲染能够渲染出以“实体”为中心的知识图谱子图符合预期测试场景预期结果测试结果安全性1.删除cookie请求2.修改url访问3.空白提交恶意和无效访问没有响应或者返回404页面符合预期响应时间1.记录提交问句到答案呈现过程中的时间2.知识图谱可视化呈现的时间响应时间在7秒以内符合预期兼容性在主流浏览器上访问页面页面能够正常渲染并且功能完善符合预期并发性行测试高并发的情况下,系统能正常使用符合预期通过上述测试,问答系统符合预期,这表明系统的设计和实现是可行的。基于知识图谱的问答系统6总结与展望目前,问答系统是自然语言处理的一个重要研究领域。国内外许多研究人员都从事这一课题的研究,并作出了许多贡献。随着知识图谱技术的快速发展,它可以将海量的数据和知识结构化地存储在图谱中,知识图谱中的问题和答案也变得越来越有趣了。学术界和工业界已经在这一领域进行了大量的投资和研究。本文所做的主要工作有以下几点。(1)分析研究对于结构化、半结构化数据以及非结构化数据知识抽取的方法,并且进行数据清洗和数据存储。(2)研究基于Neo4j图数据库的知识库动态构建,以及知识库的查询方法。(3)研究分析任务型问答和非任务型问答的实现。(4)研究分析多轮问答的框架以及交互引导实现的模型方法的设计以及实现。本文设计并实现了一个基于知识图谱的问答系统,由于对基于知识图谱的问答系统的相关前沿技术还不太了解,所有本文依旧存在许多可改进的地方:(1)知识图谱构建时的数据来源单一,且结构简单,可以考虑从文本中抽取相关实体和关系,数据也可以从多个网站进行爬取,可以将多个开放知识图谱进行知识融合做进一步优化。(2)在处理任务型问答时,只是简单地将常见问题分为三类,若存在一些复杂问题,无法回答,且有可能返回错误的信息。(3)业务处理逻辑过于复杂,导致用户输入问题之后需要等待较长一段时间之后才能得到答案,这显然不能满足现代用户的需求,如何改善业务逻辑,提高效率,仍然是一个难题。基于知识图谱的问答系统[1]KaiDing,HongqiHan,LinnaLi,MenglinYi.ResearchonQuestionSystemforCOVID-19BasedonKnowledgeGraph[C].第40届中国过程控制会议 (CPCC2021)论文集(8),2021:550-555.[2]王智悦,于清,王楠等.基于知识图谱的智能问答研究综述[J].计算机工程[3]NorasetT,LowphansirikulL,TuarobS.WabiQA:Aquestion-answeringsystem[J].InformationProcessing&Management,2021,58(1).10[4]HongshenC,XiaoruiL,Dadvancesandnewfrontiers[DB[5]田迎,单娅辉,王时绘.基于知识图谱的抑郁症自动问答系统研究[J].湖北大学学报(自然科学版),2020,42(05):587-591.[6]AUERS,BIZERC,KOBILAROVG,etal.DBpedia:ANucleOpenData[C/OL]//ABERComputerScience,Vol4825:TheSemanticWeb,6Conference,2ndAsianSemanticWebConference,ISWC2007+ASWC2007,BusKorea,November11-15,2007.[S.1.]:Springer,2007:722-735.fortheWebofData[J/OL].J.WebSemant.,2009,7(3):154-165.[8]BoXu,YongXu,JiaqingLiang,anghuaXiao:CN-DBpedia:Am.IEA/AIE(2)2017:428-438.2019,1(3):271-288.基于知识图谱的问答系统NeuralNetworks[C/OL]//GHAHRAMANIZ,WELLINGM,CORTESC,etal.Canada.2014:3104-3112.KAMBHAMPATIS.ProceedingsoftheTwenty-FifthIonArtificialIntelligence,IJCAIJCAI/AAAIPress,2016:2972-2978.[12]曹明宇,李青青,杨志豪,etal.基于知识图谱的原发性肝癌知识问答系统[J].中文信息学报,2019,33(6):88-93.基于知识图谱的问答系统时光飞逝,四年的本科生涯转眼即逝,我非常荣幸能够在长沙理工大学计通学院度过一段美好时光,在这样一个大家庭中学习、生活和工作感觉到无比的幸福。回首往日时光,老师的淳淳指导、同学的互帮互助不仅让自己收获了知识,提升了专业技能,更增强了我的综合能力,这段经历必将成为我人生道路上浓墨重彩感谢黄老师对我毕业论文的悉心指导!黄老师在学术上要求严谨,精益求精,在论文撰写上给予我很多有价值的意见,同样在学习工作中给予我很多宝贵的经感谢班级所有同学在生活和学习上对我的帮助和信任!班级浓厚的学术氛围以及轻松愉悦的生活气息令我深受感染。感谢同学们的交流、鼓励和帮助,我们共同进步,在这样一个有活力的集体中我收益良多。衷心感谢我的父母!你们的养育之恩我无以为报,在我遇到困难时给我鼓励和指引,你们永远是我坚强的后盾,是鼓舞我前进的动力。最后,感谢各位评审老师在百忙之中抽出时间评审这篇论文并提出宝贵的意见与指导!基于知识图谱的问答系统附录关键源代码#-*-coding:uf-8-*_logfile_name=time.ctime(time.time())logfilename=logfilenamereplifnotospathexists(logs/):loggingbasicConfig(filename=flogs/{logfile_name}log.filemode='a+',format='%(levelname)s-%(asctime#htts://wiki/classBaikeSpider(scrapy.Spiderdb=pymongo.MongoClient("mongodb://127.00.1:27017db_triples=db[db_triples']olds=set([item[_id']foritemindb_baike.find({}.{_istart_urls=[https:/baikeba"bolt:/localhost:7687".auth=("neo4j"."defadd_node(self,l,relation,name2)txrun("MERGE(a:Nodedefparse(self,response):item_name=re.sub(/.".re.subC,"https:/baikeurllibparseunquote(response.url#爬取过的直接忽视ifitem_nameinselfolds:{_id:item_name,"join(responsexpathC(//div[@class="main-content")xpath(//div[@class="para'"]基于知识图谱的问答系统exceptpymongoerors.passitems=set(responsea[contains(@href."/item/")]/@hr
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026云南惠民劳务服务有限公司客户联络中心坐席人员招聘10人笔试历年典型考点题库附带答案详解
- 初中物理八年级下册《牛顿第一定律》单元整体教学设计(导学案)
- 初中地理八年级下册海洋国土单元跨学科项目化教学设计
- 沪科版八年级全册第一节 光的反射教学设计
- 第一节 质点 物理模型教学设计-2025-2026学年高中物理第一册沪科版(2020·上海专用)
- 第14课 同形异态教学设计小学书法练习指导五年级下册北师大版
- 2026广东深圳市优才人力资源有限公司公开招聘聘员(派遣至龙城街道)18人备考题库完整参考答案详解
- 2026广东广州民间金融街管理委员会招聘辅助人员1人备考题库【夺分金卷】附答案详解
- 2026年商丘市梁园区事业单位招聘笔试参考题库及答案解析
- 人教版一年级下册我的音乐网页活动 音乐乐园教学设计
- 《儿童病毒性脑炎》教学课件
- 大学生就业心理调适与应对
- 塔吊覆盖区域安全防护施工方案
- 侨法知识讲座
- 人教版小学六年级下册音乐教案全册
- 光子时代:光子产业发展白皮书 202311-部分1
- 混合IC测试技术-第二章-DC参数测试
- 商务英语词汇
- 高效音频放大器设计毕业论文
- 实验诊断学第八章 心脑血管疾病实验诊断
- 幼儿园安全教育管理PPT(37P)
评论
0/150
提交评论