命名实体识别(Named Entity Recognition,简称NER) , 是指识别文本中具有特定意义的词(实体),主要包括人名、地名、机构名、专有名词等等,并把我们需要识别的词在文本序列中标注出来。
例如有一段文本:李明在天津市空港经济区的税务局工作
我们要在上面文本中识别一些区域和地点,那么我们需要识别出来内容有:
李明(人名)、天津市(地点)、 空港经济区(地点)、税务局(组织)
识别上述例子我们使用了以下几个标签:
"B-ORG":组织或公司(organization)
"I-ORG":组织或公司
"B-PER":人名(person)
"I-PER":人名.
"O":其他非实体(other)
"B-LOC":地名(location)
"I-LOC":地名
在序列标注中,我们想对一个序列的每一个元素(token)标注一个标签。一般来说,一个序列指的是一个句子,而一个元素(token)指的是句子中的一个词语或者一个字。比如信息提取问题可以认为是一个序列标注问题,如提取出会议时间、地点等。
标签类型的定义一般如下:
定义 全称 备注
B Begin 实体片段的开始
I Intermediate 实体片段的中间
E End 实体片段的结束
S Single 单个字的实体
O Other/Outside 其他不属于任何实体的字符(包括标点等)
将每个元素标注为“B-X”、“I-X”或者“O”。其中,“B-X”表示此元素所在的片段属于X类型并且此元素在此片段的开头,“I-X”表示此元素所在的片段属于X类型并且此元素在此片段的中间位置,“O”表示不属于任何类型。
命名实体识别中每个token对应的标签集合如下:
LabelSet = {O, B-PER, I-PER, B-LOC, I-LOC, B-ORG, I-ORG}
BIOES标注模式就是在BIO的基础上增加了单字符实体和字符实体的结束标识, 即
LabelSet = {O, B-PER, I-PER, E-PER, S-PER, B-LOC, I-LOC, E-LOC, S-LOC, B-ORG, I-ORG, E-ORG, S-ORG}
NER的识别靠的是标签,在长期使用过程中,有一些大家使用比较频繁的标签,下面给出大家一些参考:
Few-NERD,一个大规模的人工标注的用于few-shot NER任务的数据集。该数据集包含8种粗粒度和66种细粒度实体类型,每个实体标签均为粗粒度+细粒度的层级结构。
FEW-NERD: A Few-shot Named Entity Recognition Dataset
https://arxiv.org/abs/2105.07464
1、CLUENER2020:https://github.com/GuocaiL/nlp_corpus/tree/main/open_ner_data/cluener_public
2、MSRA:https://github.com/GuocaiL/nlp_corpus/tree/main/open_ner_data/MSRA
3、人民网(04年):https://github.com/GuocaiL/nlp_corpus/tree/main/open_ner_data/people_daily
4、微博命名实体识别数据集:https://github.com/GuocaiL/nlp_corpus/tree/main/open_ner_data/weibo
5、BosonNLP NER数据:https://github.com/GuocaiL/nlp_corpus/tree/main/open_ner_data/boson(2000条)
6、影视-音乐-书籍实体标注数据:https://github.com/GuocaiL/nlp_corpus/tree/main/open_ner_data/video_music_book_datasets
7、中文医学文本命名实体识别 2020CCKS:https://github.com/GuocaiL/nlp_corpus/tree/main/open_ner_data/2020_ccks_ner
8、电子简历实体识别数据集:https://github.com/GuocaiL/nlp_corpus/tree/main/open_ner_data/ResumeNER
9 、医渡云实体识别数据集:https://github.com/GuocaiL/nlp_corpus/tree/main/open_ner_data/yidu-s4k
10、 简历实体数据集:https://github.com/jiesutd/LatticeLSTM/tree/master/data
11、CoNLL-2003:https://www.clips.uantwerpen.be/conll2003/ner/
12、Few-NERD 细粒度数据集:https://github.com/thunlp/Few-NERD/tree/main/data
…
https://nlp.stanford.edu/software/CRF-NER.shtml
python实现的Github地址:https://github.com/Lynten/stanford-corenlp
官方地址:http://mallet.cs.umass.edu/
Github地址:https://github.com/hankcs/pyhanlp
官网:http://hanlp.linrunsoft.com/
Github地址:https://github.com/nltk/nltk
官网:http://www.nltk.org/
Gihub地址:https://github.com/explosion/spaCy
官网:https://spcay.io/
文档地址:https://sklearn-crfsuite.readthedocs.io/en/latest/?badge=latest
https://taku910.github.io/crfpp/
流水的NLP铁打的NER:命名实体识别实践与探索 - 知乎
https://zhuanlan.zhihu.com/p/166496466
中文NER的正确打开方式: 词汇增强方法总结 (从Lattice LSTM到FLAT)
https://zhuanlan.zhihu.com/p/142615620
自然语言处理基础技术之命名实体识别简介
https://www.jianshu.com/p/02b08ff8ad3c
命名实体识别(Name Entity Recognition)综述
https://sthsf.github.io/2020/02/18/NLP–%E5%91%BD%E5%90%8D%E5%AE%9E%E4%BD%93%E8%AF%86%E5%88%AB/
欢迎大家微信讨论技术问题,扫码回复NLP可以加入技术交流群