基于知识图谱的医疗问答系统_第1页
基于知识图谱的医疗问答系统_第2页
基于知识图谱的医疗问答系统_第3页
基于知识图谱的医疗问答系统_第4页
基于知识图谱的医疗问答系统_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

摘要在数字信息迅速增长的时代,人们获取信息的途径从书本逐渐迈向互联网。为了了解自己的身体状况并及时预防或治疗,不少的人们选择从互联网上查找疾病和症状的相关信息。然而,传统的通过捜索引擎来搜索医药信息的方法较为麻烦。因为通过搜索引擎检索出来的信息存在虚假信息,其中还掺杂着不少的广告信息,需要用户做进一步的筛选才能得到答案,难以满足人们快速获取医疗健康信息的需求。基于知识图谱的医疗问答系统是从知识图谱中获取答案的自动问答系统。作为一种人机交互的新趋势,自动问答逐渐深入人们的生活中。微信小程序作为轻量级的应用程序,具有快速迭代的优点,开发周期短,而且还能借助大厂的流量入口,快速导入用户。综合考虑各种成本因素及用户量的规模,后端框架上面选择flask。不同于人工智能在医疗领域的应用场景,本文所设计的自动问答程序,以给患者提供医疗咨询为目的,不涉及诊断决策与患者信息。患者通过该程序所获取的知识服务于患者就医过程,具体方面包括:①帮助患者准确了解与其病情相关的医学知识,提高对自身正确病情的阐述,减少在就诊过程中表达错误病情情况的发生;②提高问诊效率,帮助患者了解医生对其病情的解释与医嘱,减少同一问题反复咨询的情况;③帮助患者降低受互联网错误医疗信息影响,减少医疗诈骗事件发生,指导患者树立正确的健康观。综上,该系统基于人工智能技术,临床收集患者问答相关数据,以微信小程序为载体,能够诊前后提供正确的相关医学知识,提高就医效率。关键词:知识图谱微信小程序智能医疗AbstractIntheeraofrapidgrowthofdigitalinformation,people'saccesstoinformationhasgraduallymovedfrombookstotheInternet.Inordertounderstandtheirphysicalconditionsandpreventortreatthemintime,manypeoplechoosetofindinformationaboutdiseasesandsymptomsfromtheInternet.However,thetraditionalmethodofsearchingmedicalinformationthroughsearchenginesistroublesome.Sincetheinformationobtainedthroughthesearchenginehasfalseinformation,itisalsomixedwithagreatdealofpublicisedinformation,anditisalsomixedwithalotofadvertisinginformation,usersneedtodofurtherscreeningtogetanswers,itisdifficulttomeetpeople'sdemandforrapidaccesstomedicalandhealthinformationMedicalquestionansweringsystembasedonknowledgemapping.Asanewtrendofhuman-computerinteraction,automaticquestionansweringhasgraduallypenetratedintopeople'slives.Asalightweightapplicationprogram,WeChatapplethastheadvantagesofrapiditeration,shortdevelopmentcycle,andcanalsoquicklyimportusersthroughtheflowentranceoflargefactories.Consideringvariouscostfactorsandthescaleofuservolume,flaskisselectedontheback-endframework.Differentfromtheapplicationscenarioofartificialintelligenceinmedicalfield,theautomaticquestionansweringprogramdesignedinthispaperaimstoprovidemedicalconsultationforpatients,anddoesnotinvolvediagnosisdecisionandpatientinformation.Theknowledgeacquiredbythepatientthroughtheprogramservesthepatient'smedicaltreatmentprocess.Thespecificaspectsinclude:①helpthepatienttoaccuratelyunderstandthemedicalknowledgerelatedtotheircondition,improvethedescriptionoftheirowncorrectcondition,andreducetheoccurrenceofexpressingthewrongconditionduringthetreatmentprocess;②improvetheefficiencyofconsultation,helpthepatienttounderstandthedoctor'sexplanationandorderoftheircondition,andreducethesameThird,helppatientstoreducetheimpactofInternetwrongmedicalinformation,reducetheoccurrenceofmedicalfraud,andguidepatientstoestablishacorrectviewofhealth.Tosumup,thesystemisbasedonartificialintelligencetechnology,clinicalcollectionofpatients'Q&Arelateddata,withwechatsmallprogramsasthecarrier,canprovidecorrectrelevantmedicalknowledgebeforeandafterdiagnosis,andimprovetheefficiencyofmedicaltreatment.Keywords:Knowledge-graphWechat-appletIntelligent-medical-treatment广东东软学院本科毕业设计(论文)目录TOC\o"1-3"\h\u第一章绪论 第一章绪论1.1研究背景与意义问答系统正逐渐成为一种新趋势,关于机器与人之间的自然交互,它可以更准确地理解自然语言所描述的问题,并根据用户的真实思想向用户返回更准确的答案REF_Ref7190\r\h[1]。随着大数据近年来崛起和知识工程的发展,一种新形势的搜索引擎:自动问答系统也逐渐进入人们的生活。基于知识图谱的自动问答系统通过信息爬取技术和数据清洗技术将来自专业论坛,互联网百科,医疗问答的非结构化文本信息转化成结构化的文本数据来构成医疗知识图谱。从而可以更好地构造海量数据并将其与人类认知联系起来。因此,近年来,由于知识图谱概念的提出,学术界将自动问答系统的的发展重心逐渐转移到基于知识图谱的的自动问答系统上。知识问答可以在精确的问答服务中发挥关键作用。在越来越多的垂直行业领域中,知识图谱已被广泛用作基础数据服务,以提供上层智能应用程序的基础结构,特别是在医疗领域,因为某些领域的数字化进程不断发展,各种信息系统不断发展。市场已经产生了大量的医疗信息。在如此大数据的背景下,有必要考虑如何有效地提取,管理和使用这些医学信息以提高医学资源的利用率。因此,临床医学知识图谱的构建和应用还有很大的发展空间。微信小程序基于微信环境,具有很高的使用率,有利于软件开发后的推广和实际应用。小型程序使用的MINA框架利用Java的异步输入和输出技术为用户提供更流畅的体验。微信小程序于2017年1月9日开始公开测试。与传统的App相比,小程序的使用方便。从用户的角度来看,您无须下载即可使用的微型程序,从而完美解决了用户需要下载App体验功能的弊端,使软件触手可及。1.2国内外研究现状1.2.1领域知识图谱构建研究现状医学知识数据集包括医学术语集(本体数据库)、医学知识库和医学知识图谱。其中,当前的医学术语(本体数据库)为医学知识库和医学知识图谱的构建提供医学专业术语,受限词汇分类和概念标准化。它具有权威性,涵盖的数量和质量范围广泛。该担保得到了医疗行业的广泛认可。在医学知识库方面,当前国内外大多数医学知识库都基于专业领域,但是医学知识库以结构化领域定义的形式存储医学知识,并且缺乏丰富的结构信息。医学知识图是具有相关图的知识的集合。实际上,它是基于语义网的知识库的直观表示,着重于提取关系以显示知识的高度相关性和高度结构化的特征。结果,医学知识图可以包含更丰富的关系级别和关系链接,从而显著提高知识推理的准确性和效果。总体而言,大规模、多领域、跨语言的专业医学知识图谱的建设仍处于发展和不断增强的阶段。为了获得更完整的医学知识图谱,需要不同的医学本体库和知识库。与知识图谱集成,并将尚未涵盖的知识和不断生成的新知识集成到现有知识图谱中。医学知识图谱的构建必须是不断迭代更新的过程。医学知识图谱的发展所需的知识融合,知识补充和动态知识更新表达变得迫在眉睫。1.2.2医疗领域问答系统应用研究现状问答系统是一种智能检索系统,基于自然语言处理技术,模拟人类的行为处理输入的问题并传出知识库中对应解决答案。医疗问答系统实质上就是疾病知识问答系统,用于自然文本提出问题,系统可以返回相关疾病信息的需求。国外的问答系统发展比较早。1950年,“图灵机测试”是问答系统的雏形;1961年,green为了便于回答体育赛事的相关问题,设计了第一个问答系统,这是智能问答系统发展的起点;1999年,文本检索会议对系统衡量的指标定制了标准,推动了问答系统极大地发展。此后,国外众多知名的高校陆续研究人机对话系统。同时,互联网行业的巨头如微软、IBM等也纷纷加入智能对话系统研究的浪潮,以问答系统的研究目标:用最精简有效的本文回答人们的提问,而不是某种概念的全部信息,并且首先要研究非结构化的数据变成结构化的技术。医学领域是涉及人体健康的领域。该领域对医疗信息检索要求更强,但是面对搜索引擎上呈现巨大的医疗健康信息,非医学专业的用户很难从中筛选出对自己有利的信息,造成信息污染和信息浪费,急需医疗问答系统实现有效地帮助。问答系统在医学领域中的应用,可以缓解医生和患者之间的信息失衡,提高医疗数据资源的有效使用性。于是,社会资源的压力推动者国内医疗问答系统的发展,克服传统医疗行业信息检索局限性,促使我国医疗问答领域发展和迭代。1.3研究的内容本项目研究的主要内容是搭建一个基于知识图谱医疗问答系统。该系统实现的功能是允许用户输入描述疾病或症状的白然语言句子,系统将自动抽取问题句子中的症状或疾病,并识别用户的查询意图。在意图明确的情况下,系统会从知识库中检索出符合用户意图的答案,并将答案反馈给用户。1.4论文的组织结构本文由六章组成,具体文章的组织结构如下:绪论:主要介绍了本课题的研究背景及意义,国内外研究现状以及本课题的主体研究与目标。关键技术和理论知识:本章节将会详细地介绍基于微信小程序的医疗问答系统所采用的技术和方法。包括:知识图谱、实体识别、实体抽取、flask和微信小程序。问答系统的需求分析:本章节会通过可行性、业务、功能的角度来分析本项目中问答系统的需求。问答系统的总体设计:本章节会详细地介绍问答系统的总体框架以及问句解析模块,问句分类模块,答案检索模块的设计方案。系统的详细设计与实现:详细介绍了问答系统的开发环境;知识图谱的构建方法;利用python的flask框架来实现基于微信小程序的自动问答系。总结与展望:对本文的主要内容、成果、创新点进行总结,并阐述在研究中获得的经验以及存在的不足,以及对未来工作的展望。第二章关键技术和理论知识2.1知识图谱和图数据库知识图谱是用于存储和表示复杂的用于计算机系统的结构化和非结构化信息的技术REF_Ref8141\r\h[6]。知识图谱与数据库有着较为明显的区别。数据库以表格的形式按行存储,表格的列称为字段,每个字段必须是基本的、不能拆分的数据类型,如整型、实型和字符型等,因而它的数据是扁平的,而且结构或数组不能作为字段的类型。然而知识库的数据是立体的,知识图谱不仅要存储字符串或数字等常规数据,还要存储数据之间的关系,这些关系可以是从属关系、子类等。知识图谱既可以存储在关系型数据库中,也可以存储在图数据库中。但后者不管是在存储结构还是查询方面都优于关系型数据库,因而本文釆用图数据库存储知识图谱。现在主流的图数据库有titan、orientDB、Neo4j、Oracle、NoSQL等,其中neo4j是目前最流行的图形数据库,Neo4j创建的图是用顶点和边构建一个有向图,顶点是现实世界中实体,边代表了实体间的关系,Neo4j中有图数据库中专用的Cpyher查询语句,查询也比较简单,在Neo4j中表现映射关系变成了图关系,使用较少的资源就可以获得较高的性能,Neo4j有活跃的社区和技术文档,还有完善的Python工具包,所以本文选用Neo4j作为本系统的图数据库REF_Ref7282\r\h[2]。2.2实体识别和用户意图识别命名实体识别(NER)作为自然语言处理任务中的一种。命名实体识别从非结构化的文本中识别出实体,并根据业务需求(例如疾病,疾病症状,药物等)识别更多类型的实体。命名对象识别技术是许多自然语言处理技术(例如信息提取,信息检索,知识图谱,机器翻译和问答系统)的组成部分。在本项目中实体识别的作用就是分析出用户输入的问题语句中的实体,提供给问答系统去实现答案的检索。模式匹配是数据结构中字符串的一种基本运算,该运算用于在给定一个子串的情况下,从某个字符串中找出与该子串相同的所有子串,其广泛应用于信息检索、入侵检测等领域,模式匹配算法按其一次能够匹配的模式数量可以分为单模式匹配算法和多模式匹配算法REF_Ref7759\r\h[3]。简単来说,单模式匹配与多模式匹配的不同点在于单模式匹配是捜索一个关键字,而多模式匹配是搜索多个关键字。当前,利用已有的词典来提取用户输入的自然语言问题句子中的疾病或症状词语是准确性最佳的方法。但为了保证系统有较快的响应速度,匹配算法应该一次就能匹配词典中的所有词。因此,本文采用多模式匹配的方法来从用户输入信息中匹配出实体词典中的词。目前,在实际应用中使用最多的多模式匹配算法是Aho_Corasick(简称AC)算法REF_Ref7863\r\h[4]。本文采用了基于词典匹配方法,词典匹配方法采用的是AC多模式匹配算法,主要负责从用户输入信息中找出已有词典中的词语,从而达到提取疾病症状实体的目的。意图识别的目的是让系统识别出于用户输入的查询相关的信息,在本文中,意图识别的作用就是让系统识别出用户所提出的查询目的,即用户是要查询疾病还是询问治疗方法等等目的。意图识别对于基于搜索的系统非常重要,若意图识别准确率高,则系统的检索时间能大大加快,检索的精确率也会相应提高。意图识别本质上是一个分类问题,主要有三种方法:基于词典匹配的规则分类、基于过完日志匹配和基于分类模型进行分类。不同的方法适用于不同的场景。用户提出医药领域的问题的说法相对有限,所以本项目主要采用基于词典匹配的方法。2.3微信小程序和Flask微信小程序于2017年1月9日开始公开测试。与传统应用程序相比,小型程序易于使用。从用户的角度来看,无须下载即可使用微程序。这将完全解决让用户下载应用程序体验功能并访问软件的缺点。从开发人员的角度来看,小程序的开发成本低,开发周期短,并且还有其他独特的优势。因此本项目使用微信小程序作为前端交互界面。因为前后端交互的逻辑并不复杂,所以该项目采用Python的Web框架之一的Flask作为后台程序,并与前端微信小程序进行交互。Flask是一个非常流行的微型Web框架,用于使用Python编程语言实现相关功能,“Micro”并不意味着将整个Web应用程序放入一个Python文件中,而Micro框架中的“Micro”意味着Flask使扩展代码变得简单而容易,主要特征是核心配置相对简单,但是具有高度可伸缩性和兼容性REF_Ref8023\r\h[5]。Flask和微信小程序具有相同的优势。开发人员可以使用Python快速实现网站或Web服务。第三章问答系统的需求分析3.1可行性分析3.1.1技术可行性由于本项目不选择部署在服务器上,所以在硬件上性能要求仅为一台windows系统的电脑,以用于开发本系统。本项目开发所用的工具为:微信开发者工具、PyCharm、Neo4j。由于开发人员对微信小程序开发工具使用的熟练度较低,所以存在一定开发风险。3.1.2经济可行性本项目采用的开发工具皆为免费版。由于不选择在云端服务器部署本系统,所以开发本系统的所需的经济成本为零。本系统没有任何的付费接口,也没有加入任何广告模块,纯属公益项目。所以本项目不会产生任何经济效益。3.1.3法律可行性本项目采用的工具和技术不违法任何法律道德,不会对社会稳定性产生影响。值得一提的是,本项目将通过网络爬虫来获取的数据替换成现成的结构化数据,有效地避免了法律问题。3.2系统业务需求随着互联网的快速发展,无论类型或数量如何,互联网上的信息都呈爆炸性增长,人们对信息的访问已逐渐从书报转向Internet。另一方面,随着智能移动设备的发展和移动无线传输速度的提高,人们可以随时随地获得各种信息,包括医疗服务信息。现在,人们不仅会在疾病发生前在互联网上搜索疾病预防信息,而且还将在疾病发生后在Internet上咨询康复和保健信息。随着Internet信息的不断增长和改进,有效的信息检索已成为当务之急[10]。日前,从互联网上检索信息主要使用Google和百度等关键字搜索模式。此模型要求用户设计和优化关键字。一旦关键字不正确或不完整,搜索网站将检索与用户查询意图不符的结果。同时,搜索站点的搜索结果是网页列表,用户需要阅读和过滤更多内容以获得所需的知识。因此,上述缺点导致搜索站点上的搜索效率降低。与通过搜索网站来查询问题相比,亟须一款问答系统可以让用户用自然语言直接描述他们的问题,并将其用作问答系统的输入,而不必进行细化关键字以获取问题的答案,让用户拥有更好的使用体验。3.3系统功能需求3.3.1问句解析模块实际上用户提出的医疗相关问题形式多变,没有固定的模板。所以问答系统的核心难题就是解析用户提出的医疗问题,分析出医疗问题中的实体和用户意图。例如,用户输入问题“失眠症属于什么科室”,该模块应该抽取出疾病实体词“失眠症”,并将该词标记为疾病,同时应该识别出查询意图为查询科室。问题解析模块是本问答系统的关键模块之一,该模块的主要职责就是从用户提出的医疗问题中抽取出医药实体和用户意图,并将实体信息和用户意图传递给问句分类模块。3.3.2问句分类模块图据库查询需要查询条件和查询目标,疾病和症状实体是数据库查询的条件,那么用户输入信息的查询意图就是数据库查询的目标。在通过问句解析模块获得了医疗问题中的实体信息和用户意图后,再把两个信息融合在一起就是用户的查询意图。问句分类模块的职责就是根据用户意图结合实体信息来生成相应的数据库查询语句,最后该模块会将相应的查询语句传递给答案检索模块。3.3.3答案检索模块本问答系统是检索式系统,通过检索图数据库来获取相应的答案。因此答案检索模块主要负责生成相应数据库的查询语句,并处理从数据库检索到的结果信息。该模块通过获取问句分类模块传递进来图数据库查询语句,并将该语句传递给知识库进行查询,把查询结果包装成自然语言答案,并反馈给前端交互界面。第四章问答系统的总体设计4.1系统架构设计本项目采用各种技术框架来构建基于知识图谱的医学问题解答系统,包括前端UI采用了微信小程序,后台业务采用Flask框架,数据库采用图数据库neo4j等。Python作为主要的编程语言。在前端UI层面,采用微信小程序框架实现问答答系统前端交互界面的搭建,在后端业务层面采用Flask框架实现业务逻辑构建。本文系统技术架构设计如下图4.1所示。图4.1技术框架图根据本文3.3小节可知,本项目的问答系统主要由三个模块构成:问题解析模块、问句分类模块和问答检索模块,其中最重要的是问题解析模块和答案检索模块,各模块之间的关系如图4.2。

