命名实体识别(NER)综述

命名实体识别(NER)综述本文是中文信息处理课程的期末考核大作业摘要命名实体识别是自然语言处理中的热点研究方向之一 目的是识别文本中的命名实体并将其归纳到相应的实体类型中 首先阐述了命名实体识别任务的定义 目标和意义 然后介绍了命名实体识别研究的发展进程 从最初的规则和字典方法到传统的统计学习方法再到现在的深度学习方法 不断地将新技术应用到命名实体识别研究中以提高性能 最后针对评判命名实体识别模型的好坏 总结了常用的若干数据集和常用工具 并给出了未来的研究建议 1 引言 命名实体识别这个术语首次出现在 MUC 6

摘要

命名实体识别是自然语言处理中的热点研究方向之一, 目的是识别文本中的命名实体并将其归纳到相应的实体类型中。首先阐述了命名实体识别任务的定义、目标和意义; 然后介绍了命名实体识别研究的发展进程,从最初的规则和字典方法到传统的统计学习方法再到现在的深度学习方法,不断地将新技术应用到命名实体识别研究中以提高性能; 最后针对评判命名实体识别模型的好坏,总结了常用的若干数据集和常用工具,并给出了未来的研究建议 。

1. 引言

​命名实体识别这个术语首次出现在MUC-6(Message Understanding Conferences),这个会议关注的主要问题是信息抽取(Information Extraction),第六届MUC除了信息抽取评测任务还开设了新评测任务即命名实体识别任务。除此之外,其他相关的评测会议包括CoNLL(Conference on Computational Natural Language Learning)、ACE(Automatic Content Extraction)和IEER(Information Extraction-Entity Recognition Evaluation)等。在MUC-6之前,大家主要是关注人名、地名和组织机构名这三类专业名词的识别。自MUC-6起,后面有很多研究对类别进行了更细致的划分,比如地名被进一步细化为城市、州和国家,也有人将人名进一步细分为政治家、艺人等小类。

​ 此外,一些评测还扩大了专业名词的范围,比如CoNLL某年组织的评测中包含了产品名的识别。一些研究也涉及电影名、书名、项目名、研究领域名称、电子邮件地址、电话号码以及生物信息学领域的专有名词(如蛋白质、DNA、RNA等)。甚至有一些工作不限定“实体”的类型,而是将其当做开放域的命名实体识别和分类。

2. 研究背景

3. 主要方法

命名实体识别从早期基于词典和规则的方法,到传统机器学习的方法, 后来采用基于深度学习的方法,一直到当下热门的注意力机制、图神经网络等研究方法, 命名实体识别技术路线随着时间在不断发展。

命名实体识别 NER 的发展史

3.1 基于规则和字典的方法

3.2基于传统机器学习的方法

  • 隐马尔可夫模型(Hidden Markov Model, HMM)
    HMM对转移概率和表现概率直接建模,统计共现概率。更适用于一些对实时性有要求以及像信息检索这样需要处理大量文本的应用,如短文本命名实体识别。

  • 最大熵(Maximum Entropy, ME) [14]
    ME结构紧凑,具有较好的通用性, 其主要缺点是训练时间复杂性非常高,甚至导致训练代价难以承受,另外由于需要明确的归一化计算,导致开销比较大。

  • 最大熵马尔可夫模型(Maximum Entropy Markov Model, MEMM) [15]
    MEMM对转移概率和表现概率建立联合概率,统计条件概率,但由于只在局部做归一化容易陷入局部最优。

  • 支持向量机(Support Vector Machine, SVM)
    SVM在正确率上要比HMM高一些,但是HMM在训练和识别时的速度要快一些。 主要是由于在利用Viterbi算法求解命名实体类别序列的效率较高。

  • 条件随机场( Conditional Random Fields, CRF) [16]等。
    CRF模型统计全局概率,在归一化时考虑数据在全局的分布,而不是仅仅在局部进行归一化, 因此解决了MEMM中标记偏置的问题。 在传统机器学习中, CRF被看作是命名实体识别的主流模型, 优点在于在对一个位置进行标注的过程中CRF可以利用内部及上下文特征信息。 但同时存在收敛速度慢、训练时间长的问题。

3.3 基于深度学习的方法

​ 近年来, 在基于神经网络的结构上加入注意力机制、图神经网络、迁移学习、远监督学习等热门研究技术也是目前的主流研究方向 。NER使用深度学习的原因主要是:1.NER适用于非线性转化。2.深度学习避免大量的人工特征的构建,节省了设计NER功能的大量精力。3.深度学习能通过梯度传播来训练,这样可以构建更复杂的网络。5. 端到端的训练方式。

3.3.1 BiLSTM-CRF

