CN113779993A - 一种基于多粒度文本嵌入的医学实体识别方法 - Google Patents

一种基于多粒度文本嵌入的医学实体识别方法 Download PDF

Info

Publication number
CN113779993A
CN113779993A CN202110890112.9A CN202110890112A CN113779993A CN 113779993 A CN113779993 A CN 113779993A CN 202110890112 A CN202110890112 A CN 202110890112A CN 113779993 A CN113779993 A CN 113779993A
Authority
CN
China
Prior art keywords
embedding
medical
word
character
text
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202110890112.9A
Other languages
English (en)
Other versions
CN113779993B (zh
Inventor
道捷
张春霞
彭成
薛晓军
王瞳
徐天祥
郭贵锁
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Institute of Technology BIT
Original Assignee
Beijing Institute of Technology BIT
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Institute of Technology BIT filed Critical Beijing Institute of Technology BIT
Publication of CN113779993A publication Critical patent/CN113779993A/zh
Application granted granted Critical
Publication of CN113779993B publication Critical patent/CN113779993B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/289Phrasal analysis, e.g. finite state techniques or chunking
    • G06F40/295Named entity recognition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/35Clustering; Classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/237Lexical tools
    • G06F40/242Dictionaries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/289Phrasal analysis, e.g. finite state techniques or chunking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Data Mining & Analysis (AREA)
  • Biomedical Technology (AREA)
  • Computing Systems (AREA)
  • Molecular Biology (AREA)
  • Evolutionary Computation (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Biophysics (AREA)
  • Databases & Information Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Machine Translation (AREA)

Abstract

本发明涉及一种基于多粒度文本嵌入的医学实体识别方法,属于信息抽取和知识图谱构建技术领域。所述医学实体识别方法,包括:构建多粒度文本嵌入:通过预训练语言模型,构建多粒度文本嵌入,多粒度文本嵌入包括字符嵌入、词嵌入、词性嵌入、子串嵌入及短语嵌入;生成模式权重:根据医学术语构成模式,生成中文句子中所有字符的模式权重;结点嵌入表示学习:使用图注意力网络和模式强化注意力机制,进行结点嵌入表示学习;输出医学文本实体识别结果:采用条件随机场生成医学文本的实体类别标签,输出医学实体识别结果。所述方法解决了医学实体识别中图表示信息利用不足、文本分布式表示的嵌入粒度单一的问题,提高了医学实体识别的性能。

Description

一种基于多粒度文本嵌入的医学实体识别方法
技术领域
本发明涉及一种基于多粒度文本嵌入的医学实体识别方法,属于信息抽取和知识图谱构建技术领域。
背景技术
医学实体识别是信息抽取和医学知识图谱构建领域的重要研究课题。医学实体识别是指从非结构化的医学文本中识别医学领域的实体或术语。医学实体识别技术能够为医学领域问答***、医疗辅助诊断以及精准医学知识服务等领域提供技术和知识支撑。
医学实体识别方法主要包括基于规则的方法、基于统计机器学习的方法,以及基于深度学习的方法等。基于规则的医学识别方法的基本思想是,根据构建的医学实体构成规则从非结构化文本中识别医学实体,规则的构成要素包括关键字和词语类别等。
基于统计机器学习的医学实体识别方法主要包括采用最大熵、隐马尔科夫模型,条件随机场,以及支持向量机等模型来识别医学实体。该类方法是指将医学实体识别转化为分类问题或序列标注问题。例如,一种基于条件随机场和规则相结合的方法进行中文电子病历命名实体识别。首先,根据语言符号特征、后缀特征、关键词特征、词典特征和长度特征,采用条件随机场识别;然后,利用规则进行优化识别结果。
基于深度学习的医学实体识别方法包括对非结构化的输入文本的分布式表示或嵌入编码、语境或上下文语义编码,以及标签解码。输入文本的嵌入编码主要包括字符嵌入和词语嵌入。上下文语义编码模型包括卷积神经网络、双向长短期记忆网络,循环神经网络等。例如,一种方法是基于双向长短期记忆网络和条件随机场模型进行中文电子病历的医学实体识别。首先,生成每个词语的低维向量表示;然后,采用带有注意力机制的双向长短期记忆网络和条件随机场模型进行医学实体识别。
图注意力网络是在图卷积神经网络基础上,引入了注意力机制。图注意力网络已应用于问答***的答案抽取、信息推荐和关系抽取等。
现有医学实体识别方法主要存在如下问题:第一,目前医学实体识别方法主要构建了文本的字符嵌入、词语嵌入和词性嵌入,较少引入短语嵌入和子串嵌入。第二,目前方法较少通过图注意力网络对医学文本建模进行实体识别。第三,目前方法较少融合基于模式或规则的方法和基于深度学习的方法,以充分有效集成这两种方法的优点。基于模式或规则的方法的性能较高,基于深度学习的方法不需要耗时耗力的特征工程,能够实现端到端的非线性学习。
发明内容
本发明的目的是为了解决医学实体识别中图表示信息利用不足、文本分布式表示的嵌入粒度单一,提出了一种基于多粒度文本嵌入的医学实体识别方法,该方法首先构建多粒度文本嵌入,包括字符嵌入、词嵌入、词性嵌入、子串嵌入以及短语嵌入,实现对医学文本的字符、词语、词性、短语和子串层面的多粒度的文本嵌入表示学习;然后,采用图注意力网络、模式强化注意力机制以及条件随机场进行医学文本实体识别,具体为:第一,利用图注意力网络模型,实现对医学文本的图嵌入表示的构建,第二,将模式强化注意力机制引入到图注意力网络中增强结点的注意力权重,从而提高医学实体识别性能。
为了达到上述目的,本发明采取如下技术方案:
所述基于多粒度文本嵌入的医学实体识别方法,包括以下步骤:
步骤1:通过预训练语言模型构建多粒度文本嵌入,包括如下步骤:
步骤1.1:对于非结构化的中文医学文本,构建多粒度文本嵌入;
步骤1.1.1:利用预训练语言模型MC-Bert进行符号嵌入、分割嵌入和遮盖嵌入的学习,生成非结构化的中文医学文本的字符嵌入;
MC-Bert是根据中文医学数据训练生成的预训练模型;
对于非结构化的中文医学文本,预训练语言模型MC-Bert的输入由三种嵌入组成,分别是符号嵌入、分割嵌入和遮盖嵌入;
其中,符号嵌入是指每个词语的向量表示;分割嵌入用于区分两个自然语言句子,医学实体识别任务以句子为单位进行识别实体,因此每个词语具有相同的分割嵌入;遮盖嵌入中,若当前位置为输入句子的字符,则赋值为1;若当前位置为0,即不是输入句子的字符,则赋值为0;
对于中文句子CS,CS=(cc1,cc2,...,ccn),cc1,cc2,...,ccn为字符,采用预训练语言模型MC-Bert,生成句子CS的字符嵌入表示Ecc如(1)所示:
Ecc=(ecc1,ecc2,....,eccn),Ecc∈Rn×m (1)
其中,n为句子长度,即句子中字符的数目,若字符数目不到n,则填充0;m为预训练模型MC-Bert设置的维度;ecci(i=1,2,...,n)为字符cci的嵌入;字符嵌入表示Ecc为的维度为n行m列;Rn×m表示n行m列的实数矩阵;
步骤1.1.2:生成中文医学文本的词嵌入、词性嵌入以及短语嵌入;
首先,对于中文医学文本,使用jieba分词工具获得中文医学文本的词语,利用词性标注器Stanford postagger获得中文医学文本的词语的词性标记,利用句法分析器Stanford parser获得中文医学文本的短语标记;
然后,利用word2vec工具生成词嵌入、词性嵌入以及短语嵌入;
对于中文句子CS,CS=(cc1,cc2,...,ccn),cc1,cc2,...,ccn为字符,词嵌入,具体为:基于jieba分词工具获得中文医学文本的词语,利用word2vec获取所隶属词语的词嵌入;词性嵌入,具体为:基于获得中文医学文本的词语的词性标记,利用word2vec获取所隶属词语的词性嵌入;短语嵌入,具体为:基于获得中文医学文本的短语标记,利用word2vec获取所隶属短语的类型嵌入;
其中,词嵌入为Ecw=(ecw1,ecw2,....,ecwn),其中,字符cc1,cc2,...,ccn所隶属的词语依次为cw1,cw2,...,cwn;ecwi(i=1,2,...,n)为词语cwi的嵌入;
词性嵌入为Ecpos=(ecpo1,ecpo2,....,ecpon),其中,词语cw1,cw2,...,cwn的词性依次为cpo1,cpo2,...,cpon;ecpoi(i=1,2,...,n)为词性cpoi的嵌入;
短语嵌入为Ecph=(ecph1,ecph2,....,ecphn),其中,字符cc1,cc2,...,ccn所隶属的短语类型依次为cph1,cph2,...,cphn;ecphi(i=1,2,...,n)为短语类型cphi的嵌入;
步骤1.1.3:对于非结构化的中文医学文本,利用word2vec工具生成子串嵌入,具体为:
首先,采集医学术语词典,构建医学术语子串集合,具体为:对于任意两个术语,提取两个术语的最长公共子串,添加到医学术语子串集合;若两个术语有多个相同长度的最长公共子串,则取第一个最长公共子串,添加到医学术语子串集合;
其次,对医学术语子串集合中的子串,利用word2vec工具生成所有子串的嵌入表示;
然后,对于每个词语cwi(i=1,2,...,n),判断该词语cwi是否包含医学术语子串集合中的子串;对于中文句子CS,CS=(cc1,cc2,...,ccn),cc1,cc2,...,ccn为字符,cc1,cc2,...,ccn所隶属的词语依次为:cw1,cw2,...,cwn;设词语cwi包含医学术语子串集合中的子串csubs1,csubs2,...,csubsp,子串csubs1,csubs2,...,csubsp的嵌入表示分别为ecs1,ecs2,....,ecsp,则词语cwi的子串嵌入表示ecssi为:对ecs1,ecs2,....,ecsp相加求和,然后除以子串个数p的结果;若词语cwi不包含医学术语子串集合中的任何子串,则输出为自定义值;
最后,对于句子CS中的每个字符cci(i=1,2,...,n),按照以上步骤生成其对应的子串嵌入;句子CS的子串嵌入为Ecss=(ecss1,ecss2,....,ecssn);
步骤1.1.4:将中文医学文本的字符嵌入、词嵌入、词性嵌入、短语嵌入以及子串嵌入进行拼接,构建多粒度文本嵌入,具体为:
对于中文句子CS,CS=(cc1,cc2,...,ccn),cc1,cc2,...,ccn为字符,构建字符cci(i=1,2,...,n)的多粒度文本嵌入,即拼接句子CS的字符嵌入Ecc、词嵌入Ecw、词性嵌入Ecpos、短语嵌入Ecph以及子串嵌入Ecss,构建句子CS的多粒度文本嵌入,如(2)所示:
Ecme=Concate(Ecc,Ecw,Ecpos,Ecph,Ecss) (2)
其中,Concate表示拼接操作;另外,Ecme的维度=Ecc的维度+Ecw的维度+Ecpos的维度+Ecph的维度+Ecss的维度;
至此,从步骤1.1.1到步骤1.1.4,构建好了中文字符cci(i=1,2,...,n)的多粒度文本嵌入为Ecme
步骤1.2:对于非结构化的英文医学文本,构建多粒度文本嵌入,包括以下步骤:
步骤1.2.1:利用预训练语言模型BioBert进行符号嵌入、分割嵌入和遮盖嵌入的学习,生成非结构化的英文医学文本的单词嵌入;
BioBert是根据英文医学数据训练生成的预训练模型;
对于英文句子ES,ES=(ew1,ew2,...,ewn),ew1,ew2,...,ewn为单词,利用预训练语言模型BioBert,生成句子ES的词嵌入表示,如(3)所示:
Eew=(eew1,eew2,....,eewn),Eew∈Rn×m (3)
其中,n为句子长度,即句子中单词的数目,若单词数目不到n,则填充0;m为预训练模型BioBert设置的维度;eewi(i=1,2,...,n)为单词ewi的嵌入;
步骤1.2.2:生成英文医学文本的字符嵌入、词性嵌入以及短语嵌入;
对于英文医学文本,利用word2vec工具生成字符嵌入、词性嵌入、短语嵌入;
对于英文句子ES,ES=(ew1,ew2,...,ewn),ew1,ew2,...,ewn为单词,ewi(i=1,2,...,n)的字符嵌入为构成ewi的所有字符嵌入求和取平均值,词性嵌入为ewi的词性的嵌入,短语嵌入为所隶属短语的类型的嵌入;
其中,字符嵌入为Eec=(eec1,eec2,....,eecn),其中,eeci(i=1,2,...,n)为单词ewi的字符嵌入;
词性嵌入为Eepos=(eepo1,eepo2,....,eepon),其中,单词ew1,ew2,...,ewn的词性依次为epo1,epo2,...,epon;eepoi(i=1,2,...,n)为词性epoi的嵌入;
短语嵌入为Eeph=(eeph1,eeph2,....,eephn),其中,单词ew1,ew2,...,ewn所隶属的短语类型依次为eph1,eph2,...,ephn;eephi(i=1,2,...,n)为短语类型ephi的嵌入;
步骤1.2.3:对于非结构化的英文医学文本,利用word2vec工具生成子串嵌入;
首先,采集英文医学术语词典,构建医学术语子串集合;对于任意两个术语,提取两个术语的最长公共子串,添加到医学术语子串集合;若两个术语有多个相同长度的最长公共子串,则取第一个最长公共子串,添加到医学术语子串集合;
其次,利用word2vec工具生成所有子串的嵌入表示;
然后,对于英文文句子ES,ES=(ew1,ew2,...,ewn),ew1,ew2,...,ewn为单词,对于每个单词ewi(i=1,2,...,n),判断单词ewi是否包含医学术语子串集合中的子串;设单词ewi包含医学术语子串集合中的子串esubs1,esubs2,...,esubsq,子串esubs1,esubs2,...,esubsq的嵌入表示为ees1,ees2,....,eesq,则单词ewi的子串嵌入表示eessi为:对ees1,ees2,....,eesq相加求和,然后除以子串个数q的结果;若单词ewi不包含医学术语子串集合中的任何子串,则输出为自定义值;
最后,对于句子ES中的每个字符ewi(i=1,2,...,n),按照以上步骤生成其对应的子串嵌入;句子ES的子串嵌入为Eess=(eess1,eess2,....,eessn);
步骤1.2.4:将英文医学文本的字符嵌入、词嵌入、词性嵌入、短语嵌入以及子串嵌入进行拼接,构建多粒度文本嵌入,具体为:
对于英文句子ES,ES=(ew1,ew2,...,ewn),ew1,ew2,...,ewn为单词,构建ewi(i=1,2,...,n)的多粒度文本嵌入,即拼接句子ES的字符嵌入Eec、词嵌入Eew、词性嵌入Eepos、短语嵌入Eeph,以及子串嵌入Eess,构建句子ES的多粒度文本嵌入,如(4)所示;
Eeme=Concate(Eec,Eew,Eepos,Eeph,Eess) (4)
其中,Concate表示拼接操作;另外,Eeme的维度=Eec的维度+Eew的维度+E-epos的维度+Eeph的维度+2Eess的维度;
至此,从步骤1.2.1到步骤1.2.4,构建好了英文单词ewi(i=1,2,...,n)的多粒度文本嵌入为Eeme
步骤2:根据医学实体构成模式,生成中文句子中所有字符的模式权重,包括如下步骤:
步骤2.1:构建中文医学实体构成模式;
医学实体构成模式的构成形式为:“Y1+Y2+Y3+...+Yk”;
其中,Y1,Y2,Y3,...,Yk表示词语的类别,“+”表示字符串的链接操作;
词语的类别包括否定词、临床表现、解剖部位、修饰词、疾病名称、体格检查、数值、量词以及药品;
步骤2.2:生成中文句子中字符的模式权重;
对于中文句子CS,CS=(cc1,cc2,...,ccn),cc1,cc2,...,ccn为字符,判断中文句子CS是否匹配医学实体构成模式,构建模式匹配权重向量为:(w1,w2,...,wn);
情形1:若字符串cci,cci+1,...,ccj满足模式“解剖部位”、“疾病”或“药品”,则为每个字符cci,cci+1,...,ccj赋予模式权重2;
情形2:若字符串cci,cci+1,...,ccj满足其他模式,则为每个字符cci,cci+1,...,ccj赋予模式权重1.5;
情形3:若字符串cci,cci+1,...,ccj不满足模式,则为每个字符cci,cci+1,...,ccj赋予模式权重1;
步骤3:使用图注意力网络和模式强化注意力机制,进行结点嵌入表示学习,包括如下步骤:
步骤3.1利用全连接层对中文字符结点、或英文单词结点的嵌入维度进行变换;
对于中文句子CS中每个字符的多粒度文本嵌入,输入至全连接层,对中文多粒度文本嵌入的嵌入维度进行转换;转换维度的原因是:多粒度文本嵌入维度需与步骤3.2中使用的图注意力网络的结点向量输入维度一致;
同理,对于英文句子ES中每个单词的多粒度文本嵌入,输入至全连接层,对英文多粒度文本嵌入的嵌入维度进行转换。
在全连接层中,首先,经过线性层转换维度;然后,利用dropout方法防止过拟合;最后,通过激活函数Relu防止梯度消失;
步骤3.2:对于中文医学文本,利用中文句子中字符的模式权重,将图注意力网络的中文字符结点的注意力权重与模式权重相乘;对于英文医学文本,图注意力网络中英文单词结点的模式权重设为1;
对于中文医学文本,图注意力网络的结点嵌入为字符的嵌入,字符嵌入为步骤3.1生成的字符嵌入;对于英文医学文本,图注意力网络的结点嵌入为单词的嵌入,单词嵌入为步骤3.1生成的单词嵌入;
步骤3.2.1:计算图注意力网络中结点的注意力权重;
首先,将句子的多粒度文本嵌入h输入到图注意力网络中图注意力层中,其中,
Figure BDA0003195630660000071
为医学文本一个句子的中文字符结点或英文单词结点的嵌入,M为结点个数,H为字符嵌入的维度大小,如(5)所示;
Figure BDA0003195630660000072
对输入结点嵌入进行线性变换,将结点嵌入转换为所有类别标签个数的维度大小;并利用LeakyRelu函数计算注意力权重,即计算结点v对结点u的重要程度euv,如(6)所示;
Figure BDA0003195630660000073
其中,W1表示一个共享的权值矩阵,
Figure BDA0003195630660000074
表示医学文本一个句子的中文字符结点或英文单词结点u的嵌入,
Figure BDA0003195630660000075
表示医学文本一个句子的中文字符结点或英文单词结点v的嵌入;
然后,利用Softmax函数对euv进行归一化,得到αuv如(7)所示;
Figure BDA0003195630660000081
其中,euk表示结点u对结点k的重要程度,αuv表示euv的归一化值,Nu表示结点u的邻居结点;
最后,生成结点u的注意力权重αu,如(8)所示;
Figure BDA0003195630660000082
其中,W2表示一个权值矩阵;
步骤3.2.2:更新图注意力网络中结点的注意力权重;
首先,对于结点u,利用结点u所表示中文字符或英文单词的模式权重wu,更新结点u的注意力权重αu,如(9)所示;
αu=αu×wu (9)
其次,构建句子的注意力权重attentionl(1≤l≤k),如(10)所示;
attentionl=(α12,...,αM) (10)
然后,将多头注意力机制引入到图注意力网络,具体为:计算k个注意力权重,将每个注意力权重与输入h相乘,生成句子的特征h′l,如(11)所示;
h′l=attentionl×h (11)
通过激活函数elu,生成单头输出elu(h′1),elu(h′2),...,elu(h′k);
第三,将k个头的输出进行拼接生成h',如(12)所示;
h'=Concat(elu(h′1),elu(h′2),...,elu(h'k)) (12)
最后,通过log_softmax函数生成最终输出hfinal,如(13)所示;
hfinal=log_softmax(h')) (13)
步骤4:采用条件随机场生成医学文本的实体类别标签,输出医学实体识别结果,具体为:生成中文字符或英文单词的实体类别标签;
其中,基于条件随机场计算每个字符条件概率分布密度,也就是计算每个字符属于每种实体类别标签的概率,将概率最高的标签分配给对应的字符,作为字符的实体类别标签,进而输出医学实体识别结果;
采用条件随机场对医学文本中句子进行序列标注,生成中文字符或英文单词的实体类别标签,输出医学文本实体识别结果。
有益效果
本发明提出的一种基于多粒度文本嵌入的医学实体识别方法,与现有医学实体识别方法相比,具有如下有益效果:
1.所述识别方法具有移植性和鲁棒性,对于语料集的来源不受限制;基于图注意力网络对医学文本进行图表示建模,对语料的语种不受限制,能够处理中文文本和英文文本;
2.所述方法建非结构化医学文本的多粒度文本嵌入,多粒度文本嵌入包括字符嵌入、词嵌入、词性嵌入、子串嵌入以及短语嵌入;通过引入多粒度文本嵌入,挖掘了医学文本的字符、词语、词性、短语和子串方面的特征,实现了字符串层面、词法层面和语法层面的分布式表示学习,增强了医学文本的实体特征信息,提高了医学实体识别的准确性;
3.所述方法采用图注意力网络、模式强化注意力机制以及条件随机场进行医学实体识别:第一,利用图注意力网络模型,实现对医学文本的图表示建模,捕获了医学文本中文字符或英文单词之间的图结构信息;第二,引入模式强化注意力机制,将医学实体构成模式特征引入到图注意力网络中增强结点的注意力权重,实现了基于模式的医学实体识别方法和基于深度学习的医学实体识别方法的有效集成,充分利用这两种方法的特点和优势,提高了医学实体识别性能;
4.所述方法能够识别非结构化的中文医学文本和英文医学文本的医学实体,在信息检索、文本分类、问答***等领域具有广阔的应用前景。
附图说明
图1为本发明实施例一基于多粒度文本嵌入的医学实体识别的流程示意图。
具体实施方式
基于本发明方法的医学实体识别***以PyCharm为开发工具,Python为开发语言,Pytorch为开发框架。
下面结合实施例对本发明方法的优选实施方式进行详细说明。
实施例
本实施例叙述了采用本发明所述的一种基于多粒度文本嵌入的医学实体识方法的流程,如图1所示。
首先使用预训练语言模型MC-Bert以及BioBert生成中文医学文本的字符嵌入以及英文医学文本的单词嵌入;使用word2vec工具生成中文医学文本的词嵌入、词性嵌入、短语嵌入、子串嵌入以及英文医学文本的字符嵌入、词性嵌入、短语嵌入、子串嵌入,将这些嵌入进行拼接构建出最终的中英文医学文本多粒度文本嵌入;其次,根据医学实体构成模式,生成中文句子中所有字符的模式权重,英文句子中所有单词的模式权重设为1;然后,使用图注意力网络和模式强化注意力机制,进行结点嵌入表示学习,使用模式权重对图注意力网络中结点的注意力权重进行更新;最后,使用条件随机场对中文医学文本中每个字符的实体标签进行预测或者是对英文医学文本中每个单词的实体标签进行预测,输出医学文本实体识别结果;在CCKS2019数据集下进行了实验;首先,生成CCKS2019数据集中每句医学文本的多粒度文本嵌入;其次,根据医学实体构成模式,生成每句医学文本中所有字符的模式权重;然后,将多粒度文本嵌入以及模式匹配权重传入到图注意力网络中,将模式匹配权重与结点的注意力权重相乘,计算得到的输入文本的最终嵌入表示;最后,条件随机场根据计算得到的概率输出最终预测的实体识别标签;实验结果证明了本发明的有效性;本发明所述方法还能够应用于英文医学文本数据集NCBI Disease以及生物化学领域数据集BC5CDR等;应用于数据集NCBI Disease的流程与数据集CCKS2019大体一致,不同之处在于在图注意力网络中计算注意力系数时,将英文单词结点的模式权重全部设为1即可;应用于数据集BC5CDR的流程不同之处在于:在构建多粒度文本嵌入时,需要使用针对生物化学领域的术语词典来生成子串嵌入,将字符嵌入、词嵌入、词性嵌入以及短语嵌入拼接即可,将拼接后的嵌入传入图注意力网络中;在图注意力网络计算注意力权重时可以加入针对生物化学领域的实体构成模式匹配权重,将图注意力网络的结果传入条件随机场中;条件随机场根据概率输出最终预测的实体识别结果。
从图1可以看出,具体包括如下步骤:
步骤1:通过预训练语言模型构建多粒度文本嵌入,包括以下步骤:
步骤1.1:对于非结构化的中文医学文本,构建多粒度文本嵌入;
步骤1.1.1:利用预训练语言模型MC-Bert进行符号嵌入、分割嵌入和遮盖嵌入的学习,生成非结构化的中文医学文本的字符嵌入;
MC-Bert是根据中文医学数据训练生成的预训练模型;
对于非结构化的中文医学文本,预训练语言模型MC-Bert的输入由三种嵌入组成,分别是符号嵌入(Token Embedding)、分割嵌入(Segment Embedding)和遮盖嵌入(MaskEmbedding),其中符号嵌入是指每个词语的向量表示。分割嵌入用于区分两个自然语言句子,医学实体识别任务以句子为单位进行识别实体,因此每个词语具有相同的分割嵌入。遮盖嵌入中,若当前位置为输入句子的字符,则赋值为1;若当前位置为0,即不是输入句子的字符,则赋值为0;
对于中文句子CS,CS=(cc1,cc2,...,ccn),cc1,cc2,...,ccn为字符;采用预训练语言模型MC-Bert,生成句子CS的字符嵌入表示Ecc,如(1)所示;
Ecc=(ecc1,ecc2,....,eccn),Ecc∈Rn×m (1)
其中,n为句子长度512,即句子中字符的数目,若字符数目不到512,则填充0;m为预训练模型MC-Bert设置的维度768维;ecci(i=1,2,...,n)为字符cci的嵌入,维度为768维;字符嵌入表示Ecc的维度为512×768;Rn×m表示n行m列的实数矩阵;
例如,对于句子“患者4月前发现皮肤、巩膜黄染,伴食欲上降,晚餐后明显,时有阵发性腹痛、恶心,无腹泻、呕吐,时有胸闷、憋气、头晕,无头痛,无视物旋转,无发热、咳嗽,无胸痛、喘憋,大便颜色较前变浅。”,字符之间用“\t”分割。在句首和句尾增加“[CLS]”和“[SEP]”标记。为了使得不同句子的字符嵌入表示的维度一致,通过填充0将句子长度扩充到512。利用预训练模型MC-Bert生成该句子的字符嵌入表示为:
Figure BDA0003195630660000111
其中,n为句子长度512,m表示字符嵌入维度768维。字符“患”的字符嵌入向量为(x11,x12,...x1m);
步骤1.1.2:生成中文医学文本的词嵌入、词性嵌入以及短语嵌入;
首先,对于中文医学文本,使用jieba分词工具获得中文医学文本的词语,利用词性标注器Stanford postagger获得中文医学文本的词语的词性标记,利用句法分析器Stanford parser获得中文医学文本的短语标记;
然后,利用word2vec工具生成词嵌入、词性嵌入以及短语嵌入,这三种嵌入的维度都为200;
对于中文句子CS,CS=(cc1,cc2,...,ccn),cc1,cc2,...,ccn为字符,词嵌入,具体为:基于jieba分词工具获得中文医学文本的词语,利用word2vec获取所隶属词语的词嵌入;词性嵌入,具体为:基于获得中文医学文本的词语的词性标记,利用word2vec获取所隶属词语的词性嵌入;短语嵌入,具体为:基于获得中文医学文本的短语标记,利用word2vec获取所隶属短语的类型嵌入;
其中,词嵌入为Ecw=(ecw1,ecw2,....,ecwn),其中,字符cc1,cc2,...,ccn所隶属的词语依次为cw1,cw2,...,cwn;ecwi(i=1,2,...,n)为词语cwi的嵌入;
词性嵌入为Ecpos=(ecpo1,ecpo2,....,ecpon),其中,词语cw1,cw2,...,cwn的词性依次为cpo1,cpo2,...,cpon;ecpoi(i=1,2,...,n)为词性cpoi的嵌入;
短语嵌入为Ecph=(ecph1,ecph2,....,ecphn),其中,字符cc1,cc2,...,ccn所隶属的短语类型依次为cph1,cph2,...,cphn;ecphi(i=1,2,...,n)为短语类型cphi的嵌入;
例如,对于中文句子“患者4月前发现皮肤、巩膜黄染”,利用jieba分词工具获得分词结果为“患者4月前发现皮肤、巩膜黄染”。进一步,扩充分词结果为“患者患者4月前发现发现皮肤皮肤、巩膜巩膜黄染黄染”,给出了该句子中每个字符所隶属的词语。例如,字符“患”隶属于词语“患者”,字符“患”的词语嵌入为词语“患者”的嵌入;
通过词性标注器Stanford postagger,获得该中文句子扩充后的词性标记为“NNNN CD NN LC VV VV NN NN PU NN NN NR NR”。利用句法分析器Stanford parser,获得该中文句子扩充后的短语标记为“NP NP NP NP LCP VP VP NP NP PU NP NP NP NP”,例如,字符“患”隶属于词语“患者”,字符“患”的词性嵌入为词语“患者”的词性“NN”的嵌入,字符“患”的短语嵌入为所隶属短语的类型标记“NP”的嵌入;
步骤1.1.3:对于非结构化的中文医学文本,利用word2vec工具生成子串嵌入,嵌入维度为200,具体为:
首先,采集医学术语词典,构建医学术语子串集合;
对于任意两个术语,提取两个术语的最长公共子串,添加到医学术语子串集合。若两个术语有多个相同长度的最长公共子串,则取第一个最长公共子串,添加到医学术语子串集合;
其次,对医学术语子串集合中的子串,利用word2vec工具生成所有子串的嵌入表示;
然后,对于每个词语cwi(i=1,2,...,n),判断该词语cwi是否包含医学术语子串集合中的子串;对于中文句子CS,CS=(cc1,cc2,...,ccn),cc1,cc2,...,ccn为字符,cc1,cc2,...,ccn所隶属的词语依次为:cw1,cw2,...,cwn;设词语cwi包含医学术语子串集合中的子串csubs1,csubs2,...,csubsp,子串csubs1,csubs2,...,csubsp的嵌入表示为ecs1,ecs2,....,ecsp,则词语cwi的子串嵌入表示ecssi为:对ecs1,ecs2,....,ecsp相加求和,然后除以子串个数p的结果;若词语cwi不包含医学术语子串集合中的任何子串,则输出为自定义值;
最后,对于句子CS中的每个字符cci(i=1,2,...,n),按照以上步骤生成其对应的子串嵌入;句子CS的子串嵌入为Ecss=(ecss1,ecss2,....,ecssn);
例如,采集医学词典:医学***命名法-临床术语SNOMED CT,构建该医学术语子串集合。对于中文句子中的词语“消化道”,该词语包括医学术语子串集合中的子串“消、化、道、消化、化道、消化道”。进一步,字符串“消化道”的子串嵌入为:六个子串“消”、“化”、“道”、“消化”、“化道”、“消化道”的嵌入表示相加求和并除以子串个数6的结果;
步骤1.1.4:将中文医学文本的字符嵌入、词嵌入、词性嵌入、短语嵌入以及子串嵌入进行拼接,构建多粒度文本嵌入:
对于中文句子CS,CS=(cc1,cc2,...,ccn),cc1,cc2,...,ccn为字符,构建字符cci(i=1,2,...,n)的多粒度文本嵌入,即拼接句子CS的字符嵌入Ecc、词嵌入Ecw、词性嵌入Ecpos、短语嵌入Ecph,以及子串嵌入Ecss,构建句子CS的多粒度文本嵌入,如(2)所示;
Ecme=Concate(Ecc,Ecw,Ecpos,Ecph,Ecss) (2)
其中,Concate表示拼接操作。另外,Ecme的维度为1568维,即1568(Ecme的维度)=768(Ecc的维度)+200(Ecw的维度)+200(Ecpos的维度)+200(Ecph的维度)+200(Ecss的维度);
至此,从步骤1.1.1到步骤1.1.4,构建好了中文字符cci(i=1,2,...,n)的多粒度文本嵌入为Ecme
步骤1.2:对于非结构化的英文医学文本,生成多粒度文本嵌入,包括以下步骤:
步骤1.2.1:利用预训练语言模型BioBert进行符号嵌入、分割嵌入和遮盖嵌入的学习,生成非结构化的英文医学文本的单词嵌入;
BioBert是根据英文医学数据训练生成的预训练模型;
对于英文句子ES,ES=(ew1,ew2,...,ewn),ew1,ew2,...,ewn为单词;利用预训练语言模型BioBert,生成句子ES的词嵌入表示,如(3)所示;
Eew=(eew1,eew2,....,eewn),Eew∈Rn×m (3)
其中,n为句子长度512,即句子中单词的数目,若单词数目不到512,则填充0;m为预训练模型BioBert设置的维度768维;eewi(i=1,2,...,n)为单词ewi的嵌入,维度为768维;字符嵌入表示Eew的维度为512×768;Rn×m表示n行m列的实数矩阵;
步骤1.2.2:生成英文医学文本的字符嵌入、词性嵌入以及短语嵌入;
对于英文医学文本,利用word2vec工具生成字符嵌入、词性嵌入、短语嵌入,嵌入维度为200;
对于英文句子ES,ES=(ew1,ew2,...,ewn),ew1,ew2,...,ewn为单词,ewi(i=1,2,...,n)的字符嵌入为构成ewi的所有字符嵌入求和取平均值,词性嵌入为ewi的词性的嵌入,短语嵌入为所隶属短语的类型的嵌入;
其中,字符嵌入为Eec=(eec1,eec2,....,eecn),其中,eeci(i=1,2,...,n)为单词ewi的字符嵌入;
词性嵌入为Eepos=(eepo1,eepo2,....,eepon),其中,单词ew1,ew2,...,ewn的词性依次为epo1,epo2,...,epon;eepoi(i=1,2,...,n)为词性epoi的嵌入;
短语嵌入为Eeph=(eeph1,eeph2,....,eephn),其中,单词ew1,ew2,...,ewn所隶属的短语类型依次为eph1,eph2,...,ephn;eephi(i=1,2,...,n)为短语类型ephi的嵌入;
步骤1.2.3:对于非结构化的英文医学文本,利用word2vec工具生成子串嵌入,嵌入维度为200,具体为:
首先,采集英文医学术语词典,构建医学术语子串集合;对于任意两个术语,提取两个术语的最长公共子串,添加到医学术语子串集合;若两个术语有多个相同长度的最长公共子串,则取第一个最长公共子串,添加到医学术语子串集合;
其次,利用word2vec工具生成所有子串的嵌入表示;
然后,对于英文文句子ES,ES=(ew1,ew2,...,ewn),ew1,ew2,...,ewn为单词,对于每个单词ewi(i=1,2,...,n),判断单词ewi是否包含医学术语子串集合中的子串;设单词ewi包含医学术语子串集合中的子串esubs1,esubs2,...,esubsq,子串esubs1,esubs2,...,esubsq的嵌入表示为ees1,ees2,....,eesq,则单词ewi的子串嵌入表示eessi为:对ees1,ees2,....,eesq相加求和,然后除以子串个数q的结果;若单词ewi不包含医学术语子串集合中的任何子串,则输出为自定义值;
最后,对于句子ES中的每个字符ewi(i=1,2,...,n),按照以上步骤生成其对应的子串嵌入;句子ES的子串嵌入为Eess=(eess1,eess2,....,eessn);
步骤1.2.4:将英文医学文本的字符嵌入、词嵌入、词性嵌入、短语嵌入以及子串嵌入进行拼接,构建多粒度文本嵌入:
对于英文句子ES,ES=(ew1,ew2,...,ewn),ew1,ew2,...,ewn为单词,构建ewi(i=1,2,...,n)的多粒度文本嵌入,即拼接句子ES的字符嵌入Eec、词嵌入Eew、词性嵌入Eepos、短语嵌入Eeph,以及子串嵌入Eess,构建句子ES的多粒度文本嵌入,如(4)所示;
Eeme=Concate(Eec,Eew,Eepos,Eeph,Eess) (4)
其中,Concate表示拼接操作。另外,Eeme的维度为1568维,即1568(Eeme的维度)=768(Eec的维度)+200(Eew的维度)+200(Eepos的维度)+200(Eeph的维度)+200(Eess的维度);
至此,从步骤1.2.1到步骤1.2.4,构建好了英文单词ewi(i=1,2,...,n)的多粒度文本嵌入为Eeme
步骤2:根据医学实体构成模式,生成中文句子中所有字符的模式权重,包括以下步骤:
步骤2.1:构建中文医学实体构成模式;
医学实体构成模式的构成形式为:“Y1+Y2+Y3+...+Yk”,其中Y1,Y2,Y3,...,Yk表示词语的类别,“+”表示字符串的链接操作。词语的类别包括否定词、临床表现、解剖部位、修饰词、疾病名称、体格检查、数值、量词、药品;
例如,否定词包括没有、缺乏、没有过等。临床表现包括寒战、出汗、心率增快等。解剖部位包括背部、半月板、左结肠动脉等。修饰词包括轻度、轻微、愈发等。疾病名称包括风湿性心脏病、多发性癌症等。体格检查包括心肺、心电图等。量词包括度、组、只等。药品包括西地兰、头孢呋辛酯、阿司匹林等;
例如,构建医学实体构成模式“否定词+临床表现”,术语“无恶心”和“无发热”满足该模式。因为术语“无恶心”由否定词“无”和临床表现“恶心”构成,术语“无发热”由否定词“无”和临床表现“发热”构成;
步骤2.2:生成中文句子中字符的模式权重;
对于中文句子CS,CS=(cc1,cc2,...,ccn),cc1,cc2,...,ccn为字符,判断中文句子CS是否匹配医学实体构成模式,构建模式匹配权重向量为:(w1,w2,...,wn);
情形1:若字符串cci,cci+1,...,ccj满足模式“解剖部位”、“疾病”或“药品”,则为每个字符cci,cci+1,...,ccj赋予模式权重2;
情形2:若字符串cci,cci+1,...,ccj满足其他模式,则为每个字符cci,cci+1,...,ccj赋予模式权重1.5;
情形3:若字符串cci,cci+1,...,ccj不满足模式,则为每个字符cci,cci+1,...,ccj赋予模式权重1;
例如,输入文本“患者4月前发现皮肤、巩膜黄染”根据医学实体构成模式,生成的模式权重向量为:(1,1,1,1,1,1,1,2,2,1,2,2,1,1);
步骤3:使用图注意力网络和模式强化注意力机制,进行结点嵌入表示学习,包括以下步骤:
步骤3.1利用全连接层对中文字符结点、或英文单词结点的嵌入维度进行变换;
对于中文句子CS中每个字符的多粒度文本嵌入,输入至全连接层,对中文多粒度文本嵌入的嵌入维度从1568维转换为768维。转换维度的原因是:多粒度文本嵌入维度需与步骤3.2中使用的图注意力网络的结点向量输入维度一致,即为768维。同理,对于英文句子ES中每个单词的多粒度文本嵌入,输入至全连接层,对英文多粒度文本嵌入的嵌入维度从1568维转换为768维;
在全连接层中,首先,经过线性层转换维度;然后,利用dropout方法防止过拟合;最后,通过激活函数Relu防止梯度消失;
步骤3.2:对于中文医学文本,利用中文句子中字符的模式权重,将图注意力网络的中文字符结点的注意力权重与模式权重相乘;对于英文医学文本,图注意力网络中英文单词结点的模式权重设为1;
对于中文医学文本,图注意力网络的结点嵌入为字符的嵌入,字符嵌入为步骤3.1生成的768维的字符嵌入。对于英文医学文本,图注意力网络的结点嵌入为单词的嵌入,单词嵌入为步骤3.1生成的768维的单词嵌入;
步骤3.2.1:计算图注意力网络中结点的注意力权重;
首先,将句子的多粒度文本嵌入h输入到图注意力网络中图注意力层中,其中,
Figure BDA0003195630660000171
为医学文本一个句子的中文字符结点或英文单词结点的嵌入,M为结点个数512,H为字符嵌入的维度大小,取值为768维,如(5)所示;
Figure BDA0003195630660000172
对输入结点嵌入进行线性变换,将768维的结点嵌入转换为16维的结点嵌入,16为所有类别标签的个数。并利用LeakyRelu函数计算注意力权重,即计算结点v对结点u的重要程度euv,如(6)所示;
Figure BDA0003195630660000173
其中,W1表示一个共享的权值矩阵,
Figure BDA0003195630660000174
表示医学文本一个句子的中文字符结点或英文单词结点u的嵌入,
Figure BDA0003195630660000175
表示医学文本一个句子的中文字符结点或英文单词结点v的嵌入;
然后,利用Softmax函数对euv进行归一化,得到αuv如(7)所示;
Figure BDA0003195630660000176
其中,euk表示结点u对结点k的重要程度;
其中,αuv表示euv的归一化值,Nu表示结点u的邻居结点;
最后,生成结点u的注意力权重αu,如(8)所示;
Figure BDA0003195630660000181
其中W2表示一个权值矩阵;
步骤3.2.2:更新图注意力网络中结点的注意力权重;
首先,对于结点u,利用结点u所表示中文字符或英文单词的模式权重wu,更新结点u的注意力权重αu,如(9)所示;
αu=αu×wu (9)
其次,构建句子的注意力权重attentionl(1≤l≤k),,如(10)所示;
attentionl=(α12,...,αM) (10)
然后,将多头注意力机制引入到图注意力网络。具体地,计算k个注意力权重,将每个注意力权重与输入h相乘,生成句子的特征h′l,如(11)所示;
h′l=attentionl×h (11)
通过激活函数elu,生成单头的输出elu(h′1),elu(h'2),...,elu(h'k),最后,将k个头的输出进行拼接生成h',如(12)所示;
h'=concat(elu(h′1),elu(h′2),...,elu(h'k)) (12)
最后,通过log_softmax函数生成最终输出hfinal,如(13)所示;
hfinal=log_softmax(h')) (13)
步骤4:采用条件随机场生成医学文本的实体类别标签,输出医学实体识别结果,具体为:生成中文字符或英文单词的实体类别标签;
其中,基于条件随机场计算每个字符条件概率分布密度,也就是计算每个字符属于每种实体类别标签的概率,将概率最高的标签分配给对应的字符,作为字符的实体类别标签,进而输出医学实体识别结果;
采用条件随机场对医学文本中句子进行序列标注,生成中文字符或英文单词的实体类别标签,输出医学文本实体识别结果。
例如,对于一个数据集,其实体类别标签包括:“PAD”、“CLS”、“SEP”、“O”、“B-疾病和诊断”、“I-疾病和诊断”、“B-手术”、“I-手术”、“B-解剖部位”、“I-解剖部位”、“B-药物”、“I-药物”、“B-影像检查”、“I-影像检查”、“B-实验室检验”、“I-实验室检验”;
例如,对于句子“患者4月前发现皮肤、巩膜黄染,伴食欲上降,晚餐后明显,时有阵发性腹痛、恶心,无腹泻、呕吐,时有胸闷、憋气、头晕,无头痛,无视物旋转,无发热、咳嗽,无胸痛、喘憋,大便颜色较前变浅。”,经过条件随机场序列标注后的结果为[3,3,3,3,3,3,3,3,3,3,8,9,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,8,3,3,3,3,3,3,8,3,3,3,3,3,3,3,8,3,3,3,3,3,8,3,3,3,8,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,8,3,3,3,3,3,3,3,3,3,3,3,3,3,3];列表中的每个数表示预测的该位字符的实体类别标签的索引。通过idx2tag函数将索引转换为对应的实体标签,最终实体识别结果为“O O O O O O O O O O B-解剖部位I-解剖部位O O O O O O O O O O O O O O O O O O O O B-解剖部位O O O O O OB-解剖部位O O O O O O O B-解剖部位O O O O O B-解剖部位O O O B-解剖部位O O O OO O O O O O O O O O O O B-解剖部位O O O O O O O O O O O O O O”。
为说明本发明的医学实体识别效果,本实验是在同等条件下,以相同的训练集和测试集分别采用两种方法进行比较;第一种方法是基于双向长短期记忆网络、注意力机制和条件随机场的医学实体识别方法,该方法引入了医学词典和词性特征;第二种方法是本发明的医学实体识别方法;
采用的评测指标为:准确率、召回率和F1值;医学实体识别结果为:已有技术的双向长短期记忆网络、注意力机制和条件随机场的医学实体识别结果的准确率为76.42%,召回率为73.80%,F1值为75.08%;采用本发明方法的医学实体识别结果的准确率为86.38%,召回率为85.82%,F1值为86.10%;通过实验表明了本发明提出的基于多粒度文本嵌入的医学实体识别方法的有效性;
以上所述为本发明的较佳实施例而已,本发明不应该局限于该实施例和附图所公开的内容。凡是不脱离本发明所公开的精神下完成的等效或修改,都落入本发明保护的范围。

Claims (9)

1.一种基于多粒度文本嵌入的医学实体识别方法,其特征在于:包括以下步骤:
步骤1:通过预训练语言模型构建多粒度文本嵌入,包括如下步骤:
步骤1.1:对于非结构化的中文医学文本,构建多粒度文本嵌入;
步骤1.1.1:利用预训练语言模型MC-Bert进行符号嵌入、分割嵌入和遮盖嵌入的学习,生成非结构化的中文医学文本的字符嵌入;
对于非结构化的中文医学文本,预训练语言模型MC-Bert的输入由三种嵌入组成,分别是符号嵌入、分割嵌入和遮盖嵌入;
步骤1.1.2:生成中文医学文本的词嵌入、词性嵌入以及短语嵌入;
首先,对于中文医学文本,使用jieba分词工具获得中文医学文本的词语,利用词性标注器Stanford postagger获得中文医学文本的词语的词性标记,利用句法分析器Stanfordparser获得中文医学文本的短语标记;
然后,利用word2vec工具生成词嵌入、词性嵌入以及短语嵌入;
步骤1.1.3:对于非结构化的中文医学文本,利用word2vec工具生成子串嵌入,具体为:
首先,采集医学术语词典,构建医学术语子串集合,具体为:对于任意两个术语,提取两个术语的最长公共子串,添加到医学术语子串集合;若两个术语有多个相同长度的最长公共子串,则取第一个最长公共子串,添加到医学术语子串集合;
其次,对医学术语子串集合中的子串,利用word2vec工具生成所有子串的嵌入表示;
步骤1.1.4:将中文医学文本的字符嵌入、词嵌入、词性嵌入、短语嵌入以及子串嵌入进行拼接,构建多粒度文本嵌入;
步骤1.2:对于非结构化的英文医学文本,构建多粒度文本嵌入,包括以下步骤:
步骤1.2.1:利用预训练语言模型BioBert进行符号嵌入、分割嵌入和遮盖嵌入的学习,生成非结构化的英文医学文本的单词嵌入;
BioBert是根据英文医学数据训练生成的预训练模型;
步骤1.2.2:生成英文医学文本的字符嵌入、词性嵌入以及短语嵌入;
对于英文医学文本,利用word2vec工具生成字符嵌入、词性嵌入、短语嵌入;
步骤1.2.3:对于非结构化的英文医学文本,利用word2vec工具生成子串嵌入;
首先,采集英文医学术语词典,构建医学术语子串集合;对于任意两个术语,提取两个术语的最长公共子串,添加到医学术语子串集合;若两个术语有多个相同长度的最长公共子串,则取第一个最长公共子串,添加到医学术语子串集合;
其次,利用word2vec工具生成所有子串的嵌入表示;
然后,对于英文文句子ES,ES=(ew1,ew2,...,ewn),ew1,ew2,...,ewn为单词,对于每个单词ewi(i=1,2,...,n),判断单词ewi是否包含医学术语子串集合中的子串;设单词ewi包含医学术语子串集合中的子串esubs1,esubs2,...,esubsq,子串esubs1,esubs2,...,esubsq的嵌入表示为ees1,ees2,....,eesq,则单词ewi的子串嵌入表示eessi为:对ees1,ees2,....,eesq相加求和,然后除以子串个数q的结果;若单词ewi不包含医学术语子串集合中的任何子串,则输出为自定义值;
最后,对于句子ES中的每个单词ewi(i=1,2,...,n),按照以上步骤生成其对应的子串嵌入;句子ES的子串嵌入为Eess=(eess1,eess2,....,eessn);
步骤1.2.4:将英文医学文本的字符嵌入、词嵌入、词性嵌入、短语嵌入以及子串嵌入进行拼接,构建多粒度文本嵌入;
步骤2:根据医学实体构成模式,生成中文句子中所有字符的模式权重,包括如下步骤:
步骤2.1:构建中文医学实体构成模式;
医学实体构成模式的构成形式为:“Y1+Y2+Y3+...+Yk”;
其中,Y1,Y2,Y3,...,Yk表示词语的类别,“+”表示字符串的链接操作;
词语的类别包括否定词、临床表现、解剖部位、修饰词、疾病名称、体格检查、数值、量词以及药品;
步骤2.2:生成中文句子中字符的模式权重;
步骤3:使用图注意力网络和模式强化注意力机制,进行结点嵌入表示学习,包括如下步骤:
步骤3.1利用全连接层对中文字符结点、或英文单词结点的嵌入维度进行变换;
对于中文句子CS中每个字符的多粒度文本嵌入,输入至全连接层,对中文多粒度文本嵌入的嵌入维度进行转换;转换维度的原因是:多粒度文本嵌入维度需与步骤3.2中使用的图注意力网络的结点向量输入维度一致;
同理,对于英文句子ES中每个单词的多粒度文本嵌入,输入至全连接层,对英文多粒度文本嵌入的嵌入维度进行转换;
在全连接层中,首先,经过线性层转换维度;然后,利用dropout方法防止过拟合;最后,通过激活函数Relu防止梯度消失;
步骤3.2:对于中文医学文本,利用中文句子中字符的模式权重,将图注意力网络的中文字符结点的注意力权重与模式权重相乘;对于英文医学文本,图注意力网络中英文单词结点的模式权重设为1;
对于中文医学文本,图注意力网络的结点嵌入为字符的嵌入,字符嵌入为步骤3.1生成的字符嵌入;对于英文医学文本,图注意力网络的结点嵌入为单词的嵌入,单词嵌入为步骤3.1生成的单词嵌入;
步骤3.2.1:计算图注意力网络中结点的注意力权重;
步骤3.2.2:更新图注意力网络中结点的注意力权重;
步骤4:采用条件随机场生成医学文本的实体类别标签,输出医学实体识别结果,具体为:生成中文字符或英文单词的实体类别标签;
其中,基于条件随机场计算每个字符条件概率分布密度,也就是计算每个字符属于每种实体类别标签的概率,将概率最高的标签分配给对应的字符,作为字符的实体类别标签,进而输出医学实体识别结果;
采用条件随机场对医学文本中句子进行序列标注,生成中文字符或英文单词的实体类别标签,输出医学文本实体识别结果。
2.根据权利要求1所述的一种基于多粒度文本嵌入的医学实体识别方法,其特征在于:步骤1.1.1中的MC-Bert是根据中文医学数据训练生成的预训练模型;且步骤1.1.1中的符号嵌入是指每个词语的向量表示;分割嵌入用于区分两个自然语言句子,医学实体识别任务以句子为单位进行识别实体,因此每个词语具有相同的分割嵌入;遮盖嵌入中,若当前位置为输入句子的字符,则赋值为1;若当前位置为0,即不是输入句子的字符,则赋值为0。
3.根据权利要求2所述的一种基于多粒度文本嵌入的医学实体识别方法,其特征在于:步骤1.1.1中,对于中文句子CS,CS=(cc1,cc2,...,ccn),cc1,cc2,...,ccn为字符,采用预训练语言模型MC-Bert,生成句子CS的字符嵌入表示Ecc如(1)所示:
Ecc=(ecc1,ecc2,....,eccn),Ecc∈Rn×m(1)
其中,n为句子长度,即句子中字符的数目,若字符数目不到n,则填充0;m为预训练模型MC-Bert设置的维度;ecci(i=1,2,...,n)为字符cci的嵌入;字符嵌入表示Ecc的维度为n行m列;Rn×m表示n行m列的实数矩阵。
4.根据权利要求3所述的一种基于多粒度文本嵌入的医学实体识别方法,其特征在于:步骤1.1.2中对于中文句子CS,CS=(cc1,cc2,...,ccn),cc1,cc2,...,ccn为字符,词嵌入,具体为:基于jieba分词工具获得中文医学文本的词语,利用word2vec获取所隶属词语的词嵌入;词性嵌入,具体为:基于获得中文医学文本的词语的词性标记,利用word2vec获取所隶属词语的词性嵌入;短语嵌入,具体为:基于获得中文医学文本的短语标记,利用word2vec获取所隶属短语的类型嵌入;
其中,词嵌入为Ecw=(ecw1,ecw2,....,ecwn),其中,字符cc1,cc2,...,ccn所隶属的词语依次为cw1,cw2,...,cwn;ecwi(i=1,2,...,n)为词语cwi的嵌入;
词性嵌入为Ecpos=(ecpo1,ecpo2,....,ecpon),其中,词语cw1,cw2,...,cwn的词性依次为cpo1,cpo2,...,cpon;ecpoi(i=1,2,...,n)为词性cpoi的嵌入;
短语嵌入为Ecph=(ecph1,ecph2,....,ecphn),其中,字符cc1,cc2,...,ccn所隶属的短语类型依次为cph1,cph2,...,cphn;ecphi(i=1,2,...,n)为短语类型cphi的嵌入。
5.根据权利要求4所述的一种基于多粒度文本嵌入的医学实体识别方法,其特征在于:步骤1.1.3中利用word2vec工具生成所有子串的嵌入表示后,对于每个词语cwi(i=1,2,...,n),判断该词语cwi是否包含医学术语子串集合中的子串;对于中文句子CS,CS=(cc1,cc2,...,ccn),cc1,cc2,...,ccn为字符,cc1,cc2,...,ccn所隶属的词语依次为:cw1,cw2,...,cwn;设词语cwi包含医学术语子串集合中的子串csubs1,csubs2,...,csubsp,子串csubs1,csubs2,...,csubsp的嵌入表示分别为ecs1,ecs2,....,ecsp,则词语cwi的子串嵌入表示ecssi为:对ecs1,ecs2,....,ecsp相加求和,然后除以子串个数p的结果;若词语cwi不包含医学术语子串集合中的任何子串,则输出为自定义值;
最后,对于句子CS中的每个字符cci(i=1,2,...,n),按照以上步骤生成其对应的子串嵌入;句子CS的子串嵌入为Ecss=(ecss1,ecss2,....,ecssn)。
6.根据权利要求5所述的一种基于多粒度文本嵌入的医学实体识别方法,其特征在于:步骤1.1.4,具体为:
对于中文句子CS,CS=(cc1,cc2,...,ccn),cc1,cc2,...,ccn为字符,构建字符cci(i=1,2,...,n)的多粒度文本嵌入,即拼接句子CS的字符嵌入Ecc、词嵌入Ecw、词性嵌入Ecpos、短语嵌入Ecph以及子串嵌入Ecss,构建句子CS的多粒度文本嵌入,如(2)所示:
Ecme=Concate(Ecc,Ecw,Ecpos,Ecph,Ecss) (2)
其中,Concate表示拼接操作;另外,Ecme的维度=Ecc的维度+Ecw的维度+Ecpos的维度+Ecph的维度+Ecss的维度;
至此,从步骤1.1.1到步骤1.1.4,构建好了中文字符cci(i=1,2,...,n)的多粒度文本嵌入为Ecme
7.根据权利要求6所述的一种基于多粒度文本嵌入的医学实体识别方法,其特征在于:步骤1.2.1中,对于英文句子ES,ES=(ew1,ew2,...,ewn),ew1,ew2,...,ewn为单词,利用预训练语言模型BioBert,生成句子ES的词嵌入表示,如(3)所示:
Eew=(eew1,eew2,....,eewn),Eew∈Rn×m(3)
其中,n为句子长度,即句子中单词的数目,若单词数目不到n,则填充0;m为预训练模型BioBert设置的维度;eewi(i=1,2,...,n)为单词ewi的嵌入;
步骤1.2.2中,对于英文句子ES,ES=(ew1,ew2,...,ewn),ew1,ew2,...,ewn为单词,ewi(i=1,2,...,n)的字符嵌入为构成ewi的所有字符嵌入求和取平均值,词性嵌入为ewi的词性的嵌入,短语嵌入为所隶属短语的类型的嵌入;
其中,字符嵌入为Eec=(eec1,eec2,....,eecn),其中,eeci(i=1,2,...,n)为单词ewi的字符嵌入;
词性嵌入为Eepos=(eepo1,eepo2,....,eepon),其中,单词ew1,ew2,...,ewn的词性依次为epo1,epo2,...,epon;eepoi(i=1,2,...,n)为词性epoi的嵌入;
短语嵌入为Eeph=(eeph1,eeph2,....,eephn),其中,单词ew1,ew2,...,ewn所隶属的短语类型依次为eph1,eph2,...,ephn;eephi(i=1,2,...,n)为短语类型ephi的嵌入。
8.根据权利要求7所述的一种基于多粒度文本嵌入的医学实体识别方法,其特征在于:步骤1.2.4,具体为:
对于英文句子ES,ES=(ew1,ew2,...,ewn),ew1,ew2,...,ewn为单词,构建ewi(i=1,2,...,n)的多粒度文本嵌入,即拼接句子ES的字符嵌入Eec、词嵌入Eew、词性嵌入Eepos、短语嵌入Eeph,以及子串嵌入Eess,构建句子ES的多粒度文本嵌入,如(4)所示;
Eeme=Concate(Eec,Eew,Eepos,Eeph,Eess) (4)
其中,Concate表示拼接操作;另外,Eeme的维度=Eec的维度+Eew的维度+Eepos的维度+Eeph的维度+2Eess的维度;
至此,从步骤1.2.1到步骤1.2.4,构建好了英文单词ewi(i=1,2,...,n)的多粒度文本嵌入为Eeme
9.根据权利要求8所述的一种基于多粒度文本嵌入的医学实体识别方法,其特征在于:步骤2.2中,对于中文句子CS,CS=(cc1,cc2,...,ccn),cc1,cc2,...,ccn为字符,判断中文句子CS是否匹配医学实体构成模式,构建模式匹配权重向量为:(w1,w2,...,wn);
情形1:若字符串cci,cci+1,...,ccj满足模式“解剖部位”、“疾病”或“药品”,则为每个字符cci,cci+1,...,ccj赋予模式权重2;
情形2:若字符串cci,cci+1,...,ccj满足其他模式,则为每个字符cci,cci+1,...,ccj赋予模式权重1.5;
情形3:若字符串cci,cci+1,...,ccj不满足模式,则为每个字符cci,cci+1,...,ccj赋予模式权重1;
步骤3.2.1,具体为:
首先,将句子的多粒度文本嵌入h输入到图注意力网络中图注意力层中,其中,
Figure FDA0003195630650000061
为医学文本一个句子的中文字符结点或英文单词结点的嵌入,M为结点个数,H为字符嵌入的维度大小,如(5)所示;
Figure FDA0003195630650000062
对输入结点嵌入进行线性变换,将结点嵌入转换为所有类别标签个数的维度大小;并利用LeakyRelu函数计算注意力权重,即计算结点v对结点u的重要程度euv,如(6)所示;
Figure FDA0003195630650000071
其中,W1表示一个共享的权值矩阵,
Figure FDA0003195630650000072
表示医学文本一个句子的中文字符结点或英文单词结点u的嵌入,
Figure FDA0003195630650000073
表示医学文本一个句子的中文字符结点或英文单词结点v的嵌入;
然后,利用Softmax函数对euv进行归一化,得到αuv如(7)所示;
Figure FDA0003195630650000074
其中,euk表示结点u对结点k的重要程度,αuv表示euv的归一化值,Nu表示结点u的邻居结点;
最后,生成结点u的注意力权重αu,如(8)所示;
Figure FDA0003195630650000075
其中,W2表示一个权值矩阵;
步骤3.2.2,具体为:
首先,对于结点u,利用结点u所表示中文字符或英文单词的模式权重wu,更新结点u的注意力权重αu,如(9)所示;
αu=αu×wu(9)
其次,构建句子的注意力权重attentionl(1≤l≤k),如(10)所示;
attentionl=(α1,α2,...,αM) (10)
然后,将多头注意力机制引入到图注意力网络,具体为:计算k个注意力权重,将每个注意力权重与输入h相乘,生成句子的特征h′l,如(11)所示;
h′l=attentionl×h (11)
通过激活函数elu,生成单头输出elu(h′1),elu(h′2),...,elu(h′k);
第三,将k个头的输出进行拼接生成h′,如(12)所示;
h′=Concat(elu(h′1),elu(h′2),...,elu(h′k)) (12)
最后,通过log_softmax函数生成最终输出hfinal,如(13)所示。
hfinal=log_softmax(h')) (13)。
CN202110890112.9A 2021-06-09 2021-08-04 一种基于多粒度文本嵌入的医学实体识别方法 Active CN113779993B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN2021106415959 2021-06-09
CN202110641595 2021-06-09

Publications (2)

Publication Number Publication Date
CN113779993A true CN113779993A (zh) 2021-12-10
CN113779993B CN113779993B (zh) 2023-02-28

Family

ID=78836880

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110890112.9A Active CN113779993B (zh) 2021-06-09 2021-08-04 一种基于多粒度文本嵌入的医学实体识别方法

Country Status (1)

Country Link
CN (1) CN113779993B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114972929A (zh) * 2022-07-29 2022-08-30 中国医学科学院医学信息研究所 一种医学多模态模型的预训练方法及装置
CN115512859A (zh) * 2022-11-21 2022-12-23 北京左医科技有限公司 基于互联网的诊中质量管理方法、管理装置及存储介质
CN115618824A (zh) * 2022-10-31 2023-01-17 上海苍阙信息科技有限公司 数据集的标注方法、装置、电子设备及介质
CN116629267A (zh) * 2023-07-21 2023-08-22 云筑信息科技(成都)有限公司 一种基于多粒度命名实体识别方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111079377A (zh) * 2019-12-03 2020-04-28 哈尔滨工程大学 一种面向中文医疗文本命名实体识别的方法
US20200226472A1 (en) * 2019-01-10 2020-07-16 Arizona Board Of Regents On Behalf Of Arizona State University Systems and methods for a supra-fusion graph attention model for multi-layered embeddings and deep learning applications
CN111444721A (zh) * 2020-05-27 2020-07-24 南京大学 一种基于预训练语言模型的中文文本关键信息抽取方法
CN112101031A (zh) * 2020-08-25 2020-12-18 厦门渊亭信息科技有限公司 一种实体识别方法、终端设备及存储介质
CN112541356A (zh) * 2020-12-21 2021-03-23 山东师范大学 一种生物医学命名实体识别的方法和***
CN112597774A (zh) * 2020-12-14 2021-04-02 山东师范大学 中文医疗命名实体识别方法、***、存储介质和设备

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200226472A1 (en) * 2019-01-10 2020-07-16 Arizona Board Of Regents On Behalf Of Arizona State University Systems and methods for a supra-fusion graph attention model for multi-layered embeddings and deep learning applications
CN111079377A (zh) * 2019-12-03 2020-04-28 哈尔滨工程大学 一种面向中文医疗文本命名实体识别的方法
CN111444721A (zh) * 2020-05-27 2020-07-24 南京大学 一种基于预训练语言模型的中文文本关键信息抽取方法
CN112101031A (zh) * 2020-08-25 2020-12-18 厦门渊亭信息科技有限公司 一种实体识别方法、终端设备及存储介质
CN112597774A (zh) * 2020-12-14 2021-04-02 山东师范大学 中文医疗命名实体识别方法、***、存储介质和设备
CN112541356A (zh) * 2020-12-21 2021-03-23 山东师范大学 一种生物医学命名实体识别的方法和***

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
MA NIANZU 等: "Entity-Aware Dependency-based Deep Graph Attention Network for Comparative Preference Classification", 《NSF PUBLIC ACCESS》 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114972929A (zh) * 2022-07-29 2022-08-30 中国医学科学院医学信息研究所 一种医学多模态模型的预训练方法及装置
CN115618824A (zh) * 2022-10-31 2023-01-17 上海苍阙信息科技有限公司 数据集的标注方法、装置、电子设备及介质
CN115618824B (zh) * 2022-10-31 2023-10-27 上海苍阙信息科技有限公司 数据集的标注方法、装置、电子设备及介质
CN115512859A (zh) * 2022-11-21 2022-12-23 北京左医科技有限公司 基于互联网的诊中质量管理方法、管理装置及存储介质
CN116629267A (zh) * 2023-07-21 2023-08-22 云筑信息科技(成都)有限公司 一种基于多粒度命名实体识别方法
CN116629267B (zh) * 2023-07-21 2023-12-08 云筑信息科技(成都)有限公司 一种基于多粒度命名实体识别方法

Also Published As

Publication number Publication date
CN113779993B (zh) 2023-02-28

Similar Documents

Publication Publication Date Title
CN113779993B (zh) 一种基于多粒度文本嵌入的医学实体识别方法
CN110032648B (zh) 一种基于医学领域实体的病历结构化解析方法
Finkel et al. Nested named entity recognition
CN112597774B (zh) 中文医疗命名实体识别方法、***、存储介质和设备
CN110162784B (zh) 中文病历的实体识别方法、装置、设备及存储介质
Warjri et al. Identification of pos tag for khasi language based on hidden markov model pos tagger
Liang et al. Asynchronous deep interaction network for natural language inference
CN114927177A (zh) 一种融合中文医疗领域特征的医疗实体识别方法及***
Yohannes et al. A method of named entity recognition for tigrinya
Wang et al. A hybrid model based on deep convolutional network for medical named entity recognition
CN110543630A (zh) 文本结构化表示的生成方法、装置及计算机存储介质
Ahnaf et al. An improved extrinsic monolingual plagiarism detection approach of the Bengali text.
CN115759102A (zh) 一种中国诗酒文化命名实体识别方法
Cheng et al. MTNER: a corpus for Mongolian tourism named entity recognition
CN114444467A (zh) 一种中医文献内容分析方法和装置
Baruah et al. Character coreference resolution in movie screenplays
Kalaivani et al. Told: Tamil offensive language detection in code-mixed social media comments using mbert with features based selection
Nunsanga et al. Part-of-speech tagging in Mizo language: A preliminary study
Bharti et al. Sarcasm as a contradiction between a tweet and its temporal facts: a pattern-based approach
Wen et al. Improving Extraction of Chinese Open Relations Using Pre-trained Language Model and Knowledge Enhancement
Asker et al. Classifying Amharic webnews
Patkar et al. A Neural Network Based Machine Translation model For English To Ahirani Language
Barathi Ganesh et al. MedNLU: natural language understander for medical texts
Nizami et al. Hindustani or hindi vs. urdu: A computational approach for the exploration of similarities under phonetic aspects
Gonzales et al. Developing a hybrid neural network for part-of-speech tagging and named entity recognition

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant