【学习周报】
总结自己的学习和遇到的好材料。
往期回顾:
短期内应该都是用不上的,但是多了解了解还是不错的哈哈哈。
说明:NER=named entity recognition。
charNER
先聊聊charNER的意思,在英文中,char就表示一个字符,说白了就是一个英文字母,而在中文中,则可以理解为单字,这类型的方法在NLP中其实挺常见的,在中文中还有比较多的研究,其出发点主要是不用分词,毕竟分词的bad case对分词的影响还是不小的。
论文精读的是这篇:charNER: charactor-level named entity recognition。
这篇论文针对英文等外语,没中文,但是中文还是可以参考的。论文中的问题是phrase type标注,对于单个字母进行标注,且没有用类似BIO之类的格式,而是用的例如“PPP”这种模式,结构上是BI stacked LSTM,后续接上状态转移矩阵,这个状态转移矩阵是基于char-space,char-char,space-char的状态转移,最后用维特比算法求解。具体创新点如下:
char级别的特征处理,作者也在discussion中明确指出,中文日文这种无法直接获取token(即需要分词的)应该是有收益的。
Bi stacked LSTM的使用,虽然这个其实也不算创新点了。
char-space,char-char,space-char状态转移矩阵的使用,可惜中文似乎用不上。
作者用了多个语言的样本尝试,多语言下效果都还不错。
bert系列的NER
这个看的有点难受,这块技术上都比较成熟了,中文的应用也不少,结果论文上没有找到特别适合的,甚至找到一些蹭热度但是质量不高的文章(是不是意味着中文研究有空白?)(大家看到好的可以评论告诉我哈),伤心,所以就只能直接看博客了,没想到博客还有不少,谈的还挺多。列举出来自己看,内容上我按照我的风格就不复述啦。
BERT自己的论文里其实就已经谈到了:BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding,数据可以看表7。
刷榜还是要刷榜的:http://nlpprogress.com/english/namedentityrecognition.html
基于Bert-NER构建特定领域的中文信息抽取框架(上):https://zhuanlan.zhihu.com/p/74803327
Keras-BERT-NER:https://zhuanlan.zhihu.com/p/89329273
BERT-BiLSTM-CRF-NER:https://github.com/macanv/BERT-BiLSTM-CRF-NER
五分钟搭建一个基于BERT的NER模型:https://www.jianshu.com/p/1d6689851622
预训练估计是没办法自己整的,但是直接调用估计可以尝试一下。