基于问答系统的医学知识库构建方法与流程

文档序号:12667464阅读:352来源:国知局
基于问答系统的医学知识库构建方法与流程

本发明涉及医学知识库,尤其是涉及基于问答系统的医学知识库构建方法。



背景技术:

医疗系统的数字化和信息化是医学发展的必然趋势,随着信息技术的发展,医疗行业正经历着前所未有的信息爆炸,特别是智能医疗已经成为智能城市的热门话题之一,出现许多系统应用于医疗信息管理和检索。在这过程中产生的数据,例如,电子健康档案和电子病历,急需一个强有力的信息管理工具进行处理和分析。

知识库又称人工智能数据库,它是一种结构化、易操作、易利用的有组织的知识集群,它不仅仅是一个查询和检索的工具,知识库需要能从海量的信息中发现有价值的信息,知识库的服务能力可以帮助人们更好更快地解掌握所需的相关信息(马利,崔志伟,毛树松.我国医学知识库应用现状研究[J].医学信息学杂志,2013,34(11):55-59.)。病历知识库包括事实库和规则库两类,事实库提供具体内容,例如治疗方法、症状等,规则库则是提供它们之间的关系;疾病知识库根据疾病的种类对信息进行采集、分类、标注,辅助临床诊断进行决策;临床知识库可以满足每个病人的个性化需求,能够根据输入数据动态调整得到的结果。

现有的医学知识库通常是利用机器学习的方法进行构建,但由于获得的错误实体关系,结果并不尽如人意,无法提高知识库的质量。并且,现有医学知识库功能较为单一,大多数只对知识进行简单的集成,较多为静态数据,知识重用的效率不高,实用价值不高。



技术实现要素:

本发明的目的在于提供基于问答系统的医学知识库构建方法。

本发明包括以下步骤:

1)在数据处理阶段,对结构化和非结构化数据进行处理,并将处理结果存入知识库;

2)对于不确定的数据,具体分析不确定的数据之间的隐藏关系,并提取出重要的关联信息;

3)利用交互式众包系统即专家问答平台,弥补机器学习在动态环境下的不稳定性,通过得到的专家反馈得到更好的输出结果。

在步骤1)中,所述数据处理的数据来源于公开的医疗网站和真实的医疗数据,并利用数据清洗技术对搜集到的数据进行预处理;具体步骤如下:

(1)删除重复的数据记录;

(2)根据数据集的属性,利用聚类的方式剔除错误数据,所述聚类的处理过程为:从医疗网站收集的数据,利用K-means算法,根据属性,构造k个分组,每个分组代表一个聚类,每个分组至少包含一个数据点,每个数据点属于且仅属于一个分组;通过反复迭代的方法改变分组,使得同一组中的点尽量靠近,不同组中的点尽量远离;所述从医疗网站收集的数据包括病人姓名、出生日期、身份证号、就诊时间、疾病名称等不同属性的数据;

(3)利用一个统一的全局变量来填充空值;

(4)将模糊和噪声数据提交给专家问答系统处理,专家问答系统收到数据后,将数据通过众包系统提交给专家问答系统的专家用户进行判断,将判断结果储存到数据库中,将利用解析和处理后数据进行实体与实体之间关系的抽取。

在步骤(4)中,所述实体与实体之间关系的抽取的具体方法可利用层次分割处理算法将医疗数据分割成关键词或短语;所述层次分割处理算法是:层次短语规则的分割需要进行普通短语规则抽取,以及实体的规则抽取,以现代汉语的语法知识库作为基础,将普通短语模型拓展成层次化的短语,在符合规则的情况下可以继续拆分为更小的实体。

在步骤2)中,所述对于不确定的数据,具体分析不确定的数据之间的隐藏关系,并提取出重要的关联信息的具体方法可为:

为进一步获得抽取出的实体之间的关系,利用关联规则挖掘技术进行分析。

在步骤3)中,所述利用交互式众包系统即专家问答平台,弥补机器学习在动态环境下的不稳定性,通过得到的专家反馈得到更好的输出结果的具体方法可为:

系统中的临床数据来源于真实的医院敏感数据,为保护病人的隐私,利用k-anonymity方法对数据进行处理;所述k-anonymity方法的具体步骤为:通过概括和隐匿技术,发布精确度较低的数据,为确认模糊数据,设计一些合适且简单的“是/否”问题发布到专家问答平台当中,由专家进行回答。

