面向医药领域的深层语义解析

发表时间:2020/9/16   来源:《中国西部科技》2020年9期   作者:陈敏隽
[导读] 复旦大学附属上海市第五人民医院,上海200240
        陈敏隽
        复旦大学附属上海市第五人民医院,上海200240
        摘要:在医药这一领域有着丰富的文本信息资源,例如电子病历、药品说明书、医生处方和医嘱等,这些信息集中不仅包含患者的诊疗信息和医生临床诊断经验信息,而且还蕴含丰富且有价值的医学知识。由于这些医学知识分散在大量的文本中,并且大部分信息是以纯文本形式存储的,所以需要借助自然语言处理技术帮助医生和药师等工作人员从海量的文本信息中提取出关键且有用的信息,进而将纯文本信息转化为可使用的医学知识。针对医药这一领域的文本解析,由于其专业性和复杂性,浅层的自然语言处理技术已经不能满足当前需求。深层语义解析技术在英文文本格式下已经取得很好的应用,但在中文领域却差强人意。究其原因,深层语义解析在中文文本的难点在于中文的语法更加复杂且更重语义,不同领域的中文语法结构有很大的差异,且深层语义解析模型的领域性较强,在其它领域取得良好结果的模型并不一定适合医药领域。
        基于医药领域中文文本解析的难点,本文提出一种面向中文医药领域的深层语义解析模型(Deep semantic analysis model for Chinese medicine, DSACM),将中文医药文本转化成其相应的意义表示看作是一个机器翻译的过程。具体而言,用统计词对齐模型进行双语词典的获取,这个双语词典包含自然语言字符串连同它的 MRL(Meaning Representation Language) 表示。通过同步上下文无关文法 (Synchronous Context-Free Grammars, SCFG)解析框架结合这些自然语言字符串以及它们的 MRL 翻译来最终形成完整的 MRs(Meaning Representation)。然后,针对中文医药领域文本的特点提出数据预处理算法,包括数据清洗和数据重构等,以便使得深层语义解析模型的性能有较大提升。最后,本文用函数式查询语言(Med-FunQL)构造了用于评测深层语义解析模型性能的数据集(MEDQUARY),同时融入了美国国家地理数据库 (GEOQUERY),为中文医药领域的研究贡献出中文评测数据集。实验结果表明,本文提出的方法在数据集 MEDQUERY 上的实验结果准确率 80.4%, 召回率62.3%,F1值70.8%;在中文版GEOQUERY上的实验结果准确率71.9%, 召回率 56.4%,F 值 62.1%。说明统计机器翻译技术可以用在医药领域的中文语义解析任务。
关键词:统计机器翻译;医药领域;深层语义解析
Deep Semantic Analysis for The Medical Field
ABSTRACT
        In the field of medicine, there are rich text information resources, such as electronic medical records, drug specifications, doctor's prescriptions and medical orders. These information sets not only include patient information and doctors's clinical diagnosis experience information, but also rich and valuable medicine knowledge.Because these medical knowledge is scattered in a large amount of text, and most of the information is stored in plain text, natural language processing technology is needed to help doctors and pharmacists to extract critical and useful information from the vast amount of textual information. In turn, plain text information is transformed into usable medical knowledge.For the text analysis in the field of medicine, due to its professionalism and complexity, shallow natural language processing technology can no longer meet the current needs.The deep semantic analysis technology has been well applied in the English text format, but it is not satisfactory in the Chinese field. ?The reason for the deep semantic analysis in Chinese text is that the Chinese grammar is more complicated and more semantic. The Chinese grammatical structure in different fields is very different, and the deep semantic analysis model is more domain-oriented and obtained in other fields. Models with good results are not necessarily suitable for the medical field.
        Based on the difficulty of Chinese text analysis in the field of medicine, this paper proposes a deep semantic analysis model for Chinese medicine (DSACM), which translates Chinese medical text into its corresponding meaning and is regarded as a process of machinetranslation.Specifically, a bilingual dictionary is obtained using the statistical word alignment model, which contains a natural language string along with its MRL (Meaning Representation Language) representation.The Synchronous Context-Free Grammars (SCFG)  parsing framework combines these natural language strings and their MRL translations to form a complete MRs (Meaning Representation).Then, the data preprocessing algorithm is proposed for the characteristics of the Chinese medical field text, including data cleaning and data reconstruction, so that the performance of the deep semantic analysis model is greatly improved.Finally, this paper uses the functional query language (Med-FunQL) to construct a dataset (MEDQUARY) for evaluating the performance of the deep semantic analysis model, and incorporates the National Geographic Database (GEOQUERY) to contribute Chinese to the Chinese medical field. The experimental results show that the accuracy of the experimental results in the dataset MEDQUERY is 80.4%, the recall rate is 62.3%, and the F1 value is 70.8%. The accuracy of the experimental results on the Chinese version of GEOQUERY is 71.9%, and the recall rate is 56.4%, and the F1 value is 62.1%.Explain that statistical machine translation technology can be used in Chinese semantic analysis tasks in the medical field.