在这里插入图片描述

3.3.2 IDCNN-CRF

image-20210614164752444

​ 论文Fast and Accurate Entity Recognition with Iterated Dilated Convolutions提出在NER任务中,引入膨胀卷积,一方面可以引入CNN并行计算的优势,提高训练和预测时的速度;另一方面,可以减轻CNN在长序列输入上特征提取能力弱的劣势。具体使用时,dilated width会随着层数的增加而指数增加。这样随着层数的增加,参数数量是线性增加的,而感受野却是指数增加的,这样就可以很快覆盖到全部的输入数据。IDCNN对输入句子的每一个字生成一个logits,这里就和BiLSTM模型输出logits之后完全一样,再放入CRF Layer解码出标注结果。

3.3.3 CAN-NER

​ 采用一种卷积注意网络CAN,它由具有局部attention的基于字符的CNN和具有全局attention的GRU组成,用于获取从局部的相邻字符和全局的句子上下文中信息。首先模型输入的是字符,卷积注意力层用来编码输入的字符序列并隐式地对局部语义相关的字符进行分组。对输入进行向量嵌入,包含字向量、分词向量和位置向量,得到输入向量后,采用局部 local attention来捕捉窗口范围内中心词和周围词的依赖,局部 attention 的输出被送到 CNN 中,最后采用加和池化方案。得到局部特征后,进入到BiGRU-CRF 中,而后采用全局的 attention来进一步捕捉句子级别的全局信息。后面接 CRF,得到分类结果。self-attention 可以捕捉广义的上下文信息,减少无用中间词的干扰。

3.2.4 Lattice LSTM(针对中文的NER)

​ 中文的NER与英文不太一样,中文NER问题很大程度上取決于分词的效果,比如实体边界和单词的边界在中文NER可题中经常是一样的。所以在中文NER问题中,有时通常先对文本进行分词然后再预测序列中单词的类别。这样一来会导致一个问题,即在分词中造成的错误会影响到NER的结果。基于字向量的模型能够避免上述问题,但因为单纯采用字向量,导致拆开了很多并不应该拆开的词语,从而丢失了它们本身的内在信息。

命名实体识别(NER)综述

​ 《Chinese NER Using Lattice LSTM》提出一种用于中文NER的LSTM的格子模型,与基于字符的方法相比,该模型显性地利用词和词序信息;与基于词的方法相比,完整的嵌入词语信息因此 lattice LSTM 不会出现分词错误。门控循环单元使得模型能够从句子中选择最相关的字符和词,以生成更好的 NER 结果。但是,此模型对于一些新的词语效果不理想。

3.2.5 引入BERT及attention

在这里插入图片描述

论文《Multilingual Named Entity Recognition Using Pretrained Embeddings, Attention Mechanism and NCRF》在NCRF和BiLSTM中间加入了一层Multihead Attention,并用BERT来获取上下文词表示,然后设计了一个多任务结构来学习多语言NER。

4.NER主要数据集

英文数据集

其它数据集

image-20210614172350727

中文数据集

  • CCKS2017开放的中文的电子病例测评相关的数据。
    评测任务一:https://biendata.com/competition/CCKS2017_1/
    评测任务二:https://biendata.com/competition/CCKS2017_2/




  • CCKS2018开放的音乐领域的实体识别任务。
    评测任务:https://biendata.com/competition/CCKS2018_2/

  • (CoNLL 2002)Annotated Corpus for Named Entity Recognition。
    地址:https://www.kaggle.com/abhinavwalia95/entity-annotated-corpus

  • NLPCC2018开放的任务型对话系统中的口语理解评测。
    地址:http://tcci.ccf.org.cn/conference/2018/taskdata.php

  • 一家公司提供的数据集,包含人名、地名、机构名、专有名词。
    下载地址:https://bosonnlp.com/dev/resource

5.NER工具

Stanford NER

斯坦福大学开发的基于条件随机场的命名实体识别系统,该系统参数是基于CoNLL、MUC-6、MUC-7和ACE命名实体语料训练出来的。

地址:https://nlp.stanford.edu/software/CRF-NER.shtml

python实现的Github地址:https://github.com/Lynten/stanford-corenlp

# 安装:pip install stanfordcorenlp
# 国内源安装:pip install stanfordcorenlp -i https://pypi.tuna.tsinghua.edu.cn/simple
# 使用stanfordcorenlp进行命名实体类识别
# 先下载模型,下载地址:https://nlp.stanford.edu/software/corenlp-backup-download.html
# 对中文进行实体识别
from stanfordcorenlp import StanfordCoreNLP
zh_model = StanfordCoreNLP(r'stanford-corenlp-full-2018-02-27', lang='zh')
s_zh = '我爱自然语言处理技术!'
ner_zh = zh_model.ner(s_zh)
s_zh1 = '我爱北京天安门!'
ner_zh1 = zh_model.ner(s_zh1)
print(ner_zh)
print(ner_zh1)