图4.2系统框架图4.2系统功能模块的设计4.2.1问句解析模块问题解析模块是本系统的最关键模块,该模块目标是从用户输入的医疗问题中抽取出实体,该模块将使用第三章所提到的实体识别方法和意图识别方法,也就是基于词典匹配的用户意图识别和实体识别。基于词典的命名实体识别,难度在于为其准备一个覆盖率足够大的实体词典。本项目在把结构化的医药数据导入图数据库时,把实体名称同步写入相应实体类型的词典中,最终生成了7类实体词典,总计实体44111条,实现实体词典的实体数量和图数据库的实体数量的全对齐,巧妙地解决了这个难题。各类实体词典数量如下表所示。表4.1各类词典的实体数量实体类型中文含义实体数量Check诊断检查项目3,353Department医疗科目54Disease疾病8,807Drug药品3,828Food食物4,870Producer在售药品17,201Symptom疾病症状5,998由于用户提出医药领域的问题的说法相对有限,所以本项目主要采用基于词典匹配的方法,构建了疑问词特征词典,如图4.3所示。图4.3问句疑问词词典并将这些疑问词分类出13种意图类型,如下表4.2所示.表3.1意图类型设计意图类型中文含义举例symptom_qwds查询症状心脏病的症状是什么?cause_qwds查询病因为什么会头痛?acompany_qwds查询并发症冠心病的并发症有哪些?food_qwds查询食物失眠症吃什么?drug_qwds查询药品咳嗽吃什么药?prevent_qwd查询预防措施流行性感冒的预防措施?lasttime_qwds查询治疗周期失眠症的治疗周期?cureway_qwds查询治疗方式肺炎的治疗方式?cureprob_qwds查询治愈概率青光眼的治愈概率?easyget_qwds查询易感人群肺炎的易感人群有哪些?check_qwds查询检查科目肾结石应该检查什么项目?belong_qwds查询科室失眠症属于什么科室?cure_qwds查询药效阿莫西林治疗什么?在运行该模块时,将通过调用python中ahocorasick库来生成Aho-Corasick自动机,AC自动机根据用户问句来快速的匹配出实体词典中的特征词,从而识别出用户问句中的实体.图4.4为构建AC自动机的方法。图4.4构建AC自动机的方法由于疑问特征词典较小,本项目用for循环来遍历疑问特征词典,并通过判断语句来判断用户问句中是否存在特征词。从而识别出问句的用户意图,实现的方法如图4.5所示。图4.5判断方法4.2.2问句分类模块问句分类模块通过实体和用户意图来分析出用户的查询意图,来生成对应数据库查询语句。图数据库Neo4j指定的查询语句是Cypher.Cypher具有直观的书写方式,使得用户可以通过编写简单的查询代码来实现对neo4j进行各种复杂的操作,其中包括检索数据库。Cypher的查询命令主要是MATCH命令,用户可以通过MATCH命令查找有关节点的属性或者节点与节点的关系,它一般是与return和where命令组合和起来使用,从数据库中筛选满足条件的数据,然后返回指点的数据。在本项目中,知识库答案检索的目标就是将用户提出的自然语言问题转换成一个语义等价的Cypher查询语句。例如,用户描述的问题“失眠症属于什么科室?”,问题解析模块应从问题句子中抽取出疾病实体“失眠症”,并应该识别出用户查询意图为查询科室,然后系统应将问题转换为如下形式的查询语句:MATCH(m:Disease)where='失眠症'return,m.desc,并将转换的查询语句传递给答案检索模块。具体方法如下图4.6所示。图4.6根据相应的用户查询意图生成不同的查询语句4.2.3答案检索模块本节主要描述在系统获取到疾病实体以及用户意图,生成相应的cypher查询语句,并处理从数据库检索到的相关的医疗数据.在完成问句分类和命名实体识别任务后,本项目已经完成了cypher查询语句的生成,最后需要在图数据库Neo4j中执行查询语句获取答案REF_Ref7282\r\h[2]。通过python第三方库中的py2neo库,可以完成python和图数据库neo4j连接,py2neo支持对neo4j数据库的结点创建,关系创建,属性创建和结点查询,属性值查询,节点间的关系查询等多种操作REF_Ref7282\r\h[2]。下图4.7为调用py2neo来连接neo4j数据库的方法。图4.7连接数据的方法在成功连接neo4j以后,该模块将查询语句传递给neo4j数据库,并将查询结果转换成自然语言答案。实现的方法如下图4.8.所示,该方法根据不同的查询意图,来调用不同的回复模板。图4.8生成自然语言答案的方法第五章系统的详细设计与实现5.1开发环境和工具电脑的硬件信息如下表5.1所示。表5.1硬件信息表电脑型号microsoftsurfacepro6CPUIntel酷睿i58250U内存8g硬盘128g显卡IntelGMAUHD620开发工具:PyChram2018社区版、微信开发者工具、neo4j开发环境:python3.6、windows105.2医药数据的获取本项目数据来源于网络上共享结构化数据,用python中的scrapy库从在线医疗健康网站抓取所需的json数据。本文抓取的主要数据来源于寻医问药网。如下图5.1所示为获取的结构化数据。图5.1结构化医药数据5.3医药知识图谱的构建若采用人工的方式构建知识库尤其是领域知识库,那么需要领域专家设计,这将耗费大量的时间和人力。因此,自动化的构建知识库时所有学术界和工业界关注的重点,本文首先利用scarpy工具从寻医问药网爬取结构化的疾病相关,并保存在json文件中。然后处理json文件中的数据。通过程序自动的转变为三元组形式,并存入neo4j数据库中的三元组信息REF_Ref7282\r\h[2]。根据医药信息之间的数据关系映射,如下表所示,本项目在图数据库中创建了疾病(disease)、药品(drug),食物(food),在售药品(producer),疾病症状(symptom)、诊断检查项目(check)、所属科目(depatment)。这七类实体中以疾病实体为中心节点,其余类实体围绕它建立关系网,经过统计,最后得到了总计实体44111条,具体详情见表5.2。表5.2各种实体类型的数量实体类型中文含义实体数量举例Check诊断检查项目3,353支气管造影;关节镜检查Department医疗科目54整形美容科;烧伤科Disease疾病8,807血栓闭塞性脉管炎;胸降主动脉动脉瘤Drug药品3,828主动脉动脉瘤,京万红痔疮膏Food食物4,870番茄冲菜牛肉丸汤;竹笋炖羊肉Producer在售药品17,201青霉素V钾片Symptom疾病症状5,998乳腺组织肥厚;脑实质深部出血此外本项目依据这7类实体定义了10类关系类型,详情见表5.3。总计得到实体关系类型294149条,由此可知一个疾病可能关联多个同一类的实体。表5.3各类实体关系类型的数量实体类型中文含义实体数量举例belongs_to属于8,844妇科,属于,妇产科common_drug疾病常用药品14,649阳强,常用,甲磺酸酚妥拉明分散片do_eat疾病宜吃食物22,238胸椎骨折,宜吃,黑鱼drugs_of药品在售药品17,315青霉素V钾片need_check疾病所需检查39,422单侧肺气肿,所需检查,支气管造影no_eat疾病忌吃食物22,247唇病,忌吃,杏仁recommand_drug疾病推荐药品59,467混合痔,推荐用药京万红痔疮膏recommand_eat疾病推荐食谱40,221番茄冲菜牛肉丸汤has_symptom疾病症状5,998早期乳腺癌,疾病症状,乳腺组织肥厚acompany_with疾病并发疾病12,029下肢交通静脉瓣膜关闭不全,并发疾病,血栓闭塞性脉管炎数据图谱能够清晰地展示实体与实体这间的关系,如图5.2所示,通常查询语句查找到属于心理科的疾病。图5.2属于心理科的疾病实体图5.4医疗问答系统的设计与实现5.4.1问答系统流程设计本文设计的医疗问答系统主要为用户提供疾病相关信息和治疗建议,帮助用户了解白身健康状况,在去医院就诊时能心中有数。本系统的问答流程如图5.3所示。从图5.3可知,系统接收了用户输入的对于疾病或症状的描述信息后,首先执行的是问题解析模块中的疾病症状抽取子模块,在该模块中利用自定义的实体词典抽取用户输入信息中的疾病和症状词语。然后再执行问题解析模块中的用户意图识别子模块,在该模块中识别出用户输入信息的查询意图类型。如果识别出了意图类型,则下一步将用户输入信息转变为Cypher查询语句,再将该语句传递给医疗知识库,由知识库的查询引擎执行相应的查询命令,从而从知识库中查询出结果。问答系统检索出答案后,将根据答案生成检索结果报告。图5.3系统流程图5.4.2问答系统的实现本项目将问句解析模块、问句分类模块和答案检索模块封装成不同的类。此外还有chatbot_graph类,来完成各个模块之间的调度。表5.4为各个类所属的模块和职能。表5.4方法类对应所属模块表类名所属模块职能question_classifier问句解析模块解析问句中的实体和用户意图question_parser问句分类模块生成数据库查询语句answer_search答案检索模块查询数据库并返回自然语言答案chatbot_graph主模块实现各个模块之间的调度。chat_graph类属于主模块,负责实现各个模块之间的调用关系,从实现智能医疗的问答的效果。主模块在获得用户提出的问题之后,将问题数据依次递给其他的三个模块,最后再接受来自答案检索模块的答案。在运行chatbot_graph类后,系统会提示用户输入问题,并快速的返回答案。图5.4运行效果图。图5.4运行效果图5.5基于微信小程序的交互界面的实现基于微信小程序的交互界面为用户提供一个交互窗口,即用户可以在此界面输入医疗问题,也可以在此界面了解到问题的答案。交互界面如下图5.5所示。交互界面用微信开发者工具进行开发,以微信小程序的形式来呈现。这个是仿微信聊天界面的交互窗口,用户可以看到聊天记录,在输入框输入医药知识问题,在点击搜索按钮来发送输入的问题。图5.5基于微信小程序的交互界面本项目前后端之间的交互较为简单:问答系统接收来自交互的问题;交互接收来自问答系统的。所以本项目采用python轻量级web框架flask来实现前后端数据的交互。5.6系统测试系统测试的目的是发现系统中存在的问题,以便今后改进系统,为用户提供体验性更好的系统。为了测试基于知识图谱的医疗问答系统的实际效果,本项目对医疗问答系统的功能进行测试。测试的方法:模拟用户的实际操作,在交互界面输入与医疗相关的自然语言问题,对比预期结果和实际结果的出入。此次系统测试准备100条医疗相关的测试语料。部分测试语料如下表5.5所示。表5.5部分测试语料测试案例预期结果流感通常会和啥病一起出现流感一般发生在冬季,春季也有但很少见,要注意及时的预防。小儿咳嗽如何预防帮助还在养成良好的卫生习惯。流行性感冒引起的发烧可以用什么药酚咖片支配眼睑闭合的神经是哪个?面神经在本次测试中,大部分测试案例的测试结果都符合预期结果。第六章总结与展望6.1论文工作总结知识图谱在医学领域的应用有助于提高医疗智能化的水平,目前医学知识图谱主要应用于临床决策支持系统、医疗智能语义搜索引擎、医疗问答系统和医学知识科普等方面,医学知识推理人工智能技术的发展和应用,提高了医学知识图谱的构建效率和知识推理的准确率REF_Ref8408\r\h[7]。即使是拥有丰富医学知识的医生面对相同的疾病,也要通过参考患者的身体情况来给出不同的诊断结果,再根据诊断结果向患者提供不同的治疗方案。人工智能有得天独厚的优势在挖掘医药信息方面。互联网通过各种各样的渠道中收集数据,处理大量重复冗余的医疗知识是目前医疗知识图谱面临的一大难题,而人工智能有得天独厚的优势在于挖掘医药信息方面。知识推理更专注于在方法的运用和知识的选择上,可以做到推理自然语言问题缺失的部分以便于自然语言问题的分析和求解。医疗知识图谱的使得医疗数据可视化,可以协助医生通过分析大数据,以进行更加合理的决策。知识推理还可以根据病人的症状和检查结果进行数据分析,协助医生对患者提供更加合理的治疗方案。于此同时,知识推理还可以通过分析医生的治疗方案,对其治疗方案提供建议,使得医生提供的治疗方案更具针对性。同时,医药行业人员可以在医学知识图谱中搜索和查询相关的实体属性和实体间关,对其进行扩展查询,以此提高医学信息搜索和查询结果的准确性,能够为用户提供自然语言形式的准确回答。了解到相关医学知识答案的患者可以根据找到适合自己的医生,同时也避免了医生与患者之间的因为专业性较强的医学知识通过沟通较为困难导致的医患关系紧张,可以有效改善患者就诊体验,并提高后续护理的准确性和效率以及患者满意度。6.2未来工作的展望智能问答系统是目前人工智能领域的研究重点,从今往后的发展也离不开人工智能。而就当前国内用医困难的现状而言,医疗健康问答系统无疑就是一个很有优势的解决方法,但是目前尚未能够制作出完整的系统,本论文就目前医疗健康问答系统的原理进行介绍,目前尚未能够实现REF_Ref2405\r\h[9]。这个系统不但缓解了“看病难和看病贵”的社会痛点,而且减少了目前医疗体系的压力。知识图谱具有强大的语义处理能力和开放访问能力,是语义网和知识库的转换和升华。医学知识地图集将医学知识和知识地图集结合起来,以促进医学数据的智能和自动化处理,这将为医学行业的发展提供新的机会。在医疗领域应用知识图谱为医疗行业创造了新的机遇,并带来了一系列挑战REF_Ref8408\r\h[7]。目前,由医学知识图谱构建的主要关节仍然面临着巨大的挑战和挑战。例如,当前应用于医学文本提取的算法通常具有较低的准确性,有限的限制和较差的可伸缩性。医学知识图谱的多样性导致在具有不同数据源的医疗机构之间出现严重的多源查找问题,动态医学知识图的表示不正确,信息更改的传播和更新不足以及医学知识图的可视化问题为您的医生找到最佳的诊断和治疗显示计划,并让患者了解您的显示结果也是一项挑战。医学知识图谱是大数据,人工智能和医学的结合,将成为医学界的热点和前沿问题,未来将成为大数据智能研究REF_Ref8591\r\h[8]。参考文献张崇宇.基于知识图谱的自动问答系统的应用研究与实现[D].北京邮电大学,2019.申豪杰.基于知识图谱的电影知识问答系统研究与实现[D].重庆师范大学,2019.王培凤,李莉.基于Aho-Corasick算法的多模式匹配算法研究[J].计算机应用研究,2011,28(04):1251-1253+1259.AlfredV.Aho,MargaretJ.Corasick.Efficientstringmatching[J].CommunicationsoftheACM,1975,18(6).沈宏伟.基于Flask的企业内网安全系统的设计与实现[D].北京交通大学,2018.S侯梦薇,卫荣,陆亮,兰欣,蔡宏伟.知识图谱研究综述及其在医疗领域的应用[J].计算机研究与发展,2018,55(12):2587-2599.修晓蕾,吴思竹,崔佳伟,邬金鸣,钱庆.医学知识图谱构建研究进展[J].中华医学图书情报杂志,2018,27(10):33-39.袁凯琦,邓扬,陈道源,张冰,雷凯.医学知识图谱构建技术与研究进展[J].计算机应用研究,2018,35(07):1929-1936.颜昕.基于自然语言处理的医疗健康问答系统[J].通讯世界,2018(06):255-256.方正.信息检索中关键技术的研究[J].大庆师范学院学报,2011,31(03):39-41.致谢我花了将近两个月的时间来完成本文,在撰写本文的过程中,我遇到了许多困难和障碍,所有这些都是在同学和老师的帮助下解决的。我要特别感谢论文导师向燕飞无私的指导和帮助,以及她对论文的修改和改进的提出了不少的建议。此外,在学校图书馆中查找资料时,图书馆老师还提供了许多支持和帮助。感谢帮助我的老师!感谢本文参考文献的学者,本文引用了几位学者的研究文献,没有每位学者的发现的帮助和启发,很难完成本文中的各种研究成果。我要感谢我的朋友在论文撰写过程中向我提供所需的材料,以及在论文撰写和排版过程中提供的热情帮助。由于本人学术水平有限,论文不可避免地存在缺陷。我诚挚地邀请所有老师和校友批评和纠正我!