现有的医学知识库通常是以医学专业词典为基础,利用机器学习的方法进行构建,由于机器学习在动态环境中的局限性,往往产生一些模糊的实体及其关系,无法保证知识库的完备性和准确性。为解决这个问题,本发明提出基于问答系统的医学知识库构建技术,主要包含三个部分:数据处理,数据分析和专家问答平台。首先在数据处理阶段,利用层次分割的方法从临床数据中提取实体和相关关系;然后,运用关联规则算法对提取的结果进行分析并挖掘实体间的关联,将挖掘出的实体关联与医学词典进行匹配,匹配正确的结果将直接存入知识库;最后,将无法确认的实体关联利用众包技术自动生成问题提交给专家问答平台进行回答,利用多数投票算法从专家的答案中选择最终结果并存储到医学知识库中。

附图说明

图1为医学知识库构建框架图。

图2为K-means聚类过程。

图3为语义分析非结构化数据。

图4为语义分析结构化数据。

图5为数据分析。

具体实施方式

以下实施例将结合附图对本发明作进一步的说明。

本发明由三个部分组成:数据处理,数据分析和专家问答平台,可以根据输入信息更新、完善知识库。图1展示本发明整体的技术架构。

首先在数据处理阶段,对结构化和非结构化数据进行处理,并将处理结果存入知识库,对于那些不确定的数据,具体分析它们之间的隐A藏关系,并提取出重要的关联信息。最后,利用交互式众包系统(即,专家问答平台)弥补机器学习在动态环境下的不稳定性,通过得到的专家反馈可以得到更好的输出结果。在每一个步骤中都有专家问答平台的参与,以提高准确性。

(1)数据处理

本发明的数据来源于公开的医疗网站和真实的医疗数据,并利用数据清洗技术对搜集到的数据进行预处理[3]。首先,删除重复的数据记录,其次,根据数据集的属性,利用聚类的方式剔除错误数据。

聚类方法的处理过程:从医疗网站收集的数据包括病人姓名、出生日期、身份证号、就诊时间、疾病名称等不同属性的数据。利用K-means算法,根据属性,构造k个分组,每个分组代表一个聚类,每个分组至少包含一个数据点,每个数据点属于且仅属于一个分组。通过反复迭代的方法改变分组,使得同一组中的点尽量靠近,不同组中的点尽量远离。K-means聚类过程如图2所示。

之后,利用一个统一的全局变量来填充空值,最后,将模糊和噪声数据提交给专家问答系统处理。系统收到数据后,将数据通过众包系统提交给系统专家用户进行判断,判断结果将储存到数据库当中。将利用解析和处理后数据进行实体和实体之间关系的抽取。

(2)实体抽取

利用层次分割处理算法将医疗数据分割成关键词或短语[4]。

层次分割处理算法基本思想:层次短语规则的分割需要进行普通短语规则抽取,以及实体的规则抽取。以现代汉语的语法知识库作为基础,将普通短语模型拓展成层次化的短语,例如“X1并且X2”,X1,X2在符合规则的情况下可以继续拆分为更小的实体。

对于分割处理后的每个关键字或段落,利用一些专业的医学字典进行验证,并将匹配的数据存入的系统当中。图3、图4展示一个完整的数据处理与分析的例子,其中数据抽取过程如图3所示。

由于部分提取到的实体无法与医学词典的内容匹配验证,对于这部分数据利用基于医学本体的语义匹配技术[5]进行处理。

语义匹配技术的处理过程:Sim(x,y)表示两个任意概念之间的相似度,Rel(x,y)表示两个任意概念之间的相关度,Sim(x,y)∈[0,1],Sim(x,y)=1时,表示两个概念完全相似,Rel(x,y)∈[0,1],Rel(x,y)=1时,表示两个概念完全相关,Rel(x,y)=0时,表示两个概念之间完全不相关。

Weight(i)表示连接概念节点x和y最短路径上边的权重值,n表示为x和y之间的边数,为可调节参数。为简化将权重值设为1。

而CProperty(x,y)表示概念x和y中共同的对象属性;DProperty(x,y)表示概念x和y中不同的对象属性。

处理完毕,剩余无法验证的部分将提交给专家问答系统,由系统专家用户进行判断。最后,所有处理的结果将被存入结构化的表格当中,具体如图4所示。

(3)数据分析