[('我爱', 'O'), ('自然', 'O'), ('语言', 'O'), ('处理', 'O'), ('技术', 'O'), ('!', 'O')]
[('我爱', 'O'), ('北京', 'STATE_OR_PROVINCE'), ('天安门', 'FACILITY'), ('!', 'O')]


# 对英文进行实体识别
eng_model = StanfordCoreNLP(r'stanford-corenlp-full-2018-02-27')
s_eng = 'I love natural language processing technology!'
ner_eng = eng_model.ner(s_eng)
s_eng1 = 'I love Beijing Tiananmen!'
ner_eng1 = eng_model.ner(s_eng1)
print(ner_eng)
print(ner_eng1)

[('I', 'O'), ('love', 'O'), ('natural', 'O'), ('language', 'O'), ('processing', 'O'), ('technology', 'O'), ('!', 'O')]
[('I', 'O'), ('love', 'O'), ('Beijing', 'CITY'), ('Tiananmen', 'LOCATION'), ('!', 'O')]

MALLET

麻省大学开发的一个统计自然语言处理的开源包,其序列标注工具的应用中能够实现命名实体识别。 官方地址:http://mallet.cs.umass.edu/

Hanlp

HanLP是一系列模型与算法组成的NLP工具包,由大快搜索主导并完全开源,目标是普及自然语言处理在生产环境中的应用。支持命名实体识别。 Github地址:https://github.com/hankcs/pyhanlp

官网:http://hanlp.linrunsoft.com/

# 安装:pip install pyhanlp # 国内源安装:pip install pyhanlp -i https://pypi.tuna.tsinghua.edu.cn/simple # 通过crf算法识别实体 from pyhanlp import * # 音译人名示例 CRFnewSegment = HanLP.newSegment("crf") term_list = CRFnewSegment.seg("我爱北京天安门!") print(term_list) [我/r, 爱/v, 北京/ns, 天安门/ns, !/w] 

NLTK

NLTK是一个高效的Python构建的平台,用来处理人类自然语言数据。

Github地址:https://github.com/nltk/nltk 官网:http://www.nltk.org/

# 安装:pip install nltk # 国内源安装:pip install nltk -i https://pypi.tuna.tsinghua.edu.cn/simple import nltk s = 'I love natural language processing technology!' s_token = nltk.word_tokenize(s) s_tagged = nltk.pos_tag(s_token) s_ner = nltk.chunk.ne_chunk(s_tagged) print(s_ner) 

SpaCy

工业级的自然语言处理工具,遗憾的是不支持中文。 Gihub地址: https://github.com/explosion/spaCy 官网:https://spacy.io/

# 安装:pip install spaCy # 国内源安装:pip install spaCy -i https://pypi.tuna.tsinghua.edu.cn/simple import spacy eng_model = spacy.load('en') s = 'I want to Beijing learning natural language processing technology!' # 命名实体识别 s_ent = eng_model(s) for ent in s_ent.ents: print(ent, ent.label_, ent.label) Beijing GPE 382 

Crfsuite

可以载入自己的数据集去训练CRF实体识别模型。

文档地址:

https://sklearn-crfsuite.readthedocs.io/en/latest/?badge=latest

代码已上传:https://github.com/yuquanle/StudyForNLP/blob/master/NLPbasic/NER.ipynb

6. 总结

​ 命名实体识别是自然语言处理应用中的重要步骤, 它不仅检测出实体边界,还检测出命名实体的类型,是文本意义理解的基础。 本文阐述了命名实体识别的研究进展,从早期基于规则和词典的方法,到传统机器学习的方法,到近年来基于深度学习的方法, 神经网络与 CRF 模型相结合的 NN-CRF 模型依旧是目前命名实体识别的主流模型。 未来的研究中,数据标注和非正式文本(评论、论坛发言等未出现过的实体)仍会是两个挑战。迁移学习、对抗学习、远监督学习方法以及图神经网络、注意力机制、NER模型压缩、多类别实体、嵌套实体、实体识别和实体链接联合任务等都会是NER未来研究的重点。

参考文献

[1] Zhang Y , Yang J . Chinese NER Using Lattice LSTM[J]. 2018.

[2] Strubell E , Verga P , Belanger D , et al. Fast and Accurate Entity Recognition with Iterated Dilated Convolutions[J]. 2017.

[3] Zhu Y , Wang G , Karlsson B F . CAN-NER: Convolutional Attention Network forChinese Named Entity Recognition[J]. 2019.