Keywords:Statistical machine translation;Medical field; Deep semantic analysi
第1章绪论
1.1研究背景
        自然语言处理的主要目标之一是构建能够理解自然语言的自动化系统,把自然语言转化为计算机程序更易于处理的形式。一般来说,一个自然语言处理系统,如果完全没有语义解析的参与,能够获得很好的系统性能是不可想象的。然而,自然语言的语义计算问题十分困难,如何模拟人脑思维的过程,建立语言、知识与客观世界之间可计算的逻辑关系,并实现具有高区分能力的语义计算模型。至今仍是个未能解决的难题。
        医药领域有着海量的文本信息资源,例如药品说明书、处方和医嘱信息等,其中蕴含丰富且有价值的医学知识。但是这些医学知识分散在海量的文本中,且以自由文本的形式存在,需要借助自然语言处理技术帮助医生、药师等从庞大的记录中萃取出关键信息,并将文本转化为可使用的知识。由于医药领域的专业性和复杂性,浅层的自然语言处理技术已经不能满足需求。本文研究的主要目标是用深层语义解析模型对医药领域的数据进行解析。
1.2研究内容
1.2.1本文的难点
        本文的研究重点是面向医药领域的中文文本解析。在医药领域,语义解析方法能够在英文文本上取得很好的应用,但在中文文本中运行没有取得良好成果,其难点与挑战在于:
        (1) 中文与英文的语法结构有较大差异,适用于英文的语义解析模型并不一定适用于中文。(2) 英文重结构,中文重语义,英文语义解析方法没有较好的考虑中文语言特点。(3) 不同领域间中文的语法结构存在一定的差异,适用于某领域的中文语义解析模型并不一定能较好的扩展到其他领域。
1.2.2本文的贡献点
        基于医药领域中文文本解析的难点与现状,本文首先提出一种面向医药领域的中文语义解析模型 (Deep semantic analysis model for Chinese medicine, DSACM)。DSACM借用 Kate 的语义解析方法[10]处理 MRs(Meaning Representations) 的嵌套结构,此方法是用翻译规则做语义解析的。本文提出的算法通过给定的数据集来学习一个语义解析器,该数据集中的元素是中文句子以及其正确的 MRs。算法不需要中文句法的先验知识,且假设上下文无关文法是明确的。本文方法的贡献点在于:
        (1) 结合中文语法结构特点用统计机器翻译技术做面向医药领域的中文语义解析。具体来说,用统计词对齐模型[2]来获取双语词典,这个双语词典包含自然语言字符串连同它的 MRL(Meaning Representation Language) 表示。在解析框架中通过结合这些自然语言字符串以及它们的 MRL 翻译来最终形成完整的 MRs,这个解析框架叫做同步上下文无关文法 (Synchronous Context-Free Grammars, SCFG)[3],同步上下文无关文法是大部分现有的基于句法的统计翻译模型的基础[4]。
        (2) 针对中文语言的特点提出数据预处理算法,包括中文分词、数据清理和数据重构等,使得中文语义解析算法性能有较大的提升。
        (3) 本文构建了面向医药领域的函数式查询语言 (Med-FunQL),Med-FunQL 也是一种形式化语言 (MRL)。本文用 Med-FunQL构造了医药领域用于评测中文语义解析的数据集 (MEDQUERY),同时翻译了美国国家地理数据库 (GEOQUERY)为中文语义解析的研究提供了多个领域的中文评测数据库。
