发明内容
本申请提供一种病历文本的文本分类方法及装置,用以根据文本类型对病历文本进行分段并输出每段的文本类型。
本发明实施例提供的一种病历文本的文本分类方法,包括:
确定病历文本中各文本元素的输入向量;
针对所述病历文本中的一个文本元素,将所述文本元素的输入向量转换为所述文本元素的隐层表示,所述隐层表示包含所述病历文本的信息;
根据所述文本元素的隐层表示,确定所述文本元素对应的文本类型;
将文本类型相同的连续的文本元素合并成一个段落,并将文本元素对应的文本类型作为所述段落的文本类型。
可选的,所述病历文本中的文本元素包括所述病历文本中的文字;
所述确定病历文本中各文本元素的输入向量,包括:
利用字嵌入技术,确定所述病历文本中的每个文字的第一向量;
对所述病历文本进行分词,利用词嵌入技术,确定所述病历文本中的每个词的向量,并将每个词的向量作为对应的文字的第二向量;
根据所述第一向量和所述第二向量,确定所述病历文本中每个文字的输入向量。
可选的,所述将所述文本元素的输入向量转换为所述文本元素的隐层表示,包括:
利用长短期记忆模型,将所述文本元素的输入向量转换为所述文本元素的隐层表示。
可选的,所述利用长短期记忆模型,将所述文本元素的输入向量转换为所述文本元素的隐层表示,包括:
针对所述病历文本中的至少一个文本元素,利用第一长短期记忆模型,根据所述病历文本的输入向量,确定所述文本元素的初态隐层向量;
将所述病历文本的输入向量以及所述文本元素的初态隐层向量输入第二长短期记忆模型中,生成所述文本元素的隐层表示,所述第二长短期记忆模型为基于注意力机制的递归神经网络模型。
可选的,所述根据所述文本元素的隐层表示,确定所述文本元素对应的文本类型,包括:
将所述文本元素的隐层表示逆投影至文本类型空间,确定所述文本元素最接近的文本类型。
本发明实施例还提供一种病历文本的文本分类装置,包括:
输入单元,用于确定病历文本中各文本元素的输入向量;
计算单元,用于针对所述病历文本中的一个文本元素,将所述文本元素的输入向量转换为所述文本元素的隐层表示,所述隐层表示包含所述病历文本的信息;
配对单元,用于根据所述文本元素的隐层表示,确定所述文本元素对应的文本类型;
分类单元,用于将文本类型相同的连续的文本元素合并成一个段落,并将文本元素对应的文本类型作为所述段落的文本类型。
可选的,所述病历文本中的文本元素包括所述病历文本中的文字;
所述输入单元,具体用于:
利用字嵌入技术,确定所述病历文本中的每个文字的第一向量;
对所述病历文本进行分词,利用词嵌入技术,确定所述病历文本中的每个词的向量,并将每个词的向量作为对应的文字的第二向量;
根据所述第一向量和所述第二向量,确定所述病历文本中每个文字的输入向量。
可选的,所述计算单元,用于:
利用长短期记忆模型,将所述文本元素的输入向量转换为所述文本元素的隐层表示。
可选的,所述计算单元,具体用于:
针对所述病历文本中的至少一个文本元素,利用第一长短期记忆模型,根据所述病历文本的输入向量,确定所述文本元素的初态隐层向量;
将所述病历文本的输入向量以及所述文本元素的初态隐层向量输入第二长短期记忆模型中,生成所述文本元素的隐层表示,所述第二长短期记忆模型为基于注意力机制的递归神经网络模型。
可选的,所述配对单元,具体用于:
将所述文本元素的隐层表示逆投影至文本类型空间,确定所述文本元素最接近的文本类型。
本发明实施例还提供一种电子设备,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述实施例中任一所述的方法。
本发明实施例还提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行上述实施例中任一所述方法。
本发明实施例中,将获取待分类的病历文本后,确定病历文本中各文本元素的输入向量,即将病历文本中的各个文本元素用输入向量的形式表示。针对至少一个文本元素,将病历文本中文本元素的输入向量转化为文本元素的隐层表示,其中,隐层表示包含了病历文本的信息。根据文本元素的隐层表示,确定该单个文本元素对应的文本类型,将文本类型相同的连续的文本元素合并作为一个段落,并将文本元素对应的文本类型作为该段落的文本类型。本发明实施例不限制输入的病历文本为单一类别,而是对病历文本自动分段,并逐段进行分类,可以处理较为复杂的病历文本,尤其适用于同一病历文本对应不止一个文本类型的情况。此外,本发明实施例省去了人工设计特征和规则的过程,避免了人力设计规则的不全面性,可以得到更好的性能和鲁棒性。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
本发明实施例提供了一种病历文本的文本分类方法。如图1所示,本发明实施例提供的病历文本的文本分类方法,包括以下步骤:
步骤101、确定病历文本中各文本元素的输入向量。
步骤102、针对所述病历文本中的一个文本元素,将所述文本元素的输入向量转换为所述文本元素的隐层表示,所述隐层表示包含所述病历文本的信息。
步骤103、根据所述文本元素的隐层表示,确定所述文本元素对应的文本类型。
步骤104、将文本类型相同的连续的文本元素合并成一个段落,并将文本元素对应的文本类型作为所述段落的文本类型。
本发明实施例中,将获取待分类的病历文本后,确定病历文本中各文本元素的输入向量,即将病历文本中的各个文本元素用输入向量的形式表示。针对至少一个文本元素,将病历文本中文本元素的输入向量转化为文本元素的隐层表示,其中,隐层表示包含了病历文本的信息。根据文本元素的隐层表示,确定该单个文本元素对应的文本类型,将文本类型相同的连续的文本元素合并作为一个段落,并将文本元素对应的文本类型作为该段落的文本类型。本发明实施例不限制输入的病历文本为单一类别,而是对病历文本自动分段,并逐段进行分类,可以处理较为复杂的病历文本,尤其适用于同一病历文本对应不止一个文本类型的情况。此外,本发明实施例省去了人工设计特征和规则的过程,避免了人力设计规则的不全面性,可以得到更好的性能和鲁棒性。
上述步骤101,可以利用词嵌入方法来确定病历文本中各文本元素的输入向量。
词嵌入是自然语言处理中语言模型与表征学习技术的统称,是指把一个维数为所有词的数量的高维空间嵌入到一个维数低的多的连续向量空间中,每个单词或词组被映射为实数域上的向量。
将每个词语都变成一个向量,目的是为了便于计算。因为对于计算机而言,所有的词都是用0或1表示成二进制的字符串,无法进行计算,而通过词嵌入将词语转变为相连,计算机即可对词语进行计算,甚至可以通过计算不同向量之间的夹角余弦值而得出单词之间的相似性。
例如,在一个病历文本中包含“发烧”、“咳嗽”、“女性”等若干单词,将这些单词映射到向量空间中,“发烧”对应的向量为(0.1,0.2,0.2),“咳嗽”对应的向量为(0.3,0.3,0.4),“女性”对应的向量为(-0.4,-0.6,-0.5)。这样,给病历文本中每一个词语分配一个固定长度的向量,这个长度可以自行设定,即可利用向量唯一标识该词语,计算机也可以利用向量对病历文本中的词语进行计算。
对于人类而言,我们知道“发烧”和“咳嗽”表示的都是生病的症状,而“女性”是一种性别,即“发烧”与“咳嗽”更相似,与“女性”的差异较大。计算机可以根据“发烧”、“咳嗽”、“女性”的向量计算出“发烧”和“咳嗽”较为相近。即通过简单的余弦函数,计算出两个词语之间的相关性:
其中,A和B分别为两个词语的向量表示,similarity为词语A和B之间的相关性。
词嵌入的方法需要大量的文本数据进行训练,从而确定每个词语对应的输入向量。
本发明实施例中,利用字嵌入技术,将病历文本中各单字映射为计算机可以计算的向量。这里的字嵌入技术与上述词嵌入技术类似,即将每个单字映射为实数域上的向量。
为了提升算法的准确性,利用混合字/词混合型嵌入技术进行编码。上述步骤101,确定病历文本中各文本元素的输入向量,包括:
利用字嵌入技术,确定所述病历文本中的每个单字的第一向量;
对所述病历文本进行分词,利用词嵌入技术,确定所述病历文本中的每个词的向量,并将每个词的向量作为对应的单字的第二向量;
根据所述第一向量和所述第二向量,确定所述病历文本中每个单字的输入向量。
其中,病历文本中的文本元素包括所述病历文本中的单字。
具体来说,首先将每个单字映射到向量空间R中,得到字嵌入向量v。然后对病历文本进行分词,将每个词映射到另一向量空间S,得到词嵌入向量u。将词嵌入向量u连接至该词语对应的单字的字嵌入向量v后,同一个词语对应的词嵌入向量会被复制到其对应的每个单字的字嵌入向量后,作为该单字最终的输入向量。举例来说,对于“发烧”,将“发”字映射到向量空间R中,得到“发”的字嵌入向量,假设为(0.01,0.02,0.03),然后将词语“发烧”映射到向量空间S中,得到“发烧”的词嵌入向量,假设为(0.1,0.2,0.2),最后将词嵌入向量(0.1,0.2,0.2)连接至字嵌入向量(0.01,0.02,0.03)之后,则在这里单字“发”的输入向量即为(0.01,0.02,0.03,0.1,0.2,0.2)。假设“烧”的字嵌入向量为(0.03,0.04,0.05),则“烧”的输入向量为(0.03,0.04,0.05,0.1,0.2,0.2)。
通过上述方法,本发明实施例中将病历文本转换为一个输入矩阵,矩阵的宽为文本字符数,高为向量空间R与空间S的维度之和。字和词到嵌入空间的映射通过机器学习方法得到。
之后,本发明实施例根据文本元素的输入向量计算得出各文本元素的隐层表示。上述步骤102,将所述文本元素的输入向量转换为所述文本元素的隐层表示,包括:
利用长短期记忆模型,将所述文本元素的输入向量转换为所述文本元素的隐层表示。
在神经网络系统中,一个神经网络包括有多个神经层,即输入层、隐藏层及输出层。输入层负责接收输入及分发到隐藏层,因为用户看不见这些层,所以叫做隐藏层。这些隐藏层负责所需的计算及输出结果给输出层,输出层将最终结果输出给用户,则用户可以看到最终结果。本发明实施例中,将隐藏层计算过程中得出的中间值叫做隐层表示,因为利用了长短期记忆模型,使得根据本发明实施例中文本元素的输入向量计算得到的隐层表示包含了文本元素的上下文信息。长短期记忆(LSTM,Long-Short Term Memory)模型是递归神经网络(RNN,Recurrent Neutral Network)的一种。长短期记忆模型模拟了人类思考的习惯,人类并不是每时每刻都从头开始思考,而是在理解前面词语的基础上来理解每个词,这样的思想具有持续性。递归神经网络与其他网络的不同之处在于它的隐藏层是能够跨越时间点的自连接隐藏层,隐藏层的输出不仅进入输出端,还进入了下一个时间步骤的隐藏层,所以它能够持续保留信息,能够根据之前状态推出后面的状态。递归神经网络也有缺点,跨时间步的反向传播扩展会有梯度消失问题,即后面时间步的错误信号不能回到足够早的时间步,这样递归神经网络就不能学习长时间度的问题。长短期记忆模型就被提出,该模型能够学习长期依赖关系。本发明实施例中,利用长短期记忆模型,根据文本元素的输入向量得出隐层表示,使得该隐层表示包含了文本元素的上下文信息。除了长短期记忆模型外,还可以通过其它方式使得文本元素的隐层表示包括了该文本元素的上下文信息,比如循环门控单元模型。
为了进一步提升算法的准确率,本发明实施例通过两次长短期记忆模型确定文本元素的隐层表示。具体来说,利用长短期记忆模型,将所述文本元素的输入向量转换为所述文本元素的隐层表示,包括:
针对所述病历文本中的至少一个文本元素,利用第一长短期记忆模型,根据所述病历文本的输入向量,确定所述文本元素的初态隐层向量;
将所述病历文本的输入向量以及所述文本元素的初态隐层向量输入第二长短期记忆模型中,生成所述文本元素的隐层表示,所述第二长短期记忆模型为基于注意力机制的递归神经网络模型。
上述第一长短期记忆模型与第二长短期记忆模型的不同之处在于,第二长短期模型中加入了注意力机制。注意力机制借鉴了人类的视觉注意力机制,视觉注意力机制是人类视觉所特有的大脑信号处理机制。人类视觉通过快速扫描全局图像,获得需要重点关注的目标区域,也就是一般所说的注意力焦点,而后对这一区域投入更多注意力资源,以获取更多所需要关注目标的细节信息,而抑制其他无用信息。注意力机制从本质上讲和人类的选择性视觉注意力机制类似,核心目标也是从众多信息中选择出对当前任务目标更关键的信息。也就是说,注意力机制是从大量信息中有选择地筛选出少量重要信息并聚焦到这些重要信息上,忽略大多不重要的信息。聚焦的过程体现在权重系数的计算上,权重越大越聚焦于其对应的内容上,即权重代表了信息的重要性。在本发明实施例中,针对一个文本元素,利用注意力机制,从病历文本的所有文本元素中,聚焦到与该文本元素关联性较大的文本元素中,使得该文本元素的隐层表示包含关联性较大的文本元素的信息。
举例来说,待分类的病历文本包含了一段文字“患者发热1日,无咳嗽,大便正常”,针对“咳”字,第一长短期记忆模型处理后得到的初态隐层向量中包含了“患者发热1日,无”以及“嗽,大便正常”的信息数据。然后再利用注意力机制,从病历文本的所有文本元素中找出与“咳”这个字相关性较大的一段文字,这段文字记为A,将文字A的输入向量以及“咳”的初态隐层向量输入第二长短期记忆模型中,使得“咳”的隐层表示不仅包含了上下文的信息,还包含了文字A的信息。
之后,本发明实施例针对病历文本中的每个文本元素,确定该文本元素最接近的文本类型。上述步骤103,根据所述文本元素的隐层表示,确定所述文本元素对应的文本类型,包括:
将所述文本元素的隐层表示逆投影至文本类型空间,确定所述文本元素最接近的文本类型。
具体来说,逆投影是对每个文本元素的隐层表示进行线性变换。上述文本类型空间是一个多维的正实数空间,维度与文本类型的个数相同,每种文本类型对应空间中每个坐标基上的一个点。比如考虑两种文本类型A、B,则相当于在一个二维平面上,有文本类型A坐标为(1,0),文本类型B坐标为(0,1),某个文本元素的隐层表示逆投影后假设坐标为(0.3,0.5)。然后分别计算该文本元素的向量与文本类型A的向量之间的夹角,以及该文本元素的向量与文本类型B的向量之间的夹角,即计算自原点起至坐标(0.3,0.5)的向量与自原点起至坐标(1,0)的向量之间的夹角α,以及自原点起至坐标(0.3,0.5)的向量与自原点起至坐标(0,1)的向量之间的夹角β,夹角α和夹角β中较小的夹角对应的文本类型即为该文本元素的文本类型。可以明显看出,举例中该文本元素的文本类型判定为文本类型B。此外,也可以通过计算欧式距离来确定文本元素最接近的文本类型。
上述方法需要进过训练才能使用,一般来说,训练数据需要人工标注。本发明实施例中的训练方法可以包括:
获取简单训练病历文本;
确定所述简单训练病历文本中每个段落对应的文本类型;
将所述简单训练病历文本合成复杂训练病历文本;
利用所述复杂训练病历文本进行模型训练,确定模型的参数值。
这里的简单训练病历文本为病历中类型单一的文本段落,如门诊中的主诉、体格检查等,根据其元数据推测文本类型。由于简单训练病历文本的文本段落往往较短,而且组成简单,因此文本类型的准确度极高。将每个段落标记文本类型后,生成复杂训练病历文本。这里是根据病历书写的一般规范,将上述简单训练病历文本进行数据合成,生成包含各种文本类型的复杂训练病历文本。由于简单训练病历文本的文本类型已知,生成的复杂训练病历文本的标注也可以随着文本的生成而自动生成。之后,利用复杂训练病历文本进行模型训练,使用Adam算法,输出训练完成后的模型参数值。
为了更清楚地理解本发明,下面以具体的实施例对上述流程进行详细描述,实施例的具体步骤如图2所示,包括:
步骤201、利用字嵌入技术,确定病历文本中各单字的第一向量。
步骤202、对病历文本进行分词,利用词嵌入技术,确定病历文本中的每个词的向量,并将每个词的向量作为对应的单字的第二向量。
步骤203、将第一向量与第二向量结合,得到单字的输入向量。
步骤204、利用第一长短期记忆模型,根据病历文本的输入向量,确定单字的初态隐层向量。该隐层表示包含了对应单字的上下文信息。
步骤205、利用第二长短期记忆模型,根据病历文本的输入向量以及上述单字的初态隐层向量,生成该单字的隐层表示。这里的第二长短期记忆模型加入了注意力机制,使得该单字的隐层表示不仅包含了上下文的信息,还包含了整篇病历文本中与该单字相关性较大的文字的信息。
步骤206、将该单字的隐层表示逆投影至文本类型空间,确定单字最接近的文本类型。
步骤207、针对病历文本,将文本类型相同的连续的文字合并成一个段落,并将文字对应的文本类型作为段落的文本类型。
本发明实施例还提供了一种病历文本的文本分类方法装置,如图3所示,包括:
输入单元301,用于确定病历文本中各文本元素的输入向量;
计算单元302,用于针对所述病历文本中的一个文本元素,将所述文本元素的输入向量转换为所述文本元素的隐层表示,所述隐层表示包含所述病历文本的信息;
配对单元303,用于根据所述文本元素的隐层表示,确定所述文本元素对应的文本类型;
分类单元304,用于将文本类型相同的连续的文本元素合并成一个段落,并将文本元素对应的文本类型作为所述段落的文本类型。
所述病历文本中的文本元素包括所述病历文本中的文字;
所述输入单元301,具体用于:
利用字嵌入技术,确定所述病历文本中的每个文字的第一向量;
对所述病历文本进行分词,利用词嵌入技术,确定所述病历文本中的每个词的向量,并将每个词的向量作为对应的文字的第二向量;
根据所述第一向量和所述第二向量,确定所述病历文本中每个文字的输入向量。
所述计算单元302,用于:
利用长短期记忆模型,将所述文本元素的输入向量转换为所述文本元素的隐层表示。
所述计算单元302,具体用于:
针对所述病历文本中的至少一个文本元素,利用第一长短期记忆模型,根据所述病历文本的输入向量,确定所述文本元素的初态隐层向量;
将所述病历文本的输入向量以及所述文本元素的初态隐层向量输入第二长短期记忆模型中,生成所述文本元素的隐层表示,所述第二长短期记忆模型为基于注意力机制的递归神经网络模型。
所述配对单元303,具体用于:
将所述文本元素的隐层表示逆投影至文本类型空间,确定所述文本元素最接近的文本类型。
基于相同的原理,本发明还提供一种电子设备,如图4所示,包括:
包括处理器401、存储器402、收发机403、总线接口404,其中处理器401、存储器402与收发机603之间通过总线接口404连接;
所述处理器401,用于读取所述存储器402中的程序,执行下列方法:
确定病历文本中各文本元素的输入向量;
针对所述病历文本中的一个文本元素,将所述文本元素的输入向量转换为所述文本元素的隐层表示,所述隐层表示包含所述病历文本的信息;
根据所述文本元素的隐层表示,确定所述文本元素对应的文本类型;
将文本类型相同的连续的文本元素合并成一个段落,并将文本元素对应的文本类型作为所述段落的文本类型。
进一步地,所述处理器401具体用于:
利用字嵌入技术,确定所述病历文本中的每个文字的第一向量;
对所述病历文本进行分词,利用词嵌入技术,确定所述病历文本中的每个词的向量,并将每个词的向量作为对应的文字的第二向量;
根据所述第一向量和所述第二向量,确定所述病历文本中每个文字的输入向量。
进一步地,所述处理器401具体用于:
利用长短期记忆模型,将所述文本元素的输入向量转换为所述文本元素的隐层表示。
进一步地,所述处理器401具体用于:
针对所述病历文本中的至少一个文本元素,利用第一长短期记忆模型,根据所述病历文本的输入向量,确定所述文本元素的初态隐层向量;
将所述病历文本的输入向量以及所述文本元素的初态隐层向量输入第二长短期记忆模型中,生成所述文本元素的隐层表示,所述第二长短期记忆模型为基于注意力机制的递归神经网络模型。
进一步地,所述处理器401具体用于:
将所述文本元素的隐层表示逆投影至文本类型空间,确定所述文本元素最接近的文本类型。
本申请实施例提供了一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使所述计算机执行上述任一一项文本标记的方法。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包括这些改动和变型在内。