嵌套命名是识别研究进展论文阅读笔记-爱代码爱编程
文章目录
作者:余诗媛 郭淑明 黄瑞阳 张建朋 苏珂
郑州大学软件学院 国家数字交换系统工程技术研究中心
文献链接:https://kns.cnki.net/KXReader/Detail?invoice=eTE4W3fFBodV%2F0vbdNmh1AhQ%2BlFR8auSxOQnKgQiOJE6o3inX3kIY8tCAmvkmAcf98vbRyK3hDXqmK8cP5y82tLEomx3mMLolA2C3q9sWnvqFo6zkHon3Fb5Gu8HjlIMfETcgj%2Bjb2zWUV7MmcFvV5YgqK27opgj8d5%2Fwle%2B9do%3D&DBCODE=CJFD&FileName=JSJA2021S2001&TABLEName=cjfdlast2021&nonce=6B3FDC6ECA1F446BBEBF43DEC78C2E92&TIMESTAMP=1684899268076&uid=
概要
文章对嵌套实体识别技术进行综述,介绍就有代表性的方法和技术。
引言
作者简单提了下实体识别和信息抽取。深度学习的出现逐渐取代传统的方法,效果也得到很大提升,CoNNL2003和MSRA上的F1达到93.09%和94.35%(作者发刊之前的数据)。
以下是2023/5/24 CoNLL和MSRA的数据
·····················································································································
ACE2004和ACE2005数据集中分别存在43.27%和37.35%的嵌套命名实体。
嵌套有两种类型
- 多个非嵌套命名实体构成
[郑州]ns[大学]nt医学院]nt - 非嵌套命名实体扩展
[[郑州] ns大学]nt
Q差别很大吗??为什么还要分两种?
通常嵌套缺乏规律变化多,用基于规则的方法虽然准确率从高,但存在相同类型的嵌套命名实体识别困难、时间复杂度高、难以扩展到涉及长句子的大型数据集等问题。近期基于超图表示、序列标注、跨度等方法被陆续提出来解决问题。
嵌套问题定义和解决框架
- 问题定义
给定一个序列X={x1,x2,…,xn},预测Y={y1,y2,…,yn},但对于yn来说,每个yn是多标签的,yn={yn1,yn2,yn3,…,ynm}.标签有3个特征1)两两间可能存在依赖。2)标签数量不确定。3)标签数量随着嵌套类别增加指数增长(为什么是指数?)。 - 解决框架
获取有标签数据 >> 构建词语向量表示 >> 进行特征提取 >> 嵌套命名实体识别 >> 评估分类性能。
基于超图的方法
基于跨度的方法
通过对句子的子序列进行分类来识别嵌套的命名实体。相比于SeqLab可以解决错误传播等问题。(关于SeqLab和SpanNER的对比有篇讲这个的文章Named Entity Re-/Recognition as Span Prediction)
最最基本的解决方法是:
基于跨度的方法存在以下3个缺点:
1)负样本多(太多非实体,非实体间也没有上下文信息)。2)时间复杂度高。3)缺乏边界监督。
Xu 17
局部探测方法,通过将每个子序列编码成一个固定大小的表示来直接对句子的所有子序列进行分类。使用FOFE进行编码,使用使用FFNN预测实体。FOFE的作用是将变长编码转成定长编码方便FFNN处理(RNN、LSTM都擅长处理变长编码)。
FOFE-NER最主要的特征如下图,每个序列被拆分为上文Left、片段Segment、下文Right三部分(left+segment+right),这三部分先经过FOFE算法进行一轮编码(编码共两轮),然后输入FFNN中对片段Segment进行预测是否为实体。我们的该方法检查一个句子中的所有单词段(最大实体长度之内)。第一轮编码此时会有三种情况,
1、segment正好是实体 >> 进行预测PER、ORG
2、segment中部分word构成实体 >> 查看序列每个词,假如它蕴含在多个片段中,则只取最高分数或者最长所属的命名实体类型,通过Left和Right语义的融入可以知道“学医学”包含在多个片段内,则它的标签可以是跟最长的“中山大学医学部”相同。
ex:
中山大–学医学----部在广州
Left-----Segment----Right
3、segment完全不参与实体构成 >> 标为None
经过一轮编码后。把第一轮编码结果转成标签进行第二轮FOFE编码
Google has also recruited Fei-Fei Li, director of the AI lab at Stanford University
< ORG > has also recruited Fei-Fei Li, director of the AI lab at < ORG >
找出Fei-Fei Li实体,最后把两次预测分数进行一个线性插值,再decode得到结果。
Ps:个人倾向于认为从粒度最大的实体开始,逐渐到单字符实体的预测(Segment=1)
- A Local Detection Approach for Named Entity Recognition and Mention Detection
Sohrab 18
提出神经穷举模型,列举所有可能的区域(或跨度)作为潜在的实体,并用深层神经网络对它们进行分类。从底层共享的Bi-LSTM层获得每个区域的表示,每个区域的表示由边界表示和平均单词在该区域内嵌入的内部表示连接而成,然后Relu再Softmax。
- Deep Exhaustive Model for Nested Named Entity Recognition
Fisher 19
提出了一种将词条或命名实体合并成嵌套结构的命名实体,然后分别对它们进行标记的方法。
Xia 20
提出了一种新的多粒度命名实体识别框架MGNER,它同时考虑了非嵌套和嵌套命名实体的识别。模型有检测器加分类器组成。检测器由三部分组成1)提取词特征词处理器。2)提取上下文特征的句处理器。3)检测器判断是否是实体。分类器结构1)和检测器相同的词处理器。2)实体特征获取器。3)分类器。
- Multi-Grained Named Entity Recognition
Luan 19
新模型新思路
Zheng 19
模型将嵌套命名实体识别分为了两个任务,首先用序列标注模型来发现命名实体的位置,然后用基于跨度的模型对序列标注发现的候选命名实体跨度进行实体类型的分类;采用了多任务损失算法同时训练两个任务,边界检测和命名实体分类预测。
Lin 19
提出假设:每个实体都有一个不能被不同实体共享的中心词,且每个实体的中心词对这种实体提供了充分的语义信息。将嵌套命名实体识别分为两步,首先用锚定器识别具有所有实体的相应语义类型的锚点词,然后用区域识别器识别出以不同锚点为中心的实体的边界。
Tan 20
边界预测+跨度分类。用多任务学习框架两部分联合训练,结合跨度分类模型推理得到的包含置信度Pspan的跨度tag C,使用这3个分数共同决定一个跨度是否是带有标签C的命名实体。
参考
[1] https://zhuanlan.zhihu.com/p/37389506