[4] Emelyanov A A , Artemova E . Multilingual Named Entity Recognition Using Pretrained Embeddings, Attention Mechanism and NCRF[J]. 2019.

[5] Li J , Sun A , Han J , et al. A Survey on Deep Learning for Named Entity Recognition[J]. IEEE Transactions on Knowledge and Data Engineering, 2020, PP(99):1-1.

[6] Ratnaparkhi A . A Maximum Entropy Model for Part-Of-Speech Tagging. 2002.

[7] MCCALLUM A, FREITAG D, PEREIRA F C N. Maximum Entropy Markov Models for Information Extraction andSegmentation[C]//Icml, 2000, 17: 591-598

[8] Lafferty J , Mccallum A , Pereira F . Conditional Random Fields: Probabilistic Models for Segmenting and Labeling Sequence Data[C]// Proc. 18th International Conf. on Machine Learning. 2001.

[9] 陈曙东, 欧阳小叶. 命名实体识别技术综述[J]. 无线电通信技术, 2020, 046(003):251-260.

[10] 刘宇鹏, 栗冬冬. 基于BLSTM-CNN-CRF的中文命名实体识别方法[J]. 哈尔滨理工大学学报, 2020, v.25(01):119-124.

[11] Huang Z , Wei X , Kai Y . Bidirectional LSTM-CRF Models for Sequence Tagging[J]. Computer Science, 2015.

[12] Xiang R , He W , Meng Q , et al. AFET: Automatic Fine-Grained Entity Typing by Hierarchical Partial-Label Embedding[C]// Proceedings of the 2016 Conference on Empirical Methods in Natural Language Processing. 2016.

[13] COLLOBERT R, WESTON J, BOTTOU L, et al. Natural Language Processing (almost) from Scratch[J]. Journal of MachineLearning Research, 2011, 12(Aug): 2493-2537

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/230197.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月16日 下午2:54
下一篇 2026年3月16日 下午2:55


相关推荐

  • python字符串处理方法

    python字符串处理方法一、combine&duplicate字符串结合和复制字符和字符串可以用来相加来组合成一个字符串输出;字符或字符串复制输出。二、Extract&Slice字符串提取和切

    2022年7月6日
    27
  • android 平板重装系统,平板电脑系统重装方法「建议收藏」

    不少用户想要平板电脑重装,但是不知如何操作,为此有些为难。平板电脑是跟笔记本电脑方便携带出现的物品,不会意味着台式机电脑会退出电脑界,2020年新的开始新的一年,让许多的电脑品牌竞争激烈起来。平板电脑也叫便携式电脑,是一款以触摸屏作为基本的输入设备,无须翻盖、没有键盘、小到放入女士手袋,但是却功能完整的PC。可是满不满足可以重装系统的条件,下面小编整理了平板装系统的方法。1、系统重装支持ARIM构…

    2022年4月12日
    1.6K
  • C#窗体中的textBox怎么设置为密码框[通俗易懂]

    C#窗体中的textBox怎么设置为密码框[通俗易懂]场景在用C#做登录的窗体时,需要将TextBox设置为密码框。一般会找到TextBox然后设置其属性。但是属性里面没有直接的设置TextBox类型的属性。实现在行为–PasswordChar里面设置其为*,则自动将TextBox的类型修改为密码框。效果…

    2022年7月18日
    14
  • 【转载】句柄和指针的区别

    【转载】句柄和指针的区别

    2021年11月18日
    40
  • python 列求和_python分数序列求和

    python 列求和_python分数序列求和欢迎访问少儿编程网(http://www.pxcodes.com)在python求和的方法:首先定义数组,并输入求和的整数;然后使用for循环,保存在数组中;接着调用sum函数,计算所有整数的和;**后输出计算得到的所有整数和。6MX少儿编程网-https://www.pxcodes.com6MX少儿编程网-https://www.pxcodes.com本教程操作环境:windows7系统、pyt…

    2025年7月12日
    7
  • mt4下载_mt4电脑下载

    mt4下载_mt4电脑下载目前,mt4软件已其特有的优势吸引了众多投资者,成为了这些年比较受欢迎的外汇交易平台。对于经常用手机进行交易的人员来说,就需要下载安卓版或者苹果版。那么分别以2个版为例,讲解一下如何下载。下面介绍第一方式:从网上下载,这个是通用方法,各个版本都可以下,例如:mt4download。cnMT4移动端优势特别多,随时随地使用,并且上面的一些功能也是其他软件没法比的。第二种方式:用googleplay下载安卓版。通过googleplay打开和浏览手机。搜索mt4软件,点击管理系统安装按钮,同意

    2022年8月15日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号