利索能及
我要发布
收藏
专利号: 2022112075624
申请人: 浙江工业大学
专利类型:发明专利
专利状态:已下证
更新日期:2026-10-21
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

1.一种基于生成式模型的医疗领域事件抽取方法,其特征在于,所述方法包括以下步骤:

1)获取数据库中的电子病历文本数据,预先设定好需要抽取的实体类型和事件schema,所述实体包括人名、年龄、时间、性别、发病部位和症状,所述事件包括传染病、寄生虫病、肿瘤和内分泌疾病;

2)根据上述的标注,在标注平台上人工标注出描述文本中的实体和事件信息,病根据格式生产标注文本作为训练和测试数据;

3)事件抽取方法的训练使用的是联合抽取的策略,输入病历文本和label数据,先利用Transformer编码器作为文本编码器,将文本编码的结果分别送入线性分类层、指针网络,得到事件类型和实体BIO标注,计算事件类型loss1和实体标注loss2;把事件类型、实体BIO标注分别送入事件编码器和实体编码器;把文本编码结果、事件编码结果、实体编码结果相加后送入生成模型,生成事件论元角色,计算论元角色生成loss3;loss1、loss2、loss3相加得到最终loss,进行反向传播;

4)训练完成后,保存模型;

5)预测时将一段文本输入到模型中,对生成模型生成的序列进行处理,得到最终的结构化事件信息。

2.根据权利要求1所述的基于生成式模型的医疗领域事件抽取方法,其特征在于,所述步骤3)的处理过程为:

3.1)对输入文本tokenize分词,头尾加上特殊token[start]和[end],得到文本W=[w1,w2……wn],其中wt为在文本t+1位置的token,把W输入文本编码器Transformer1后得到文本的向量表示H=[h1,h2……hn],其过程表示为:H=Transformer1(W)                    (1)

3.2)对H进行最大池化,得到文章的向量表示h;用线性层把h降维到事件分类数,使用softmax函数,得到各个事件的概率值,其过程表示为:h=maxpooling(H)                   (2)p=softmax(fc1(h))                   (3)

3.3)根据事件类型label,可以得到事件的类型的gold标签g,再用交叉熵损失函数对事件分类任务计算loss值:其中Mevent表示事件分类数;

3.4)根据BIO标注的实体label,可以构造出实体识别的gold标签G=[g1,g2……gn],再将3.1)中得到的文本向量表示H输入到指针网络,得到文本在每个token上的实体标注分类概率P=[p1,p2……pn],再用交叉熵损失函数对实体识别任务计算loss值,其过程表示为:其中n表示序列长度,Mbio表示实体标签数;

3.5)把3.2)计算得到的h`做argmax计算,可以得到事件类型id,再把事件类型id送入事件分类Embedding层,得到事件类型的向量表示t;对4.4)计算得到的实体标注分类概率P做argmax计算,可以得到每个token的实体标注,将实体标注送入实体Embedding层,得到实体向量表示E=[e1,e2……en],其过程表示为:t=Embedding1(argmax(h`))                    (6)E=Embedding2(argmax(P))                    (7)

3.6)将4.5)中计算得到的t复制n份得到T=[t1,t2……tn],使其维度和文本向量表示H相同;

3.7)把文本编码结果H、事件编码结果T、实体编码结果E相加,得到X=[x1,x2……xn],送入生成模型Transformer2,得到X`=[x`1,x`2……x`n];再利用线性层降维到1维,使用softmax得到每个token的概率值P_gen=[p_gen1,p_gen2……p_genn];选出前n个token中概率最大的token对应的x向量,添加到X的末尾,其过程表示为:X`=Transformer2(X)                    (8)P_gen=softmax(fc2(X`))                   (9)X∶=Xappend argmax(P_gen)                (10)

3.8)重复执行3.7),直至选中的token为特殊token[end];得到如下序列:[论元角色1][start][论元角色2][start][论元角色3][start]…[end]其中[start]表示两个论元角色之间的分隔,[end]表示生成结束;

3.9)从3.8)中获得的序列中提取论元角色,得到最终的论元角色信息

3.10)为计算3.7)和3.8)的损失函数,论元角色抽取的label包含了的生成的完整序列,当生成到第i步时,将label序列第i个以后的元素掩盖掉,使用部分掩盖的label计算交叉熵损失;论元角色生成的loss表示为每一步的平均loss:其中N表示生成的次数,n表示原始序列长度

3.11)将Loss1、Loss2、Loss3相加,得到最终Loss,进行反向传播。