| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> 命名实体识别(NER)综述 -> 正文阅读 |
|
[人工智能]命名实体识别(NER)综述 |
摘要命名实体识别是自然语言处理中的热点研究方向之一, 目的是识别文本中的命名实体并将其归纳到相应的实体类型中。首先阐述了命名实体识别任务的定义、目标和意义; 然后介绍了命名实体识别研究的发展进程,从最初的规则和字典方法到传统的统计学习方法再到现在的深度学习方法,不断地将新技术应用到命名实体识别研究中以提高性能; 最后针对评判命名实体识别模型的好坏,总结了常用的若干数据集和常用工具,并给出了未来的研究建议 。 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. 研究背景? 命名实体识别(Named Entity Recognition, NER)是NLP中一项非常基础的任务,是信息提取、问答系统、句法分析、机器翻译等众多NLP任务的重要基础工具。命名实体一般指的是文本中具有特定意义或者指代性强的实体,学术上通常包括实体类,时间类,数字类三大类和人名、地名、组织机构名、时间、日期、货币、百分比七小类。NER就是从非结构化的输入文本中抽取出上述实体,并且可以按照业务需求识别出更多类别的实体。 3. 主要方法命名实体识别从早期基于词典和规则的方法,到传统机器学习的方法, 后来采用基于深度学习的方法,一直到当下热门的注意力机制、图神经网络等研究方法, 命名实体识别技术路线随着时间在不断发展。 3.1 基于规则和字典的方法? 基于规则的NER系统依赖于人工制定的规则。规则的设计一般基于句法、语法、词汇的模式以及特定领域的知识等。词典是由特征词构成的词典和外部词典共同组成,外部词典指已有的常识词典。 制定好规则和词典后,通常使用匹配的方式对文本进行处理以实现命名实体识别。 3.2基于传统机器学习的方法? 在基于机器学习的方法中, 命名实体识别被当作是序列标注问题。与分类问题相比,序列标注问题中当前的预测标签不仅与当前的输入特征相关,还与之前的预测标签相关,即预测标签序列之间是有强相互依赖关系的。
3.3 基于深度学习的方法? 近年来, 在基于神经网络的结构上加入注意力机制、图神经网络、迁移学习、远监督学习等热门研究技术也是目前的主流研究方向 。NER使用深度学习的原因主要是:1.NER适用于非线性转化。2.深度学习避免大量的人工特征的构建,节省了设计NER功能的大量精力。3.深度学习能通过梯度传播来训练,这样可以构建更复杂的网络。5. 端到端的训练方式。 3.3.1 BiLSTM-CRF? BiLSTM-CRF直观显示了模型结构与优势,其中BiLSTM通过前向/后向传递的方式学习序列中某字符依赖的过去和将来的信息,CRF则考虑到标注序列的合理性。模型主要由Embedding层(主要有词向量,字向量以及一些额外特征),双向LSTM层,以及最后的CRF层构成。在特征方面,该模型继承了深度学习方法的优势,无需特征工程,使用词向量以及字符向量就可以达到很好的效果,如果有高质量的词典特征,能够进一步获得提高。 3.3.2 IDCNN-CRF? 论文Fast and Accurate Entity Recognition with Iterated Dilated Convolutions提出在NER任务中,引入膨胀卷积,一方面可以引入CNN并行计算的优势,提高训练和预测时的速度;另一方面,可以减轻CNN在长序列输入上特征提取能力弱的劣势。具体使用时,dilated width会随着层数的增加而指数增加。这样随着层数的增加,参数数量是线性增加的,而感受野却是指数增加的,这样就可以很快覆盖到全部的输入数据。IDCNN对输入句子的每一个字生成一个logits,这里就和BiLSTM模型输出logits之后完全一样,再放入CRF Layer解码出标注结果。 3.3.3 CAN-NERConvolutional Attention Network for Chinese Named Entity Recognition(NAACL 2019)提出了用基于注意力机制的卷积神经网络架构。 ? 采用一种卷积注意网络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的结果。基于字向量的模型能够避免上述问题,但因为单纯采用字向量,导致拆开了很多并不应该拆开的词语,从而丢失了它们本身的内在信息。 ? 《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主要数据集英文数据集 ①CoNLL 2003数据集包括1 393篇英语新闻文章和909篇德语新闻文章,英语语料库是免费的,德国语料库需要收费。英语语料取自路透社收集的共享任务数据集。 数据集中标注了4种实体类型:PER,LOC,ORG MISC。 其它数据集 中文数据集
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
MALLET 麻省大学开发的一个统计自然语言处理的开源包,其序列标注工具的应用中能够实现命名实体识别。 官方地址:http://mallet.cs.umass.edu/ Hanlp HanLP是一系列模型与算法组成的NLP工具包,由大快搜索主导并完全开源,目标是普及自然语言处理在生产环境中的应用。支持命名实体识别。 Github地址:https://github.com/hankcs/pyhanlp 官网:http://hanlp.linrunsoft.com/
NLTK NLTK是一个高效的Python构建的平台,用来处理人类自然语言数据。 Github地址:https://github.com/nltk/nltk 官网:http://www.nltk.org/
SpaCy 工业级的自然语言处理工具,遗憾的是不支持中文。 Gihub地址: https://github.com/explosion/spaCy 官网:https://spacy.io/
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未来研究的重点。
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/17 20:21:05- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |