Walt You - 知行合一

使用 CRF(条件随机场) 进行 NER(命名实体识别)


NER(命名实体识别) 属于 NLP(自然语言处理)中的一个领域,其中 CRF (条件随机场)必不可少。


背景知识

1. NER(命名实体识别)

NER,英文全称:Named Entity Recognition。主要是用来识别一段文本中哪些是物体的名字,比如人名、公司名。

常见算法如下:

2. CRF (条件随机场)

CRF(Conditional random field,条件随机场)是一种判别式模型 (HMM是生成式模型)。是给定一组输入随机变量条件下另一组输出随机变量的条件概率分布模型,其特点是假设输出随机变量构成马尔可夫(Markov)随机场。

3. 标签体系

对于NER任务,常见的标签体系包括IO、BIO、BMEWO、BMEWO+。下面举例说明不同标签体系的区别。

4. 开源工具

CRF++:C++实现,提供python 和 java接口。 详情参考这里

NLTK : Python 的自然语言处理工具箱,使用方式参考这里

Stanford NLP: Java 实现,但是集成到了 NLTK 里,所以也可以使用 Python。详情参考这里

Sklearn_crfsuite: Python 的一个包,使用方式参考这里

参考

  1. NLP入门(八)使用CRF++实现命名实体识别(NER)

Content