命名实体识别(1)——CRF

本文主要介绍一些命名实体识别(Name Entity Recognition,NER)相关的基本概念、发展历程和最新的研究进展,并着重介绍基于CRF的命名实体识别原理及实现。后续也会以BiLSTM-CRF、BERT-BiLSTM-CRF为例进行展开。

1.命名实体识别介绍

命名实体识别(Name Entity Recognition,NER),又称"专名识别",是指识别文本中含有特定意义的实体,主要包含三大类(实体类、时间类、数字类)和七小类(人名、地名、组织结构名、时间、日期、货币、百分比等)。命名实体识别是自然语言处理的基础,在信息系统、知识图谱、问答系统、情感识别、机器翻译等领域都有广泛的应用。

根据应用领域的不同,可以将命名实体识别分为一下两类:

(1)通用命名实体识别(Generic NER):主要用于识别人名、地名、组织结构名等

(2)领域特定命名识别(Domain-specific NER):主要用于识别特定领域的专有名词,如医疗领域的蛋白质、酶、基因等。

命名实体识别任务主要可以分为两个步骤:

(1)实体边界识别。因为中文文本中没有类似于英文中的空格之类的显示标识词的边界标识符,所以进行命名实体识别的第一步就是要对文本进行分词,确定词的边界。

(2)确定实体类型。

2.基于CRF的命名实体识别

本文基于Python第三方包sklearn-crfsuite来实现基于CRF的命名实体识别,训练和测试所用的数据集为CONLL2002命名实体识别数据,经过测试基于CRF的命名实体识别在测试集上的F1为0.85。

 

附录:

1.sklearn-crfsuite官方API:https://sklearn-crfsuite.readthedocs.io/en/latest/index.html

2.数据集:https://www.kaggle.com/abhinavwalia95/how-to-loading-and-fitting-dataset-to-scikit/data

3.github代码:https://github.com/flysky1991/NLP/blob/master/NER/CRF_for_NER.ipynb

你可能感兴趣的:(自然语言处理,命名实体识别)