【NLP学习其一】什么是命名实体识别NER?
命名实体识别
概念
命名实体识别(Named Entity Recognition,简称NER) , 是指识别文本中具有特定意义的词(实体),主要包括人名、地名、机构名、专有名词等等,并把我们需要识别的词在文本序列中标注出来。
例如有一段文本:天津市空港经济区
我们要在上面文本中识别一些区域和地点,那么我们需要识别出来内容有:
- 天津市(地点)
- 空港经济区(地点)
NER的识别靠的是标签,在长期使用过程中,有一些大家使用比较频繁的标签,这里有个网站可以参考
https://spacy.io/api/data-formats?source=post_page---------------------------#pos-tagging
识别上述例子我们使用了以下几个标签:
- "B-ORG":组织或公司(organization)
- "I-ORG":组织或公司
- "B-PER":人名(person)
- "I-PER":人名.
- "O":其他非实体(other)
- "B-LOC":地名(location)
- “I-LOC":地名
你肯定很关心“B”和“I”是什么意思?(有些还会用到“E”表示结束边界,这里只用两个标签)为什么一个实体会对应两个标签?(除O之外)下面会进行解释
首先说明,在文本中我们是以字为单位进行标注的
那么“B”和“I”是什么东西?
“B”是Begin的缩写,“I”我不知道是什么的缩写(如果你知道可以在评论区留言)
补充NER标注方法:https://blog.csdn.net/qq_44079295/article/details/96429667
我们知道实体一般是一个词,因此用来表示它的文字应该有多个
而“B”就是用来表示某个实体开头的第一个字的(英文实体则为单词)
如:
天津市可以表示为
天(B-LOC)津(I-LOC)市(I-LOC)
#以B-LOC开头后面必须全为某某LOC,不能出现别的标签,比如B-PER后面跟个I-LOC就不行
#在训练的时候,我们通常会再加一个概率图模型来减少上述错误的发生,如HMM等
纽约New York可以表示为
New(B-LOC) York(I-LOC)
人名同理不再举例
“O”则表示文本中不相关的字
如:
小红想去二空螺蛳粉嗦粉
上述文本中,除了“小红”和“二空螺蛳粉”以外的字都是“O"(前提是你不关心这些字)
注:除了上述标注方法外的标注均为非法标注
那么™的HMM又是什么?
隐马尔可夫模型,即HMM,是概率图模型的一种,属于生成模型。
笼统的说,我们在上面谈论的"BIO"的实体标签,就属于一种不可观测的隐状态,而HMM模型就是描述由隐状态序列(实体标记)生成可观测结果(可读文本)的过程.
在我们讨论NER的问题当中,隐状态序列是实体标记序列,而可观测序列是我们可读的原始语料文本序列.
如:
隐藏状态序列:(B-LOC)(I-LOC)(I-LOC)
观测状态序列: 天 津 市
这只是HMM用于NER标签时的情况
我们还可以举个例子将HMM思想拓展一下
假如我在打游戏,这时我突然想起一个人,然后我看通讯录找到他的名字给他打电话
上述例子中,
想起的这个人就是隐藏状态;
他的名字就是观测结果;
而我举例用的整段话就是HMM模型本身(因为它描述了一个过程)