第2章 面向医药领域的深层语义解析模型
        本章主要介绍如何利用机器翻译技术来做中文深层语义解析。解析模型可被看作基于句法的翻译模型,利用词对齐技术来做词典的采集。本章提出的算法是面向医药领域的深层语义解析模型(Deep semantic analysis model for Chinese medicine, DSACM)。
2.1概述
        本文的工作是将中文语义解析看作是一种语言翻译任务。通过同步解析将自然语言句子翻译成形式化语言 MRs,同步解析推导过程中即可获得自然语言句子的句法结构、形式化翻译以及子部分之间的对应关系。利用同步解析做机器翻译工作是近年来的热门研究[14]。同样地,本文所做的工作也是利用同步解析做翻译工作,只不过源语言是中文语言,目标语言是形式化语言。
2.2DSACM算法
        本文举例说明DSACM算法。DSACM的任务就是将一个中文句子翻译成用CLANG表示的MR格式。为了完成这一任务,首先需要用语义语法]解析中文句子的句法结构,语义语法中的非终结符与CLANG语法的非终结符相同。通过语义解析器获得字符串的意义表示,然后通过结合字符串的意义表示来获取整个中文句子
        为了完成这一任务,首先需要用语义语法解析中文句子的句法结构,然后通过语义解析器获得字符串的意义表示,最终结合字符串的意义表示来获取整个中文句子的意义表示。后文所有的非终结符都以首字母大写的形式表示,其它则为终结符。上述过程可以看作同步解析的一个实例[7]。在这个框架中,最终推导出两个字符串,一个是源语言的字符串,另一个是目标语言的字符串。输入是中文句子e,语义解析器的任务就是找出一种推导,它可以推导出字符串对,这里的f就是句子e的MRL翻译。为了防止字符串对的集合有无限多个,本文用加权的SCFG,它的定义如下:(2.1) 。公式中N代表有限的非终结符集合,表示有限的自然语言的终结符集合。表示有限的MRL 语言的终结符集合。表示词典,词典包括有限的规则集合。属于,S是一个开始符号。是参数的集合,其定义了推导的概率分布。L中的每一个产生式都是如下形式:,其中。非终结符A称为产生式左部(Left-Hand Side, LHS),产生式右部(Right-Hand Side, RHS)是一对字符串。对于中的每一个非终结符在中都有一个与之关联的完全相同的非终结符。下面是一些SCFG规则,这些SCFG规则可以用来产生图中的解析树。
        
        每一个SCFG规则可看成两部分结合而成,是自然语言句子的句法解析产生式,是MRL语法产生式。本文将字符串称为自然语言(Natural Language, NL)字符串,字符串称为MR字符串。NL和MR字符串中的非终结符用[1],[2]…来进行索引显示它们之间的关联。所有的推导都是由相关联的开始符号对开始推导。每一步推导都需要重写上一步相互关联的非终结符对。本文给出生成简单的中文句子及其Med-FunQL表示的一种推导,如下所示:
       
        可简单理解为Med-FunQL的表示就是中文句子的一种翻译。因此对于输入句子e,会有多种可能的推导(也可说e有多种MRL翻译)。为了找出正确的推导,本文设计了一个对于推导d的概率模型,概率模型的参数为,返回值为正确的概率。对于中文句子的翻译结果有如下定义:
        
        公式中是推导d中的MR串,并且D(G|e)是一个集合,集合包含了e所有可能的推导。简单来说,最终输出的MRL翻译是推导d中的MR串,而且d是自然语言句子e概率最大的推导。推导过程中用Vertibi算法计算出概率最大的推导,用Earley Chart算法跟踪推导过程。给定NL和MRL时,非终结符集合、NL终结符集合、MRL终结符集合和开始符S便可相应地提取到。根据SCFG定义(公式2.1),本文语义解析的学习算法只需要学习一个词典L和带有参数的概率模型即可。词典是所有可能推导的集合,要想生成概率模型,需要首先学习得到词典。因此学习任务可以分为以下两个子任务:
        (1) 学习一个词典,词典隐式地定义了一个集合,这个集合包含所有可能的推导D(G)。
        (2) 学习一个参数的集合,这个集合定义了D(G)中推导的概率分布。
        两个子任务都需要训练集,每个训练样例都是成对的,即自然语言句子,以及其正确的MR串。词典的生成同样需要明确的MRL上下文无关文法。因此语义模型训练时若没有词典则无法生成正确的推导。本文将这些推导作为隐藏变量,通过EM算法对其进行极大似然估计。DSACM算法主要包括以下几个方面。
