基于BiLSTM+CRF的医疗领域命名实体识别

1. 数据介绍

原始数据集主要包括病例和医疗命名实体字典, 病例数据如下图所示,每份病例都存储在一个txt文件中
在这里插入图片描述
医疗命名实体字典如下所示
在这里插入图片描述

2. 项目任务

2.1 数据标注

本次使用双向最大匹配+实体词典进行实体自动标注;具体过程参考:双向最大匹配和实体标注:你以为我只能分词? 采用的实体标注格式为BIO;BIO格式就是说,对于实体词,第一个字标注为B,其他的字标注为I;对于非实体词,每个字都标注为O

补充:前向最大匹配法原理
(1)计算词典中实体的最大长度,作为截取句子片段的最大长度
(2)对句子进行分词和标注的一个原则是:单个词(实体)的长度尽可能大。所以会先按最大长度从句子中截取片段,去词典中匹配,匹配中了,就切分出来
(3)按最大长度匹配不中,那么最大长度减一,再去截取句子片段,去词典中匹配,直到匹配中,或者截取的长度减小至一
注意:前向匹配是指从左向右匹配,后向指从右向左

例:
假设句子为:我最近双下肢疼痛,我该咋办,句子中有个两个实体,出现在实体词典中:双下肢疼痛疼痛,假设实体词典中的最大长度为10
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
双向最大匹配就是,将前向最大匹配的切分结果,和后向最大匹配的结果进行比较,按一定的规则选择其一作为最终的结果
(1)如果前向和后向切分结果的词数不同,则取词数较少的那个
(2)如果词数相同 :(a)切分结果相同,则返回任意一个;(b)切分结果不同,则返回单字较少的那个

数据标注任务的分析
双向最大匹配算法不仅可以用于分词,也可以用于序列标注,速度快且准确率高,不会分出奇怪的词或实体,但也难以正确处理未登录词。由于完全依赖词典,通用性不强,所以比较适用于处理具体领域的任务,比如医疗领域

2.2 数据预处理

关于数据
标注好的医疗实体数据集,训练集、验证集和测试集的数量分别为:101218 / 7827 / 16804,医疗实体有15类:
数据如下形式:在这里插入图片描述
预处理
(1)首先将标注好的数据集,整理成样本,每个样本是一个句子; 即将上面格式整理成如下列表形式

[[['无', 'O'], ['长', 'B-Dur'], ['期', 'I-Dur'], ['0', 'O'], ['0', 'O'], ['0', 'O'], ['年', 'O']], [样本2]]

(2)将IOB格式转换成IOBES格式【IOBES这种标记方式按道理是更好的,因为提供了更丰富的信息,用特定的符号来标记开头和结尾,便于在预测时提取实体
(3)建立字与id的映射,标签与id的映射, 将样本转换成id,最后进行词嵌入
(4)其他处理:(a)对句子进行分词后,提取的词长度特征,作为字向量特征的补充,每个字的长度特征为0~3的一个id,后面我们把这个id处理为20维的向量,和100维的字向量进行拼接,得到120维的向量。(b)构造batch时采用桶机制,可以加快训练速度

句子:
"循环系统由心脏、血管和调节血液循环的神经体液组织构成"

分词结果:
['循环系统', '由', '心脏', '、', '血管', '和', '调节', '血液循环', '的', '神经', '体液', '组织', '构成']

长度特征:
[1, 2, 2, 3, 0
  • 4
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值