Page 351 - 《软件学报》2024年第6期
P. 351
闫璟辉 等: 中文医疗文本中的嵌套实体识别方法 2927
关系联合训练问题. 此部分介绍本系统对实体边界的识别设计. 我们采用传统的序列标注方法对实体边界进行识
别. 如图 4 所示, 我们对待识别文本中的实体字进行 BMESO 标注, 其中标签“B”表示此字为某类型实体的边界首
字; 标签“E”表示此字为某类型实体的边界尾字; 标签“M”表示此字位于某类型实体内部且为非首尾字; 标签“S”表
示此单一字构成实体; 标签“O”表示非实体字.
B M M E O B E M M M M M E O
呼 吸 困 难 伴 X 线 心 影 显 著 增 大 。
pro
sym
sym
图 4 边界标注示例
需要注意的是, 这里的序列标注结果并不对不同实体之间的首尾字的隶属关系进行体现, 如图 4 中“大”同时
为两个实体的边界尾字, 但这里都只用相同的尾字符号“E”进行标注. 我们采用传统的 encoder+CRF 序列标注结
构对实体边界标签进行识别. 这种序列标注结构简单有效, 由上节所述编码层进行特征编码, 之后使用 CRF 层
作为解码器进行序列解码. 具体而言, 给定长度为 n 的输入序列 X, 解码器需要预测出其对应的标签向量 y =
0.5
{y 0 ,y 1 ,y 2 ,...,y n } . 其条件概率计算如下所示.
e Score(x,y)
(2)
p(y| x) = ∑
e Score(x,y ′ )
y ′ ∈Y x
这里的 Y x 表示所有可能的标签序列; 这里的 Score 的计算方式如下:
n ∑ n ∑
[ ]
Score(x,y) = A[y i−1 ,y i ]+ P i y i (3)
i=0 i=i
[ ]
其中, A[y i−1 ,y i ] 为标签 y i−1 到标签 y i 的转移得分; P i y i 为字 w i 得到标签 y i 发射得分, 具体来讲, 将编码层所输出
l
的每个字 w i 的隐层向量 h i 通过线性层 P i = Wh i +b 映射到一个固定维度的向量 P i ∈ R , 其中 l 是标签的类别个数.
我们将这些向量所构成的矩阵 P 称为发射矩阵, 字 w i 对应到标签 y i 的非归一化概率分数称之为发射得分 P i y i .
[ ]
另一方面, 如图 5 所示, 为了对序列中不同类别标签之间的关系限制, 预测的标签序列 y = {y 0 ,y 1 ,y 2 ,...,y n } 还需要
计算前一个标签 y i−1 转移到当前标签 y i 的分数 A[y i−1 ,y i ] , 我们将这些由 CRF 层计算得到的标签之间的转移分数
所构成的矩阵 A 称为转移矩阵. 在模型的训练中, 我们使用 −log(p(y|s)) 作为损失函数来最大化似然概率 p(y| x) .
Score(x,y)
e ∑
= Score(x,y ′ )
loss span = −log ∑ e −Score(x,y) (4)
Score(x,y ′ )
e
y ′ ∈Y x
y ′ ∈Y x
y = {y 0 ,y 1 ,y 2 ,...,y n } 后, 系统将得到的每个标签信息映射到分布式边界向量
在得到实体边界标签的预测序列
s = {s 0 , s 1 ,..., s n }, s i ∈ R ds ds 是边界标签的 embedding s i 和编码层的隐层状态
(span embedding) , 其中 维度. 之后将
h i 进行合并, 从而得到字 w i 的特征表示: z i = [s i ;h i ] .
B 1.5 0.5 0.03
4
1
M 0.8 1.8 2 0.8 0.18
E 0.3 0.3 0.1 … 0.43 0
O 0.1 0.05 0.2 0.73
呼 吸 困 。
图 5 Score 计算示例
3.3 边界首尾关系识别
我们将嵌套实体的识别任务定义为实体边界的多头选择问题, 即对于每一个待识别文本中的字 x i ; i ∈ 0,...,n ,