2.2.1数据预处理
        由于词是最小的能独立运用的语言单位,而很多孤立语和黏着语(如汉语)的文本不像西方曲折语的文本,词与词之间没有任何空格之类的显式标志指示词的边界。因此,自动分词问题就成了计算机处理孤立语和黏着语文本时面临的基础性工作,是自然语言处理任务中不可或缺的一个重要环节。本文利用自定义词典技术,进行中文分词,可兼容不同领域,使得数据预处理具有较好的鲁棒性。如“阿莫西林胶囊”是医药领域的专有名词,利用自定义词典分词技术,其被划分为“阿莫西林胶囊”,而不是“阿莫西林 胶囊”。
2.2.2词典采集
        在DSACM中,本文用词对齐模型来进行词典的采集。在训练集上训练一个统计词对齐模型,找出每个训练样例的最有可能的词对齐。通过从这些词对齐中提取SCFG 规则来生成词典,但将会存在以下问题:
        (1) 在这个词对齐中每个Med-FunQL符号都被当作一个单词处理,并不是所有的MR字符都有特定的含义。举例来说,在Med-FunQL 中括号((,))和花括号({,})并没有实际的语义含义。这样的符号并不会对齐任何自然语言单词,如果训练集中包含这些字符会很有可能混淆词对齐模型。
        (2) MR符号表示可能会产生歧义。例如MRL谓词pt,它根据给定的论元类型可能会有三种含义:它可能代表着坐标(e.g. (pt 0 0))或者运动员现在所在的位置((pt our 4))。如果单独判断谓词pt,词对齐模型是无法正确判断出其含义的。
        为了避免上述问题,本文用MRL产生式序列表示MR。MRL产生式序列对应MR的自顶向下最左推导。每一个MRL产生式相当于一个单词。再考虑产生式右部(RHS)包含非终结符的情况,比如带有论元的谓词。在这种情况下,NL字符串包含了单词以及非终结符,其中单词与产生式相对应,非终结符表示了论元实现的位置。算法2.1给出了词典采集的基本算法,算法第1行到第4行是对训练集中的产生式进行线性化解析;第5行是训练词对齐模型;第7行是取前K个最有可能的词对齐;第8行到第16行是从前K个最有可能的词对齐中提取SCFG规则。
输入:训练数据集,明确的MRL文法
输出:词典
ACQUIRE-LEXICON(,)
1   
2    for
3        do
4    作为训练数据集,训练一个词对齐模型
5    for
6        do
7        for
8            do for
9               
10                   
11                   
12                   
13                   
14    return
算法2.1 DSACM词典采集的基本算法
2.2.3维护解析树同构
        词典采集过程中,为了维护树的同构,以下两种情况将不会对产生式提取任何规则。
        1.在MR解析树中的子孙没有连接任何NL词。
        2.与相关联的NL字符串覆盖了一个字,与产生式相关联,但是在MR解析树中不是的子孙。这种情况下将不会进行规则的提取,因为若进行规则的提取将会破坏与的连接。
