信息抽取之文本结构化
浅谈如何快速制作一个专业领域的文本结构化工具,可用于非规则自然文本的关键信息快速抽取
前言—电子病历文本结构化
电子病历的文本结构化是指我们从电子病历的自然语言文本中提取出关键内容,如从患者某个影像检查中提取出来 “肿瘤大小”、“肿瘤位置”、“转移部位”等信息,并将其可视化出来。
该任务属于信息抽取(Information extraction)的范畴,主要使用的技术是实体识别和实体关系抽取。
准备数据
公开数据 当前医疗领域已公开的最大规模数据集(CBLUE),旨在推动中文医学NLP技术和社区的发展。读者可以自行申请,很简单的。
个人数据
还可以去丁香园、拇指医生等社区爬取一些“公开的问诊记录”,下图是作者收集到的一批数据,然后使用doccano工具(仅支持标注实体)和 brat工具(支持实体及关系标注)进行标注。
抽取方法
- 基于多头选择机制(multi-head selection)的实体关系联合抽取算法,见解读1,解读2
- 假设一句 sentence 存在 A,B,C 三个实体
- 抽取出 A, B, C 实体后,两两组合送去关系分类器
- NERLoss + BCELoss 联合训练模型,推测阶段,每对实体大于某种阈值则认为这种关系有效
- 基于主实体感知的层叠式抽取网络,思路来源于苏神的科学空间,此思路还发表在ACL2020 ,见论文CasRel
基于Web可视化框架 Dash
博主基于第二种抽取方法,在CBLUE中文医学实体关系数据集达到 60.556%的分数,有效队伍天池打榜前8,虽然与第一名有4%的差距…
然后我们基于该方法进一步将抽取函数封装为 FLASK 接口,搭建了一个简单的可视化页面,如下图所示: