NLP(6)——命名实体识别

为什么需要实体识别

普通的工具如hanlp,htp,不能识别特定领域的专有名词,所以需要实体识别的算法。下面就以医疗专业为例子来谈一下医疗专业的命名实体识别。

标注

  • 人工标注

  • 机器标注bootstrapping,例如给文中的水果打标签,给定“苹果”,会自动把文中其他的“桃子”,“李子”等自动标注出来(百度)

  • 医疗专业中标注比如:比如检测手段“头 ct”,“腔隙性脑梗死”是疾病,他们的关系是:检测手段证明了疾病


  • 先边界识别 然后进行类别判定
    例如医疗需要识别的命名实体的类型有疾病、疾病诊断分类、症状、检查、治疗在这五类以及疾病和症状的修饰信息。;对应英文分别是(Disease)(Disease Type) (Symptom) (Test) (Treatment)

关系抽取研究主要关注这六类实体关系的抽取: 治疗和疾病之间的关系, 比如治疗施 加于疾病; 
治疗和症状之间的关系, 比如为缓解症状而施加的治疗; 检查和疾病之间的关系, 比如检查证实疾 病; 
检查和症状之间的关系, 比如检查发现症状; 疾病和症状之间的关系, 比如疾病导致症状; 
疾病和疾病诊 断分类之间的关系, 该关系表示疾病的进展程度。
关系抽取研究主要关注这六类实体关系的抽取: 治疗和疾病之间的关系, 比如治疗施 加于疾病; 
治疗和症状之间的关系, 比如为缓解症状而施加的治疗; 检查和疾病之间的关系, 比如检查证实疾 病; 
检查和症状之间的关系, 比如检查发现症状; 疾病和症状之间的关系, 比如疾病导致症状; 
疾病和疾病诊 断分类之间的关系, 该关系表示疾病的进展程度。
  • 修饰
    分别是否认(absent)、非患者本人(family)、当前的(present)、有条件的 (conditional)、可能的(possible)、待证实的(hypothetical)、偶有的(occasional)
中文电子病历命名实体和实体关系标注体系及语料库构建 9 在是否发生患者本人这个方面有两个修饰: 
(1)否认: 患者主动否认、或肯定不发生于患者身上。 比如: 各瓣膜区未闻及病理性杂音。 全腹无压痛、反跳痛及肌紧张。 腹壁静脉曲张: 无
 (2)非患者本人: 发生于患者家属, 该种修饰可能和“否认”重叠, 若发生此种情况, 选择否认。 比如: 其父母均患有糖尿病 在发生于患者本人的确定程度这个方面有五个修饰:
(3)当前的: 肯定发生或正在发生于患者本人的疾病和症状。 比如: 头晕、呕吐伴右下肢无力。 自诉有冠心病史。 头CT示:双侧多发腔梗。 
(4)有条件的: 当前不一定发生, 在某种条件具备的情况下, 才发生。 比如: 该患者于入院前3个月开始出现阵发性胸闷、心慌, 常于饮酒后出现。
 (5)可能的: 不确定当前会发生, 需要进一步的证据才能确定。 比如: 不排除缺血性疾病。 右肺中下叶考虑创伤性湿肺。 临床初步诊断: 脑梗死、高血压病、糖尿病。
 (6)待证实的: 当前不会发生, 但预期会发生。 比如: 手术一周后会有局部瘙痒 多在皮疹出现后1~4周左右出现血尿和 (或) 蛋白尿。 
(7)偶有的: 指症状或者疾病当前不经常出现, 或者出现的频率较低。 比如: 病程中患者走路不稳, 偶有头晕。 大便偶有一过性发白。 时有胸闷气短。 
  • 标注
3.1疾病 DIS,DISEASE 
疾病必须是能够治疗的,其语义范围包括:疾病或者综合征、受伤或中毒、先天性畸形、病毒细菌、病理功能、细胞或分子功能障碍、获得性异常、解剖异常、肿瘤进程、精神或行为障碍等。
1。1。1 疾病诊断分型 DT, DISEASE TYPE
疾病的具体分类,表示疾病的进展程度,疾病诊断分类一般出现在诊断里。如: 
1)失代偿期  DT
2)III期DT
3)II型  DT
3.2 症状 
症状是能够被改善或治愈的,并且能够被否定词修饰,为疾病的表现。包括患者向医生陈述的不适感觉(症状)和医生观察到的(体征)或者检查结果,如:
3.2.1患者向医生陈述的不适感觉(症状) SYM,SYMPTOM
1)疼痛时伴有右下肢活动受限。(“疼痛“ 、”右下肢活动受限”);
2)伴活动后心慌气短。(“心慌”、“气短”)
3.2.2医生观察到的(体征)ST
1)双肺听诊可闻及少量痰鸣音。(“痰鸣音”)
2)自带胸片示左下肺症病变。(“左下肺症病变”)
3)双肺听诊无著征。(“著征”)
3.3 检查 TES,TEST
检查是为了发现、证实疾病或症状,找到更多关于疾病或症状的信息而施加给患者的检查项目,包括:化验过程,诊断过程等。如:
1)头CT显示脑实质内高密度灶。(“CT”)
2)血压最高达到180/130mmHg。(“血压”)
3)双肺听诊无著征。(“听诊”)
4)自带胸片示左下肺症病变。(“胸片”)
3.4 治疗 
治疗是能够治疗疾病或者缓解症状而施加给患者的手段,包括手术、药品、措施等。本标注语义类型包括:药物、手术。如:
3.4.1药品 DRU,DRUG
1)奥扎格雪、脑蛋白水解物等静点 (药物“奥扎格雪”和“脑蛋白水解物”)。
3.4.2手术 SUR,SURGERY
1)4年前行胆囊切除术。(手术“胆囊切除术”)
2)鼻内镜下行双筛、双上颌窦。(手术“鼻内镜”)
3.4.3措施(非手术,非药品的治疗) PRE,precaution
3.5实体修饰词标注
3.5.1 否认词(AT,,absent)标注:
 各瓣膜区未闻及病理性杂音
 全腹无压痛、反跳痛及肌紧张