2.2.4短语连贯性
        目前所描述的词典采集算法的有效性依赖于词对齐模型是否支持短语连贯性。也就意味着连接谓词与论元的NL词距离足够近时上述算法才有效。任何破坏短语连贯性的连接,都会导致过多的结点归并,这样就会引起过拟合。由于构建一个模型要严格考虑短语连贯性,这样需要树节点的重排序,本文的目标是通过用简单的词对齐模型自学习来产生连贯的词对齐模型,然后提取规则前,移掉那些会引起过拟合的连接。
2.2.5概率估计
        一旦词典获取到,下一步任务就是学习一个语义解析的概率评估模型。对于推导d本文用极大熵模型定义一个条件概率分布:
                        (3.4)
        在公式中是特征函数,并且是归一化因子。对于词典中的每一条规则都有一个特征函数,这个特征函数返回的是在推导中所用到的次数。同样对于每个单词也有一个特征函数,它返回的是字间距中的数量。模型中无法看到的单词被作为额外的特征,这一特征值是字间距中单词的总数。本文用到与Zettlemoyer相似的特征集。
第3章 实验与分析
        由于至今还没有公开的面向医药领域的中文语义解析评测数据集,因此本文借鉴Kate的方法[10],构建了一个面向医药领域的中文语义解析评测数据集MEDQUERY。具体方法如下。
        首先,利用Kate在2005年提出的一个面向地理领域的无变量函数式查询语言(the variable-free functional query language, FunQL)[10]的设计思想,构建了面向医药领域的函数式查询语言 Med-FunQL,设计了医药领域在FunQL中的谓词、实体名称等。然后,利用Med-FunQL构造面向医药领域的中文语义解析评测数据集MEDQUERY。MEDQUERY涉及100种药品类别, 1000种药品名称和300种疾病名称,共包括1500个样例,1434个产生式,以及15个不同的非终结符。每个非终结符的含义如表2.1所示。
3.1评价标准
        本文在MEDQUERY和GEOQUERY上用十折交叉验证进行实验。在测试实验中本文统计输出MRL翻译的句子的个数。当解析器没有覆盖某个句子的结构时,这个句子将会翻译失败。实验中同样需要统计生成正确MRL翻译的句子的个数。如果一个句子
的MRL翻译与数据集中的MRL翻译相同,则认为这个句子的MRL翻译是正确的。本文采用准确率Precision、召回率 Recall以及F1作为评价标准,计算公式如下:
        (3.7)
        (3.8)
        (3.9)
        本文有一个小的初始化规则数据集,其用来翻译数据集中基础的实体名。这些规则将包含在词典中。以下是本文MEQUERY数据集中的初始化规则:
表2.3 DSACM中文语义解析器与其他解析器性能对比

    准确率(%)    召回率(%)    F1值(%)    数据集    数据集样例数
DSACM    80.4    62.3    70.8    中文MEDQUERY    880
DSACM    71.9    56.4    62.1    中文GEOQUERY    880
COCKTAIL    89.9    79.4    84.3    英文GEOQUERY    880
SILT    89.0    54.1    67.3    英文GEOQUERY    880
KRISP    92.3    71.7    81.1    英文GEOQUERY    880
SCISSOR    95.5    56.4    85.4    英文GEOQUERY    880
        
3.2  结果与分析
        在数据集MEDQUERY和GEOQUERY上分别进行实验,训练样例分别为10句、20句、40句、80句、160句、320句、640句、792句,测试用例为88句。图3.7、图3.8、图3.9分别展示了DSACM中文深层语义解析模型在不同数据集上的准确率、召回率和F1值对比。
投稿 打印文章 转寄朋友 留言编辑 收藏文章
  期刊推荐
1/1
转寄给朋友
朋友的昵称:
朋友的邮件地址:
您的昵称:
您的邮件地址:
邮件主题:
推荐理由:

写信给编辑
标题:
内容:
您的昵称:
您的邮件地址: