命名实体识别

概念

命名实体识别(Named Entity Recognition,简称NER) , 是指识别文本中具有特定意义的词(实体),主要包括人名、地名、机构名、专有名词等等,并把我们需要识别的词在文本序列中标注出来。

例如有一段文本:天津市空港经济区

我们要在上面文本中识别一些区域和地点,那么我们需要识别出来内容有:

  • 天津市(地点)
  • 空港经济区(地点)

NER的识别靠的是标签,在长期使用过程中,有一些大家使用比较频繁的标签,这里有个网站可以参考

识别上述例子我们使用了以下几个标签:

  1. "B-ORG":组织或公司(organization)
  2. "I-ORG":组织或公司
  3. "B-PER":人名(person)
  4. "I-PER":人名.
  5. "O":其他非实体(other)
  6. "B-LOC":地名(location)
  7. “I-LOC":地名

你肯定很关心“B”和“I”是什么意思?为什么一个实体会对应两个标签?(除O之外)下面会进行解释

首先说明,在文本中我们是以字为单位进行标注的

那么“B”和“I”是什么东西?

“B”是Begin的缩写,“I”我不知道是什么的缩写(如果你知道可以在评论区留言)

我们知道实体一般是一个词,因此用来表示它的文字应该有多个

而“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模型本身(因为它描述了一个过程)

【NLP学习其一】什么是命名实体识别NER?的更多相关文章

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

    CRF与NER简介   CRF,英文全称为conditional random field, 中文名为条件随机场,是给定一组输入随机变量条件下另一组输出随机变量的条件概率分布模型,其特点是假设输出随机 ...

  2. 『深度应用』NLP命名实体识别(NER)开源实战教程

    近几年来,基于神经网络的深度学习方法在计算机视觉.语音识别等领域取得了巨大成功,另外在自然语言处理领域也取得了不少进展.在NLP的关键性基础任务—命名实体识别(Named Entity Recogni ...

  3. pytorch 文本情感分类和命名实体识别NER中LSTM输出的区别

    文本情感分类: 文本情感分类采用LSTM的最后一层输出 比如双层的LSTM,使用正向的最后一层和反向的最后一层进行拼接 def forward(self,input): ''' :param inpu ...

  4. NLP入门(四)命名实体识别(NER)

      本文将会简单介绍自然语言处理(NLP)中的命名实体识别(NER).   命名实体识别(Named Entity Recognition,简称NER)是信息提取.问答系统.句法分析.机器翻译等应用领 ...

  5. 命名实体识别(NER)

    一.任务 Named Entity Recognition,简称NER.主要用于提取时间.地点.人物.组织机构名. 二.应用 知识图谱.情感分析.机器翻译.对话问答系统都有应用.比如,需要利用命名实体 ...

  6. NLP入门(五)用深度学习实现命名实体识别(NER)

    前言   在文章:NLP入门(四)命名实体识别(NER)中,笔者介绍了两个实现命名实体识别的工具--NLTK和Stanford NLP.在本文中,我们将会学习到如何使用深度学习工具来自己一步步地实现N ...

  7. NLP(二十四)利用ALBERT实现命名实体识别

      本文将会介绍如何利用ALBERT来实现命名实体识别.如果有对命名实体识别不清楚的读者,请参考笔者的文章NLP入门(四)命名实体识别(NER) .   本文的项目结构如下:   其中,albert_ ...

  8. 神经网络结构在命名实体识别(NER)中的应用

    神经网络结构在命名实体识别(NER)中的应用 近年来,基于神经网络的深度学习方法在自然语言处理领域已经取得了不少进展.作为NLP领域的基础任务-命名实体识别(Named Entity Recognit ...

  9. 用深度学习做命名实体识别(六)-BERT介绍

    什么是BERT? BERT,全称是Bidirectional Encoder Representations from Transformers.可以理解为一种以Transformers为主要框架的双 ...

随机推荐

  1. Windows进程间通讯(IPC)----信号量

    线程同步内核对象 操作系统进行进程间同步是利用信号量机制.对于windows系统而言,可以利用一些内核对象进行线程同步,因为这些内核对象可以命名并且属于系统内核,所以可以支持不同进程间的线程同步进而实 ...

  2. 云服务器Apache+MySQL(远程连接)+PHP等环境安装2021.5.9号配置

    云服务器Apache+MySQL(远程连接)+PHP等环境安装2021.5.9号配置 Linux版本:centos8.2 (其他版本提供适配) 安装方式:yum 今天使用centos8系统搭建了下云主 ...

  3. VS·.Net WCF多项目调试方法

    阅文时长 | 0.12分钟 字数统计 | 252.8字符 主要内容 | 1.引言&背景 2.声明与参考资料 『VS·.Net WCF多项目调试方法』 编写人 | SCscHero 编写时间 | ...

  4. IT菜鸟之BIOS和VT

    一.虚拟化:VT(Virtualization Technology) 二.BIOS (basic input output system基本输入输出系统) 主板优先启动--bios启动--bios开 ...

  5. 057.Python前端Django模型ORM多表查询

    一 基于对象的查询 1.1 一对多查询 设计路由 from django.contrib import admin from django.urls import path from app01 im ...

  6. JDK 14 都已经发布了,Java 8 依然是我的最爱

    在 JDK 版本的世界里,从来都是 Oracle 发他的新版本,我们 Java 程序员继续用我们的老版本 几年之前用 JDK 7,后来终于升级到了 JDK 8.自从升级了没多久,JDK 就开始了半年发 ...

  7. git OpenSSL SSL_connect问题

    遇到这个问题,查找别人也遇到,省时间不写了直接复制 在使用Git来克隆仓库报了错误,如下: fatal: unable to access 'https://github.com/xingbuxing ...

  8. 10.9 ping:测试主机之间网络的连通性

    ping命令 可用于测试主机之间网络的连通性.执行ping命令会使用ICMP传输协议,发出要求回应的信息,若远端主机的网络功能没有问题,就会回应该信息,因而可得知该主机运作正常.     ping命令 ...

  9. kubernetes技能图谱

    深入剖析Kubernetes-张磊(Kubernetes社区资深成员与项目维护者) Kubernetes集群搭建 ver1.20.5

  10. php反转字符串的三种方法

    (假设有字符串abcd,用php实现字符串翻转) 1.第一种php有自带的函数strrev可以轻松实现: $str = 'abcd'; //第一种自带strrev实现翻转 echo strrev($s ...