3.5.2条件词(CL,conditional)标注:
在某种条件具备的情况下才发生的词。
比如:该患者于入院前3个月开始出现阵发性胸闷、心慌,常于饮酒后出现。
再如:吃红薯后血糖升高 
3.5.3既往信息词(PT,past) 
明确表示患者过去有过的治疗史或疾病症状,比如:
有多年心脏病史。
该患者于入院前3个月开始出现阵发性胸闷、心慌,常于饮酒后出现。
3.5.4时间标注统一标为TE
该患者于入院前3个月开始出现阵发性胸闷、心慌,常于饮酒后出现。
3.5.5!!可能性词:
不确定当前会发生,需要进一步的证据确认的词。如:
不排除缺血性疾病。/右肺中下叶考虑创伤性湿肺
待证实词:当前不会发生,但预期会发生。比如:
手术一周后会有局部瘙痒
3.5.6程度词标注(AM,AMOUNT),非量化的数量描述词,如大小、多少、程度(明显等)等
双肺听诊可闻及少量痰鸣音。
3.5.7解剖位置
    器官(REG,REGION)
部位词(ORG,ORGEN)
3.5.8频率词 (FW,Frequency Word)
患者走路不稳,偶有头晕。时有胸闷气短。
反复胸闷,憋气,持续时间长短不等。

标注格式:
突发 AM
头晕 SYM
伴 O
恶心 SYM
呕吐 SYM
3小时 TE

分类标签id化

用BIESO来表示边界,大致可以分为如下标签,分别表示(开始,中间,结束,单个,其他)
也可以用BIO进行边界


对数据进行标注

分为训练集和测试集


设置配置参数

{
    "model_type": "idcnn",特征抽取的模型
    "num_chars": 3538,语料库的实体数目
    "char_dim": 100,每个字的维度,embedding,把3538维度进行降维
    "num_tags": 51,标记的种类数目
    "seg_dim": 20,把边界BIOES增维,变成20维,上采样,所以每个字是120维度,使得边界信息更加丰富
    "lstm_dim": 100,120维度,卷积之后的通道数
    "batch_size": 20,
    "emb_file": "/usr/zxy/NER_IDCNN_CRF/data/vec.txt",
    "clip": 5,防止梯度爆炸
    "dropout_keep": 0.5,
    "optimizer": "adam",
    "lr": 0.001,
    "tag_schema": "iobes",
    "pre_emb": true,预序列嵌入,embeding文件
    "zeros": true,
    "lower": false字母小写
}

模型保存位置及文件

后台部署

用flask、当然如果多并发,很多人同时在线可以用django

from flask import jsonify
from flask import Flask
from flask import request
@app.route('/', methods=['POST','GET'])
def get_text_input():
    #http://127.0.0.1:5002/?inputStr="神经病"
    #如果遇到显示问题:下载QQ浏览器,将编码设置为utf-8
    text=request.args.get('inputStr')
    #if len(text.strip())>0: 
    from flask import jsonify
    if text:    
        aa=model.evaluate_line(sess, input_from_line(text, char_to_id), id_to_tag)
        print(aa)

膨胀卷积

选择多次膨胀卷积来抽取特征,能减少参数量


 #膨胀卷积:插入rate-1个0 这里三层{1,1,2}相当于前两个没有膨胀
  conv = tf.nn.atrous_conv2d(layerInput,w,rate=dilation,padding="SAME")

难点和小技巧

  • 标签:从海量数据中抽取高质量的样本进行标签生成,包含所有的类别,尽可能覆盖不同的词(好而不同);
    可以看文本的simhash值,就是看文本的词层面的重复度,选simhash值小的,覆盖全面一点。
    当然simhash之前可以对文本进行分类,在类别之间做simhash。然后生成字典(可以通过内部数据或者网络爬取,清洗),生成训练测试验证集合(比例是12:2:1),第四步生成字向量,第五步,数据预处理,设计模型,模型验证,模型部署,

  • 如何提升准确率

  • 部分词太长

  • 有些类别的词比较少

  • 出现英文字符,数字和特殊字符,一般用正则的方法匹配出来;

  • 训练过程
    1数据预处理(加载,转化为iboes,转化为字到字典,标记到字典),格式转换和特征提取
    2 模型的迭代更新

如何优化模型

  • 模型改写,用膨胀卷积代替双向LSTM,由于有些专有名字比较长,用卷积做更好
    该成,cov2d*2,膨胀卷积,然后dorpout,然后卷积,softmax
  • 学习率
  • 初试化参数
  • doupout
  • L2正则
  • batchsize(影响相对小)

用途

  • 知识图谱构建的最初步骤
  • 实体识别之后才能抽取属性,才能抽取关系,比如某某症状导致了某某疾病,某某药物加剧了某种疾病等
  • 应用搜索,比如大众点评搜索“全聚德”
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,711评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,079评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,194评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,089评论 1 286
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,197评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,306评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,338评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,119评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,541评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,846评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,014评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,694评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,322评论 3 318
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,026评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,257评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,863评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,895评论 2 351

推荐阅读更多精彩内容