基于pycrfsuite和sklearn_crfsuite的命名实体识别NER实战【以CoNLL2002数据集为基准】

      文本分词、词性标注和命名实体识别都是自然语言处理领域里面很基础的任务,他们的精度决定了下游任务的精度,其实在这之前我并没有真正意义上接触过命名实体识别这项工作,虽然说读研期间断断续续也参与了这样的项目,但是毕业之后始终觉得一知半解的感觉,最近想重新捡起来,以实践为学习的主要手段来比较系统地对命名实体识别这类任务进行理解、学习和实践应用。

     对于我个人来说学习一个新的东西,比较喜欢实践为主去学习,因为最开始接触机器学习的时候都是从空洞的理论开始的,后来学了好久发现,这些理论知识的学习固然理解某些内容的时候有帮助,但是真的工程实践的时候却又捉襟见肘,这也是我后来转变方式,理论结合实践但是实践占据主导这种学习模式的原因。

      命名实体识别属于序列标注任务,其实更像是分类任务,NER是在一段文本中,将预先定义好的实体类型识别出来。

      NER是一种序列标注问题,因此他们的数据标注方式也遵照序列标注问题的方式,主要是BIO和BIOES两种。这里直接介绍BIOES,明白了BIOES,BIO也就掌握了。

     先列出来BIOES分别代表什么意思:

B,即Begin,表示开始
I,即Intermediate,表示中间
E,即End,表示结尾
S,即Single,表示单个字符
O,即Other,表示其他,用于标记无关字符

     比如对于下面的一句话

姚明去哈尔滨工业大学体育馆打球了

     标注结果为:

姚明 去 哈尔滨工业大学 体育馆 打球 了
B-PER E-PER O B-ORG I-ORG I-ORG I-ORG I-ORG I-ORG E-ORG B-LOC I-LOC E-LOC O O O

      做过机器学习类的任务的应该都知道分类属于有监督学习领域,我们想要训练出来一个高可用的命名实体识别模型的

你可能感兴趣的:(CNN,LSTM建模实战专栏)