一篇论文:
- Simplify the Usage of Lexicon in Chinese NER ACL2020,把中文的词汇信息结合到字级别的NER模型中。
博客地址:https://ian-peace.github.io
工作进展
论文《Cross-domain NER using cross-domain language modeling》代码跑通
-
有监督部分,论文使用的医疗领域语言模型数据集找不到
-
无监督部分训练完成,到第九轮的时候,指标F1值达到 0.69 ,论文中的指标是在0.73。大概40分钟一轮。
-
对照结果发现:
-
英文和中文的NER其实还是挺不一样的:
现在中文提升性能的一个很大的方向是 在字级别特征上通过词典匹配等方法添加词级别的特征和词边界信息;而英文的侧重点其实并不需要放在边界上面,因为大量的英文单词都是单独成实体,直接用词向量就可以。
英文以词级表示为主,通过字符级表示解决OOV的问题,比如说前缀和后缀;
中文以字符级表示为主,通过词级表示解决词边界问题。
-
The first paper
《Simplify the Usage of Lexicon in Chinese NER》
-
论文的工作:把中文的词汇信息结合到字级别的NER模型中
对于中文NER中,词与词的边界不是固定的,涉及到分词问题
-
词级别模型:预先分词,在输入到NER模型中,此时对分词工具有依赖性,会造成错误传递,因为分词器并不能完全正确分词。
-
字级别模型:没有预先分词,没有错误传递问题,但是没有词级别的先验信息,词边界是未知的。
-
-
Lattice LSTM模型是第一篇把词典和词向量信息同时引入字级别模型当中的工作;
例如:在不相邻的字与字之间额外添加一条通路,比如说“南京市”从“南”字到“市”字之间有一条通路,将南京市这个词进行编码加到“市”的表示中。
缺点:
-
添加Cell单元,导致速度很慢
-
只针对LSTM,没有办法迁移到其他模型。
-
存在信息缺失的问题,比如“南京市”中的“京”字,只能保存“南京”这个词的信息,无法获得“南京市”这个词的信息。
-
双向LSTM的过程并不是同时的,不能解决词边界冲突问题,一般只是简单的覆盖。
-
-
论文方法:把词信息和边界信息保存到输入表示中
-
句子s的每个字符c对应于由四个分段标签“BMES”标记的四个单词集
-
词集B©由词库中所有以c开头的词组成
词集M©由词库中所有c处于中间位置的词组成
词集E©由词库中所有以c结尾的词组成
词集S©由词库中所有以c单字成词的词组成
-
将每个字符的四个词集压缩成一个固定维向量并将其连接起来表示为一个整体,添加到字符表示中。
-
-
优点:
- 不需要复杂的模型结构,只需要单层的LSTM+CRF就可以达到很好的效果,提升解码速度;
- 因为只改变了输入表示层,所以可以应用到不同的模型中;
- 可以结合预训练语言模型
- 与Lattice LSTM相比不存在信息缺失
-
实验:使用四个中文数据集,词典使用gigaword,速度有很大提升,同时结果在四个数据集上都有一定的提升。
-
看这篇论文的原因:
- 一方面它是中文NER上最新的成果;
- 另外一方面我没找到针对中文NER跨领域的研究,而这篇论文实验做的很全,可以在这篇论文的基础上进行领域迁移的研究。
Reference
[1] Cross-domain NER using cross-domain language modeling. ACL2019
[2] Simplify the Usage of Lexicon in Chinese NER. ACL2020
[3] Chinese NER Using Lattice LSTM. ACL2018
[4] AI研习社:ACL 2020实验室系列解读 (第二期)· 复旦篇 - 2