- baseline: CRFSUITE
- 词库匹配:利用整理的词库匹配与修正。
- bilstm + word2vec/glove: 预训练词向量模型。
- elmo pretrain + bilstm: 预训练语言模型。
- bert fine-tuning:微调模型。
- albet(todo):也是微调模型,感觉效果应该和bert类似。
- xlnet:想利用超长文本模型,端到端解决抽取问题。
- LexiconAugmentedNER:想利用词典信息训练,增强模型学习能力。
{
"relax": {
"疾病和诊断": 0.9480073898126155,
"影像检查": 0.9248197734294541,
"实验室检验": 0.9132653061224489,
"手术": 0.9142857142857144,
"药物": 0.9532006455083378,
"解剖部位": 0.9305925643953812,
"综合": 0.9347299588278033
},
"strict": {
"疾病和诊断": 0.7632620744259699,
"影像检查": 0.8424304840370752,
"实验室检验": 0.7772108843537415,
"手术": 0.8023809523809524,
"药物": 0.8832705755782679,
"解剖部位": 0.8090343864991753,
"综合": 0.8062484863162994
}
}
{
"relax": {
"疾病和诊断": 0.9148525764673463,
"影像检查": 0.9251559251559252,
"实验室检验": 0.921602787456446,
"手术": 0.9199491740787802,
"药物": 0.9576988155668359,
"解剖部位": 0.925164792555254,
"综合": 0.9259166874532302
},
"strict": {
"疾病和诊断": 0.7919537062551667,
"影像检查": 0.8627858627858628,
"实验室检验": 0.7822299651567944,
"手术": 0.8132147395171538,
"药物": 0.8855047941342358,
"解剖部位": 0.8227995347033734,
"综合": 0.8217760039910201
}
}
{
"relax": {
"疾病和诊断": 0.8988826815642459,
"影像检查": 0.9012875536480686,
"实验室检验": 0.8703703703703703,
"手术": 0.9093231162196679,
"药物": 0.9358974358974359,
"解剖部位": 0.9106885245901638,
"综合": 0.9073555612115041
},
"strict": {
"疾病和诊断": 0.7843575418994413,
"影像检查": 0.8304721030042918,
"实验室检验": 0.7629629629629631,
"手术": 0.8045977011494253,
"药物": 0.8846153846153847,
"解剖部位": 0.8152131147540983,
"综合": 0.8125477220666836
}
}
- 比对结果
- bert:容易在药品后缀带上符号, 解剖部位抽取过细, 多标签问题;
- LexiconAugmentedNER: 完整性较好
case比对:
两侧筛窦少许炎症:仅LANER 拿到,bert 拿到 两侧筛窦
齿状线: 仅bert 拿到
右室舒张功能减退: 仅LANNER 拿到
肠周:bert 拿到完整词,其他模型拿到肠
剖腹探查、左肝肿瘤切除、胆囊切除、左肝结节射频消融术(术中彩超引导上):BERT LANER 拿到完整词
肝区:仅bert拿到完整词
肺部肿物非恶性肿瘤:bert 仅拿到肺部
单侧括号问题:两个模型都存在边界问题
进展期胃癌,隆起型: 仅bert拿到,但词库为 进展期胃癌,隆起型,高-中分化管状腺癌
糖尿病植物神经病变:bert仅拿到 植物神经病变
原发性高血压3级 极高危: 模型仅拿到 原发性高血压3级;
胃角MT: LANER未拿到
腰椎前: 仅bert拿到;
髂嵴:仅LANER拿到,CRF拿到 髂嵴水平上腹部L5腰椎
第三组(4个)、第四组(4个)、“胃第七组”(1个)淋巴结
直肠肿瘤切除术@@手术@@全麻上直肠肿瘤切除术
头孢哌酮钠/舒巴坦钠
哌拉西林/他唑巴坦钠
两侧附件及子宫切除@@左侧卵巢癌手术,两侧附件及子宫切除
腹部切口@@腹部切口疝
异烟肼、利福平
经胸腔镜上肺部肿物活检术
胃癌根治术(
瘢痕子宫(前次剖宫产)
胃管鼻饲
下腹部平扫+
心律失常(房早、室早)
1. 实体冲突校验,投票策略
2. 实体修正校验,词库相似匹配替换策略
3. 实体补充策略;
程序逻辑:
提取不完备(缺失):
1.如果不在词库,取最相似判断是否在文本相邻位置中出现,如果出现过则进行替换;
如果没出现过,不进行替换;
提取过长:
2.如果不在词库,取最相似判断是否在文本相邻位置中出现,如果出现过则进行替换;
如果没出现过,不进行替换;
投票:
不进行替换的部分,采用多模型交叉投票,两个以上的直接替换;
不一致的走人工判断,是否需要补充词库
type_vocab_size = 2
model.get_layer(name='Embedding-Segment').set_weights([
loader('bert/embeddings/token_type_embeddings'),
])
np.random.normal(size=[2,768],scale=0.03)
# 随机初始化
np.std(model.get_layer(name='Embedding-Segment').get_weights()[0])
0.029080255
np.mean(model.get_layer(name='Embedding-Segment').get_weights()[0])
-0.0006446646
# 加载预训练
np.std(loader('bert/embeddings/token_type_embeddings'))
0.03032923
np.mean(loader('bert/embeddings/token_type_embeddings'))
-7.424337e-05
# 正态性检验
kstest(model.get_layer(name='Embedding-Segment').get_weights()[0].reshape(-1), 'norm')
KstestResult(statistic=0.4801042600197004, pvalue=0.0)
kstest(loader('bert/embeddings/token_type_embeddings'), 'norm')
KstestResult(statistic=0.47964710414332534, pvalue=0.0)