技术领域
[0001] 本发明涉及医疗技术领域,具体地,涉及一种医疗知识图谱构建方法。
相关背景技术
[0002] 知识图谱从图形上描述了现实世界中的概念和实体之间的复杂关系,让互联网通过一种人类更容易接受的认知世界的方式去传达信息,去组织、管理信息,也让人们更好的理解知识。知识图谱还可以结合大数据、深度学习等为我国的智能科技的发展做出巨大的贡献。
[0003] 知识图谱设计到很多的技术,其中主要包括知识表示、图谱构建和图谱应用三个方面。知识表示是针对计算机内部表示和处理客观事件知识的方法研究;知识图谱侯建解决如何构建一个算法从客观世界或各种数据资源获取客观事件的互联网知识,知识图谱应用的主要任务是研究如何利用知识图谱去更好的解决现实生活中的实际问题。
[0004] 知识图谱的构建需要基于特定的知识表示模型,利用几区学习和信息抽取等技术从复杂多样的互联网信息中抽取出有价值的信息,为知识图谱提供数据来源,为图谱构建奠定基础,其中核心的技术是信息抽取和语义集成。知识图谱的构建方法受很多因素影响,主要三个因素:一种是从什么样的数据资源中学习知识,原始网页数据包括结构化(例如数据库)、半结构化(例如网页上的表格)和非结构化(例如纯文本数据)三种数据;其次,学习什么样的知识,主要包括概念层次、事实知识、事件知识等;第三,采用什么样的学习方式来获取知识。
[0005] 知识图谱是结构化的语义知识库,用于以符号形式描述物理世界中的概念及其相互关系,其基本组成单位是“实体-关系-实体”三元组,以及实体及其相关属性-值对,实体间通过关系相互联结,构成网状的知识结构。
[0006] 目前,现有的医疗知识图谱都是以半自动或者人工的方式构建,因此存在以下问题:(1)不完整,知识图谱中很多实体以及实体之间潜在的关系没有被挖掘;(2)更新效率低,更新容易出现错误信息。
具体实施方式
[0021] 下面结合附图及具体实施例对本发明作进一步详细说明。
[0022] 如图1所示,本发明医疗知识图谱构建方法,包括如下步骤:
[0023] (10)医疗文本数据获取:通过网络爬虫技术,爬取多个数据源中包括疾病描述、症状描述、问答、评论的医疗文本数据;
[0024] 优选地,所述多个数据源至少包括百度百科、丁香园、药监局数据源。
[0025] 医学知识网络爬虫主要爬取专业医学网站,包括丁香园、飞华健康网、百科百科等,爬取疾病描述、评论、症状描述、药品说明书等数据。
[0026] 在爬取数据的过程中,我们爬取网站的页面类型主要分为静态页面和动态加载两个方式,针对这两种情况,我们采用如下三种方法:1、基于正则表达式的方式;2、基于模拟浏览器的方式;3、基于数据包的方式。我们针对所要爬取的目标网站的特点,选择合理的方式进行爬取。
[0027] 第1种方式是针对静态页面或非js动态加载的页面。通过直接请求url获取整个页面的静态内容,相当于得到一个文本信息,制定正则表达式规则。从而获取需要的内容;
[0028] 第2种方式是针对以数据包的形式传递数据信息的页面,特别是json格式或类似json格式进行前后台数据交互的方式。通过分析网络数据,我们可以截获json数据包的访问路径,分析访问路径并修改相应参数,可以对目标网站的后台直接发送请求,从而获取json格式或者其它格式的数据包,解析格式信息获取我们需要的数据;
[0029] 第3种方式针对的是动态加载页面,即非静态页而,通过直接请求url无法获取我们需要的数据。这些页而主要通过js动态加载、前端数据绑定等技术,实现页面渲染和数据加载的异步进行。在本文中采用摸拟浏览器的方法实现动态页而数据爬取。其实质是通过嵌入插件的方式访问动态加载的页面时,会得到页而加载完成后的页面元索,通过访问这些元素的内容、调用函数、模拟浏览器操作等方式来获取需要的数据。
[0030] (20)医疗知识图谱获取:通过词典和规则的方法,从医疗文本数据提取医学实体和各医学实体之间的关系,得到包括医学实体图谱和医学实体关系图谱的医疗知识图谱;
[0031] 医学领域的医学数据在描述上具有特定风格、语法、结构等,首先通过专家编写规则,然后将数据与专家的规则进行匹配,也可以通过将数据先进行分词获得词组和词性,再与规则进行匹配。在本发明中采用结合这两种方法进行实体提取。所以首先需通过中文分词将文本数据分隔为一连串的词组,再指定规则去匹配文本获得命名实体。流程如图2所示。
[0032] 所述(20)医疗知识图谱获取步骤包括:
[0033] (21)指定规则库:根据每类文本特点,指定规则库;
[0034] (22)实体抽取:输入需要提取实体的文本,根据数据是否规范,分别进行实体抽取,得到医疗知识图谱。
[0035] 所述(22)实体抽取步骤包括:
[0036] (221)对于规范数据,例如,药品说明书中的数据,直接根据文本匹配规则,抽取实体,所述规则模型如下:
[0037] (i)在瑶琴适应症标签中,根据本品用于|*、本品可用于|*、本品适用于|*规则获取疾病或者症状实体;
[0038] (ii)在药品名称标签中,根据通用名称:|*、英文名称:|*、商品名称:|*规则获取瑶琴实体及其别名属性;
[0039] (iii)在成分标签中,根据本品成分为|*、本品活性成文为|*规则获取成份实体;
[0040] (iiii)在注意事项中,根据*|慎用规则获取人群实体。
[0041] (222)对于非规范数据,包括如下步骤:
[0042] (2221)利用结巴分词对词性进行标注,提取出符合领域的名词,然后通过基于文本的规则匹配,获取医学领域的实体,将其加入词典中;
[0043] (2222)先通过词典去匹配句子中的词语,如果可以匹配到,定位到该词,并定位该句距离匹配到的实体最近的动词,即谓语动词,则该谓语前及谓语动词后的名词都极为可能是医学领域实体;
[0044] (2223)将谓语前后的名词提取出来,并将谓语和谓语前面的副词或者形容词保存下来,形成一个三元组的关系,即实体-谓语-实体。
[0045] (30)知识图谱存储:将医疗知识图谱存储在Neo4j图数据库中;
[0046] Neo4j是一个高性能的NoSQL图形数据库,它将结构化数据存储在网络上而不是表中。Neo4j也可以被看作是一个高性能的图引擎,该引擎具有成熟数据库的所有特性。
[0047] 在本发明中,采用基于带标签的属性图模型,其特征如下:
[0048] (1)由节点、关系、属性和标签组成;
[0049] (2)节点上包含属性。把节点想象成存储属性的文件,属性可以任何键值对的形式存在;
[0050] (3)节点可以被打上一个或者多个标签。标签把节点组织在一起,并表示它们在这个数据集中的角色;
[0051] (4)联系连接节点,从而构成图。每条联系都有一个方向,一个名字、一个开始节点和结束节点;
[0052] (5)就像节点一样,联系可以有属性,通过在联系上增加属性,可以给图计算提供元数据,也可以给联系增加额外的语义(包括特征和权重),还可以用于运行时的约束查询。
[0053] 在医学知识图谱中,节点为对应的医学实体,标签为实体的类别,即疾病、症状、药品、科室、部位、人群等,属性为实体的医学描述信息。关系为实体之间的关系。如图3所示,描述了各实体节点、属性、关系、标签信息。
[0054] (40)实体融合:采用集成实体对齐的方法进行实体融合。
[0055] 首先获取两个知识图谱中的信息,并生成对用向量,经过症状实体融合、疾病实体融合、药品实体融合的顺序。如果存在两个实体相似度值大于阈值,则合并两个实体内容,并将是实体从待融合知识图谱中标记为已融合(下次不再融合)。如果症状、疾病、药品在这一过程中都没有找到相似的实体,则合并两个知识图谱相异知识,更新当前知识图谱,否则重复整张、疾病、药品实体融合过程。
[0056] 医学知识图谱中疾病、症状、药品实体的融合是通过计算每个实体间相似度判断是否指向真实世界同一事物。
[0057] 如图4所示,所述(40)实体融合步骤包括:
[0058] (41)实体标识:读取来自当前知识图谱和待融合知识图谱中的实体属性和与之相邻的关系,并用唯一ID生成向量表示属性、与之关联的实体、名称;
[0059] (42)向量合成:将医学名称向量和属性向量这两个向量合并成一个新的向量;
[0060] (43)计算相似度:计算待融合知识图谱中的实体与当前知识图谱中实体的相似度;
[0061] (44)阈值判断:判断相似度是大于阈值,如果不在相似度大于阈值,则证明当前知识图谱中不存在与待融合知识图谱中的这个实体相同的实体,将该实体加入当前知识图谱;
[0062] (45)人工检验:如果大于阈值,则证明待融合知识图谱中的实体在当期知识图谱中存在极度相似的实体。由于医学知识的严谨性,将相似实体通过专业医师校验,如果校验通过,合并两个实体属性和关系,在当前知识图谱中的实体增加别名属性。
[0063] (46)更新图谱:更新当前知识图谱,包括实体属性和关系。
[0064] 相似度的计算方法采用余弦相似度。余弦相似度计算公式如下:
[0065]
[0066] 其中C1和C2表示两个矢量,C是表示矢量维数。由于在医学知识图谱中,能够表明实体身份最重要的是实体名称和属性,实体的邻近关系作为一个参考,所以在相似度计算中设置一个权值γ,用于名称是属性向量与关系向量的一个权重分配,同时关系向量只选取重要类别的关系。两个实体相似度通过这两组向量相似度组合为均方根,计算公式如下:
[0067]
[0068] 其中V1和V2表示两个实体,vn表示名称和属性向量,vγ表示向量关系。具体表示用独热编码。γ取值根据不同实体设置的值不一样。以下详细说明症状、疾病、药品各实体间相似度计算时向量及γ取值设置:
[0069] (1)症状:属性向量包括症状名称(别名)、人群、部位。关系向量包括伴随症状和关联的疾病。γ取值为0.6。
[0070] (2)药品:属性向量包括药品名称(别名)、人群、类型、厂商、成分、禁忌、批准文号。关系向量包括关联的症状和疾病。γ取值为0.6。
[0071] 疾病:属性向量包括症状名称(别名)、人群、部位、科室。关系向量主要为关联的症状。γ取值为0.5。
[0072] 本发明首先进行数据的获取以及数据的处理,初次构架知识图谱;多重数据源相融合,保证了数据的完整性;之后,对初次构架的知识图谱进行相同实体融合,并添加了人工检验的方式,提高了知识图谱的完整性和准确性。对于最新的信息以及在各个网站上发生变化的实体,进行及时更新,实现高效、实时对知识图谱中的数据进行更新的目的,减少了知识图谱数据的滞后性以及提高了完整性。同时,智能融合配合人工审核的方式,提高了融合过程中数据的准确性和效率。