电子病历中应用自然语言生成结构化数据的研究
电子病历中应用自然语言生成结构化数据的研究(1) 电子病历中应用自然语言生成结构化数据的研究
王巍 (武汉市第一医院网络中心,武汉 430022) 时间:2011-8-15 16:32:42 点击:97
摘要: 摘要:本文主要讨论在电子科技发展的今天,计算机技术与病历系统相结合,通过自然语言 录入系统,转化为结构化数据的方法,形成电子病历。研究这些方法在电子病
历系统应用中 会出现的一些技术难点。 关键词: 关键词:自然语言;结构化数据;db2pure xml;电子病历 中图分类号:tp274 文献标识码:a 文章编号:1007-9599 (2011) 05-0000-03 electronic medical record application of natural language generation structured data rese arch wang wei (network center,wuhan no.1 hospital,wuhan 430022,china) abstract:this article focuses on the development of electronic technology today,computer technology combined with the medical system through natural language input system,into a structured data approach,the formation of electronic medical records.these methods in the electronic medical record system application will appear in a number of technical diffi culties. keywords:natural language;structured data;db2 purexml;electronic medical records 一、概述 电子病历是科技化社会推进过程中的必然发展,其有助于各医院科室间对数据的交流和共 享;并成为保存人一生的病历记录的最佳载体,它以时间发展顺序,逐条记录一个人从出生 到死亡的所有临床诊断、检验结果和治疗信息情况;其真实客观的记录,也是医学研究最佳 的分析资料。 目前,我国的电子病历发展经历了三个阶段,概括来说,第一阶段为电子文档的阶段,将纸 质的病历录入为电子文档形式, 第二阶段为表格化的电子病历, 第三个阶段为半结构化阶段。 对于电子病历的内容录入,目前较多的采用的还是结构化的表单输入,规定好各种模板,然 后通过下拉列表等方式构成一个医学病历录入系统。这种方式,使得数据在
录入初始,就是 半结构化的,但是,它不符合一般人的信息表述方式,而且不够灵活,使用习惯上,也无法 得到认同,医生还是更习惯使用自然语言进行录入。但同时,对于计算机进行数据分析,保 存和分享来说,结构化数据才是最合适的,松散的自然语言,计算机并不认识,所以业界认 为还是以结构化数据为研究核心, 但是未来的发展方向是通过自然语言录入, 转化为结构化 数据。
二、业务分析 电子病历是以记录人一生的医疗数据为目标的,其记录的内容可以包括:就医诊断结果,过 敏史,药物使用记录,还有许多诊断技术生成的影像和信号,如 x 线检查、ct 扫描、磁共振 成像、内镜检查、病理学、超声波、心电图、脑电图、肌电图等等。在未来,他的记录除了 医生,护士,还可以包括普通药店等所有与医药相关的工作人员。 由于电子病历的录入者,并非专业的计算机人员,甚至还包括许多不会计算机的老医师,故 而,它的录入方式需要以简单,容易上手,不改变业务使用人员的操作习惯为目标。 一般来说,人从出生开始,就应该建立一个电子病历档案,该档案为全系统通用的,可以进 行共享,读取,保存等操作,人在就医的时候,由医生录入其病历资料,扫描保存各种诊断 的多媒体资料,由护士录入临床的各种护理操作,甚至药物使用等各种相关信息,并且系统 忠实记录录入时间和每次的修改时间。 而计算机则对这些信息进行分析处理, 形成结构化数 据进行保存。 医院可以对这些数据进行管理,清楚的知道患者的整个医疗过程,对这些数据进行分析,获 得宝贵的医学资料,提高医学质量。 三、技术分析 (一)自然语言数据录入 概述中,已经讨论了,目前的电子病历录入方式,最佳的是通过自然语言录入,在转化为结 构化数据进行存储分析。 自然语言数据录入——nlp,它是人工智能领域的子集,使用户在输入记录的时候,不必改 变使用习惯, 当病历录入计算机系统后, 由系统分析, 将自然语言转化为结构化数据。 因为, 计算机是不懂得人类的自然语言的,只用转化为结构化数据后,它才能够进行识别、理解和 处理,有助于日后的数据分析和搜索。而其中关键的就是对录入的自然语言句子进行分析, 处理其中包含的各种医学信息,如图 1。 结构化数据存储 医学术语库 计算机分析处理 录入自然语言
图 1、自然语言处理过程 自然语言的计算机处理是一个关系到计算机科学,语言学,逻辑学,心理学,人工智能等领 域的综合性研究。 (二)难点分析 首先,我们已经明确,在电子病历系统中,能够用来分析,存储,管理的数据应该是结构化 数据,而最佳输入则为,自然语言输入。所以,如何将自然语言通过计算机分析处理转化为 结构化数据成为我们要解决的技术问题。 对于自然语言,它显然的不同与计算机语言,本身的发展,又是先于计算机语言的,故而, 要将这样一种复杂的符号系统转化为计算机可以理解的结构化数据,是有一定难度的。 而且自然语言表达的意思,是具有极大的不确定性,和受语义环境影响的,尤其是中文字符 的意思,更加复杂了,举个最简单的例子,“意思意思”这个 4 个字的理解,就可以是多样化 的,更遑论,中文断句造成的不同表述:“我想起来了”,可以断成:“我”“想起”“来了”,也 可以断成:“我想”“起来了”,这就是完全不同的两种意思。 另外,在现代社会,自然语言的发展是迅速的,天天都有不同的新词汇出现,那么资料库的 更新也必须及时。 当然, 由于电子病历应用的特定场合, 使得在这个几方面的难度没有普通自然语言转化和维 护那么大。 首先,电子病历应用中的语言录入,较多的运用到了医学术语,而对于医学术语,我们应该 是要建立一个健全的医学术语资料库, 并对其进行定期维护更新的, 所以对于这方面的顾虑 就可以减少很多。 再次,病历的语言结构是比较固定的,其语义环境不像平常交谈中的那么多变,所以,我们 的语义规则库的建立会缩减很多。 当然,对于电子病历的语义转化技术,还是需要有数学模型,算法,规则等来组成的,其复 杂程度是一点都没有减少的。 (三)语言分析 电子病历语义化技术, 就是将以自然语言为载体的临床记录, 加工成计算机可以直接处理和 计算的语义数据,也就是我们进行语言分析的目标,它包括语义标注技术和术语加工平台。 假定我们已经建立了表述模型,术语体系和标注规则,那么,实际的语义标注过程可以理解 为: 1.通过语义识别技术,将自然语言录入的临床表述识别为语义化的临床表述。 2.通过术语标注技术,用标准临床术语体系中的概念和关系表示临床表述中的词汇,而此处 需要通过定位连接,建立好语义化数据与自然语言临床表述的联系。 而术语加工平台的存在, 就是为了对医学术语资料库进行维护管理的, 它利用一系列工具对 此加以维护,使之不断扩充更新,为临床术语标注技术提供数据基础,同时根据不同的术语 体系,建立相应的标注规则。 通常,一段临床表述中,会有一个核心概念,并且由一些修饰关系来修饰那个核心概念。例 如,阵发性前额隐痛。这个自然语言表述,
可以分析为: 核心概念是隐痛,修饰关系有两个:阵发性,前额。阵发性修饰其发作情况,前额修饰其病 症位置,转述为临床术语体系就是:
图 2、关系图 由计算机通过模型分析,转化成一个可以存储的数据格式。 (四)存储格式 自然语言经过分析后,本文选用 xml 格式进行组织,这有利于在数据库中的存储,对于数 据分析,也可以形成较完整的结构形式。 我们可以想象,一个人一生的病历记录该是多么庞大的数据,如果采用一般的表结构,那么 可能形成近千张表,这么多表的管理查询是非常耗时耗力的。 而 xml 格式的存储,可以理解是数据元的存储,它用一组属性描述其定义、标识、表示和 允许值的数据单元。在特定的语义环境中,它被认为是不可再分的最小数据单元。 数据元每一个取值在全局上都是唯一的,完成的数据元标准将有利于表述术语的标准化。 xml 格式片段如下: zhangsan h1n1
…... 四、数据库分析 电子病历因其数据复杂, 所以,本文所用purexml 存储。 它设计简单, 使得表数量大大减少; 易于理解,医生可直接理解数据;查询方便,可以进行语义化复杂查询条件设置,提高查询 的精确性;并且它的配置灵活,可以由医生自定义模板;数据标准化程度高,便于知识库管 理和方便的输入。 (一)db2 和 xml 数据 db2 通用数据库是 ibm 的关系型数据库管理系统, 它可以在一个数据库系统中同时处理关系 数据和 xml 数据。 xml 数据有其内在分层机构,可以用节点以树的形式表现,db2 9 为管理、存储、查询和索 引它提供了一些新的机制。db2 9 引入了一种 xml 数据类型,允许 db2 以一种经过解析的、 分层的格式存储 xml 文档。而且数据库已经不再需要启用 xml extender 功能,因为 xml 已经 支持现在的 db2 引擎的固有部分。 在数据库中,xml 文档存储在定义为 xml 数据类型的列中,一个 xml 列中的每一行都存储单 个格式良好的 xml 文档,这些文档分层存储,并且保留了 xml 数据模型,甚至可以存储 xml 文档的片段,文档不是以文本形式存储,也不映射至另一数据模型。如图,是 db2 9 的内部 数据示意。 图 3、db2 9 数据库的内部示意 (二)xml 数据存储 下面创建一个表,用于存储含有 xml 数据的病历记录。 create table o_records ( id int primary key not null, status barchar(10), record xml); id 对应于每个人在电子病历数据库中唯一的标示符,status 标示该病历记录的类型,是门诊病历还是手术记录等类型,record 是 xml 格式的,用于存储由自然语言转化而来的 xml 结构 数据。 当然,在这个数据库中还应该包括其他的关系型数据表,
account——用户表,status——状 态表,diagram——图形记录表,等等。 我们已知 xml 数据在 db2 中存储时,是存储在定义为 xml 数据类型的列中,如图 4,就是关 系表中一个 xml 类型的列。任何结构良好的 xml 病历文档都可以插入这个列。在物理存储 层,主存储单元是一个节点。
对于同时包含关系列和 xml 列的表,关系列存储为关系格式,xml 列存储为经过解析的树。 table idstatusrecord(xml 列) 数据 1 数据 2 数据 3 图 4. xml 数据存储 (三)数据查询 db2 9 为xml 数据提供的新机制中,还有一项是基于业界标准的查询语言支持,包括 sql 的 新的 xml 扩展(通常被称作 sql/xml)和 xquery,他们可以同时处理表格数据结构和 xml 数据 结构, 并且, 在查询时, 可以使用两者的任意一种语言, 也可以同时使用两种语言进行查询。 图 5、db2 9 数据库查询流程示意 用 sql 查询 xml 数据时,可以使用 sql 全查询或 xmlquery 和 xmltable 的 sql/xml 查询函数来 查询,还可以在针对 xml 数据的 sql 查询中使用 xmlexists 谓词。当仅使用 sql 查询时,只能 通过全查询在列级别进行查询,不能返回 xml 片段。 用 xquery 函数检索 db2 数据,可以调用下列函数之一来获取 db2 数据库中的 xml 数据: sqlquery 和 xmlcolumn。 下面我们查询,门诊病历中包含“流感”的用户。 select id,xmlquery(’$r/o_records/name’ passing o_records.record as \"r\") from o_records where status=1 and
xmlexists(’$r/o_records/diagnosisname[text()=\"流感\"]’ passing o_records.record as \"r\"); (四)xml 索引 xml 数据索引可用于提高查询存储在 xml 列中的 xml 文档的效率。 它根据 xml 模式表达式对 存储在各个列中的 xml 文档中的路径和值创建索引键,从而提供对文档内的节点的访问, 而不是提供对文档开头的访问,可以同 create index 创建索引。 五、总结 本文讨论的主要是自然语言的计算机分析处理方式, 电子病历数据的存储方式。 对于自然语 言的处理, 大部分上还是要依靠医学术语库的建立和管理完善, 而我们得到了那么大量的数 据后,最主要还是进行数据分析,希望能对医学事业的健康良好发展起到推动作用。 参考文献: [1]李俊杰.基于自然语言处理技术的消化科内窥镜检查报告的结构化 [2]王小捷,常宝宝编著.自然语言处理技术基础
[3]王晓龙,关毅.计算机自然语言处理 [4]db2 xml 指南(版本 9) [5]db2 9:purexml 快速入门(英文
电子病历中应用自然语言生成结构化数据的研究—文档资料库www.039.com汇集和整理大量word文档,专业文献,应用文书,考试资料,教学教材,办公文档,教程攻略,文档搜索下载下载,拥有海量中文文档库,关注高价值的实用信息,我们一直在努力,争取提供更多下载资源。