为进一步获得抽取出的实体之间的关系,利用关联规则挖掘技术进行分析[6]。主要思想是挖掘出频繁项集,而频繁项集里的项通常出现在同一段落或句子。所以,采用FP-Growth算法,它对大型数据集的处理优于其他算法。

FP-Growth算法的基本思想:构建FP-tree,通过两次数据扫描,将原始数据中的事务压缩到一个FP-tree树,该FP-tree类似于前缀树,相同前缀的路径可以共用。接着递归挖掘FP-tree,通过FP-tree找出每个item的条件模式基,递归的挖掘条件FP-tree得到所有的频繁项集。

图5是语义分析的一个简单例子。如图5的Items 1所示,原始数据经过处理后,来自于同一个医疗记录的抽取结果将被存放在一起。FP树将合并相同的频繁项集,基于元素的绝对出现频率对元素进行排序,之后遍历数据集,去除不符合最小出现频率的元素项,之后对元素进行重排序,结果如图5的Items 2所示。对数据项进行过滤和排序之后,开始构建FP树。从空集开始,将过滤和重排序后的频繁项集依次添加到树中。如果树中已存在现有元素,则增加现有元素的值;如果现有元素不存在,则向树添加一个分支,以此类推即可构建出一棵FP树。之后可以进行频繁集的抽取,抽取出的结果将被存入的数据库当中。

对于那些仍旧不确定的数据,利用专家问答平台进行进一步的验证。

(4)众包系统

系统中的临床数据来源于真实的医院敏感数据。为保护病人的隐私,利用先前论文中k-anonymity方法[9]对数据进行处理。

k-anonymity方法的基本思想:通过概括和隐匿技术,发布精确度较低的数据,在的系统中,以病人数据表举例,vid={姓名,性别,身份证号,就诊时间,疾病名称,疾病症状,治疗方法,历史病例,主治医生},采用k-anonymity,k=9,每条记录至少与数据表中其他k-1条记录具有完全相同的准标识符属性值。

为确认模糊数据,设计一些合适且简单的“是/否”问题发布到专家问答平台当中,由专家进行回答。以下是一些简单例子:

Q1:肠易激综合症是一种疾病吗?

Q2:咳嗽是疾病的症状吗?

Q3:左氧氟沙星是一种药吗?

Q4:0.5g是药的一种剂量吗?

Q5:肺炎住院是病史的一种吗?

Q6:咳嗽是感冒的症状吗?

Q7:左氧氟沙星可以用来治疗肺部感染吗?

Q8:因肺炎住院可能是肺部感染的病史吗?

Q9:0.5g是左氧氟沙星的常规剂量的吗?

设计一个统一的界面来发布问题、收集答案。对于收集回的大量专家回答,使用多数表决原则[10]决定每个问题的正确答案。对于每个问题,每个专家可以只有一个答案。所以对于n多个不同的答案,最后正确答案的出现次数大于[n/2]次。

算法1计算是和否回答的频率,具有更高频率答案将作为正确答案存入的数据库。而对于是和否回答具有相同的频率的问题,将被重新提交回专家问答平台,收集更多的答案后将再次进行判断。

针对本发明中的相关技术和解决方案,实现一个实际的医学知识库构建系统。实现一个灵活的可视化工具展示最终的知识库。如图5所示,获得的知识库可以表示成一个知识图谱。图的每个节点代表一个实体,两个节点之间的边表示两个实体之间的关系。如图5所示,使用D3.js[14]来实现知识图谱的可视化。用户可以看到疾病分类的一个概况。通过点击每个分类节点,用户可以放大这类疾病详细的子图节点。如果疾病节点过多,系统将结合这些类似的疾病节点为一个大的节点。节点越大,说明包含的子节点就越多。这种灵活的用户界面可以让用户通过简单的点击操作放大或缩小图节点,进而访问的知识库中的所有实体。

系统提供一个总页面,页面包含提取的所有实体数据,实体将根据疾病类别进行归类。用户可以点击每个链接查看更详细的实体数据。疾病的详细页面展示疾病名称、症状、主要治疗方法等数据。

在专家问答平台上,每个专家在注册时需要选择他们所擅长医学领域,包括疾病类别和具体疾病,当专家登录的问答系统后,进入问答页面,可以看到所有与其所选择领域相关的专业问题;每个问题的页面包含两个选择“是”和“否”。专家选择答案,点击下方的“提交”按钮提交回答。如果不想回答该问题,专家可以点击“删除”按钮删除这个问题,这个问题将从他自己的页面被删除。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1