命名实体识别
命名实体识别(Named Entity Recognition,简称NER),又称作“专名识别”,是自然语言处理中的一项基础任务,应用范围非常广泛。
命名实体识别和分词、词性标注都属于序列标注问题。
所谓序列标注问题,就是给你一个字符序列,从左往右遍历每个字符,一边遍历一边对每一个字符分类,分类的体系因序列标注问题不同而不同:
- 分词问题:对每一个字符分类为“词开始”“词中间”“词结束”三类之一;
- 词性标注:对每一个分好的词,分类为定义的词性集合的之一;
- 实体识别:对每一个分好的词,识别为定义的命名实体集合之一。
对于序列标注问题,通常的算法就是隐马尔科夫模型(HMM)或者条件随机场(CRF)
实体识别还有比较实用化的非模型做法:词典法。提前准备好各种实体的词典,使用trie-tree数据结构存储,拿着分好的词去词典里找,找到了某个词就认为是提前定义好的实体了。
以实体识别为代表的序列标注问题上,工业级别的工具上spaCy比NLTK在效率上优秀一些。
命名实体一般指的是文本中具有特定意义或者指代性强的实体,通常包括 人名、地名、机构名、日期时间、专有名词等。
通常包括两部分:
- 实体的边界识别
- 确定实体的类型(人名、地名、机构名或其他)
三种标注方法:
BIO-三位序列标注法(B-begin,I-inside,O-outside)
标识实体的开始,中间部分和非实体部分
我 O
是 O
李 B-PER
果 I-PER
冻 I-PER
, O
我 O
爱 O
中 B-ORG
国 I-ORG
, O
我 O
来 O
自 O
四 B-LOC
川 I-LOC
。 O
BMES-四位序列标注法(B-begin,M-middle,E-end,S-single)
增加S单个实体情况的标注
我 S
是 S
四 B
川 M
人 E
BIOES-四位序列标注法(B-begin,I-inside,O-outside,E-end,S-single)
增加E实体的结束标识
我 O
是 O
李 B-PER
果 I-PER
冻 E-PER
, O
我 O
爱 O
中 B-LOC
国 E-LOC
, O
我 O
来 O
自 O
四 B-LOC
川 E-LOC
。 O