电脑不启动故障诊治了解电脑启动的过程在诸多电脑故障中,无法正常启动是最令用户头痛的事了。笔者长期从事维护电脑的工作,在这个方面积累了一些经验,现在就将这些经验整理归纳出来与朋友们分享。本文将以家用电脑和windows98操作系统为基础,介绍电脑无法正常启动故障的诊治。要想准确地诊断电脑不启动故障,首先要了解的起动过程,当我们按下电源开关时,电源就开始向主板和其它设备供电,此时电压还没有完全稳定,主板控制芯片组会根据CMOS中的CPU主频设置向CPU发出一个Reset(重置)信号,让CPU初始化,电压完全稳定后,芯片组会撤去Reset信号,CPU马上从地址FFFF0H处执行一条跳转指令,跳到系统BIOS中真正的启动代码处。系统BIOS首先要做的事情就是进行POST(PowerOnSelfTest,加电自检)。POST的主要任务是检测系统中的一些关键设备(电源、CPU芯片、BIOS芯片、定时器芯片、数据收发逻辑电路、DMA控制器、中断控制器以及基本的64K内存和内存刷新电路等)是否存在和能否正常工作,如内存和显卡等。自检通过后,系统BIOS将查找显示卡的BIOS,由显卡BIOS来完成显示卡的初始化,显示器开始有显示,自此,系统就具备了最基本的运行条件,可以对主板上的其它部分进行诊断和测试,再发现故障时,屏幕上会有提示,但一般不死机,接着系统BIOS将检测CPU的类型和工作频率,然后开始测试主机所有的内存容量,内存测试通过之后,系统BIOS将开始检测系统中安装的一些标准硬件设备,这些设备包括:硬盘、CD-ROM、软驱、串行接口和并行接口等连接的设备,大多数新版本的系统BIOS在这一过程中还要自动检测和设置内存的相关参数、硬盘参数和访问模式等。标准设备检测完毕后,系统BIOS内部的支持即插即用的代码将开始检测和配置系统中已安装的即插即用设备。每找到一个设备之后,系统BIOS都会在屏幕上显示出设备的名称和型号等信息,同时为该设备分配中断、DMA通道和I/O端口等资源。最后系统BIOS将更新ESCD(ExtendedSystemConfigurationData,扩展系统配置数据)。ESCD数据更新完毕后,系统BIOS的启动代码将进行它的最后一项工作,即根据用户指定的启动顺序从软盘、硬盘或光驱启动。以从C盘启动为例,系统BIOS将读取并执行硬盘上的主引导记录,主引导记录接着从分区表中找到第一个活动分区,然后读取并执行这个活动分区的分区引导记录,而分区引导记录将负责读取并执行IO.SYS,这是Windows最基本的系统文件。IO.SYS首先要初始化一些重要的系统数据,然后就显示出我们熟悉的蓝天白云,在这幅画面之下,Windows将继续进行DOS部分和GUI(图形用户界面)部分的引导和初始化工作,一切顺利结束,电脑正常启动。根据故障现象诊治了解电脑启动的过程,故障就好判断了,下面我们就根据故障现象开始诊治了:现象一:系统完全不能启动,见不到电源指示灯亮,也听不到冷却风扇的声音。这时,基本可以认定是电源部分故障,检查:电源线和插座是否有电、主板电源插头是否连好,UPS是否正常供电,再确认电源是否有故障,最简单的就是替换法,但一般用户家中不可能备有电源等备件,这时可以尝试使用下面的方法(注意:要慎重):先把硬盘,CPU风扇,或者CDROM连好,然后把ATX主板电源插头用一根导线连接两个插脚(把插头的一侧突起对着自己,上层插脚从左数第4个和下层插脚从右数第3个,方向一定要正确),然后把ATX电源的开关打开,如果电源风扇转动,说明电源正常,否则电源损坏。如果电源没问题直接短接主板上电源开关的跳线,如果正常,说明机箱面板的电源开关损坏。现象二:电源批示灯亮,风扇转,但没有明显的系统动作。这种情况如果出现在新组装电脑上应该首先检查CPU是否插牢或更换CPU,而正在使用的电脑的CPU损坏的情况比较少见(人为损坏除外),损坏时一般多带有焦糊味,如果刚刚升级了BIOS或者遭遇了CIH病毒攻击,这要考虑BIOS损坏问题(BIOS莫名其妙的损坏也是有的),修复BIOS的方法很多杂志都介绍过就不重复了;确认CPU和BIOS没问题后,就要考虑CMOS设置问题,如果CPU主频设置不正确也会出现这种故障,解决方法就是将CMOS信息清除,既要将CMOS放电,一般主板上都有一个CMOS放电的跳线,如果找不到这个跳线可以将CMOS电池取下来,放电时间不要低于5分钟,然后将跳线恢复原状或重新安装好电池即可;如果CPU、BIOS和CMOS都没问题还要考虑电源问题:PC机电源有一个特殊的输出信号,称为POWERGOOD(PG)信号,如果PG信号的低电平持续时间不够或没有低电平时间,PC机将无法启动。如果PG信号一直为低电平,则PC机系统始终处于复位状态。这时PC机也出现黑屏、无声响等死机现象。但这需要专业的维修工具外加一些维修经验,因此,建议采用替换法;电源没有问题就要检查是否有短路,确保主板表面不和金属(特别是机箱的安装固定点)接触。把主板和电源拿出机箱,放在绝缘体表面,如果能启动,说明主板有短路现象;如果还是不能启动则要考虑主板问题,主板故障较为复杂,可以使用替换法确认,然后更换主板。现象三:电源指示灯亮,系统能启动,但系统在初始化时停住了,而且可以听到嗽叭的鸣叫声(没有视频):根据峰鸣代码可以判断出故障的部位。ccid_page/AwardBIOS1短声:说明系统正常启动。表明机器没有问题。2短声:说明CMOS设置错误,重新设置不正确选项。1长1短:说明内存或主板出错,换一个内存条试试。1长2短:说明显示器或显示卡存在错误。检查显卡和显示器插头等部位是否接触良好或用替换法确定显卡和显示器是否损坏。1长3短:说明键盘控制器错误,应检查主板。1长9短:说明主板FlashRAM、EPROM错误或BIOS损坏,更换FlashRAM。重复短响:说明主板电源有问题。不间断的长声:说明系统检测到内存条有问题,重新安装内存条或更换新内存条重试。AMIBIOS1短:说明内存刷新失败。更换内存条。2短:说明内存ECC较验错误。在CMOS中将内存ECC校验的选项设为Disabled或更换内存。3短:说明系统基本内存检查失败。换内存。4短:说明系统时钟出错。更换芯片或CMOS电池。5短:说明CPU出现错误。检查CPU是否插好。6短:说明键盘控制器错误。应检查主板。7短:说明系统实模式错误,不能切换到保护模式。8短:说明显示内存错误。显示内存有问题,更换显卡试试。9短:说明BIOS芯片检验和错误。1长3短:说明内存错误。内存损坏,更换。1长8短:说明显示测试错误。显示器数据线没插好或显示卡没插牢。现象四:系统能启动,有视频,出现故障提示,这时可以根据提示来判断故障部位。下面就是一些常见的故障提示的判断:一、提示“CMOSBatteryStateLow”原因:CMOS参数丢失,有时可以启动,使用一段时间后死机,这种现象大多是CMOS供电不足引起的。对于不同的CMOS供电方式,采取不同的措施:1.焊接式电池:用电烙铁重新焊上一颗新电池即可;2.钮扣式电池:直接更换;3.芯片式:更换此芯片,最好采用相同型号芯片替换。如果更换电池后时间不长又出现同样现象的话,很可能是主板漏电,可检查主板上的二极管或电容是否损坏,也可以跳线使用外接电池,不过这些都需要有一定的硬件维修基础才能完成。二、提示“CMOSChecksumFailure”CMOS中的BIOS检验和读出错;提示“CMOSSystemOptionNotSet”,CMOS系统未设置;提示“CMOSDisplayTypeMismatch”,CMOS中显示类型的设置与实测不一致;提示“CMOSMemorySizeMismatch”,主板上的主存储器与CMOS中设置的不一样;提示“CMOSTime&DateNotSet”,CMOS中的时间和日期没有设置。这些都需要对CMOS重新设置。三、提示“KeyboardInterfaceError”后死机原因:主板上键盘接口不能使用,拔下键盘,重新插入后又能正常启动系统,使用一段时间后键盘无反应,这种现象主要是多次拔插键盘引起主板键盘接口松动,拆下主板用电烙铁重新焊接好即可;也可能是带电拔插键盘,引起主板上一个保险电阻断了(在主板上标记为Fn的东西),换上一个1欧姆/0.5瓦的电阻即可。四、自检过程中断在xxxKCache处这表示主板上Cache损坏,可以在CMOS设置中将“ExternalCache”项设为“Disable”故障即可排除。同理,在自检主板部件时出现中断,则可以认为该部件损坏,解决方法一般可以在CMOS中将其屏蔽,如果不能屏蔽该部件最好更换主板。五、提示“FDDControllerFailure”BIOS不能与软盘驱动器交换信息;提示“HDDControllerFailure”,BIOS不能与硬盘驱动器交换信息。应检查FDD(HDD)控制卡及电缆。六、提示“8042GateA20Error”8042芯片坏;提示“DMAError”,DMA控制器坏。这种故障需要更换。七、提示“DisplaySwitchNotProper”主板上的显示模式跳线设置错误,重新跳线。八、提示“KeyboardisLock...Unlockit”键盘被锁住,打开锁后重新引导系统。九、IDE接口设备检测信息为:“DetectingPrimary(或Secondary)Master(或Slave)...None”表示该IDE接口都没有找到硬盘,如果该IDE口确实接有硬盘的话,则说明硬盘没接上或硬盘有故障,可以从以下几方面检查:1、硬盘电源线和数据线是否接触不良,或换一根线试试;2、CMOS设置有无错误,进入CMOS将“PrimaryMaster”、“PrimarySlave”、“SecondaryMaster”三项的的“TYPE”都设置成“Auto”;3、替换法确认硬盘本身有故障。十、IDE接口设备检测信息下面显示“Floppydisk(s)fail(40)”出错信息表示CMOS所指定的软盘驱动器有问题。判断和解决的方法与硬盘相似。现象五:系统不能引导。这种故障一般都不是严重问题,只是系统在找到的用于引导的驱动器中找不到引导文件,比如:BIOS的引导驱动器设置中将软驱排在了硬盘驱动的前面,而软驱中又放有没有引导系统的软盘或者BIOS的引导驱动器设置中将光驱排在了硬盘驱动的前面,而光驱中又放有没有引导系统的光盘,这个都很简单,将光盘或软盘取出就可以了,实际应用中遇到“DiskBootFailure,InsertSystemDiskAndPressEnter”的提示,多数都是这个原因。如果是硬盘不能引导的话一般有两种情况:一种是硬盘数据线没有插好,另一种就是硬盘数据损坏。前者一般多会出现硬盘容量检测不正确和引导时出现死机的现象;后者则是干脆找不到引导文件或提示文件损坏。前者只需重新连接好数据线即可;后者则需要用win98的启动软盘或启动光盘启动,根据实际情况来定:一、提示“Invalidpartitiontable”或“NotFoundany[activepartition]inHDDDiskBootFailure,InsertSystemDiskAndPressEnter”,这说明找不到硬盘活动分区,需要对硬盘重新分区。二、提示“Missoperationsyste”,说明硬盘活动分区需要重新格式化(formatc:/s)。三、提示“InvalidsystemdiskReplacethedisk,andthenpressanykey”或显示“StartingWindows98…”时出现死机,说明硬盘上的系统文件丢失了或损坏,使用“sysc:”,命令传递系统文件给c盘,再将C拷贝给c盘。现象六:硬盘可以引导,但Windows不能正常启动,也不能进入安全模式。这种情况表明Windows98出现了严重的错误,首先,用杀毒软件查杀病毒,看是不是病毒造成的,如果没有发现病毒可以用以下方法试一试。一、直接将接口卡与各个外设都拨去,再插回去,并调整

温馨提示

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

评论

0/150

提交评论