AI算法工程师 | 09机器学习-概率图模型(六)命名实体识别与CRF

news2024/10/9 2:26:07

文章目录

  • 机器学习 - 概率图模型 之 命名实体识别与CRF
    • 一、命名实体识别 NER 的基本介绍
      • 1、相关概念
      • 2、主要方法(导图)
      • 3、标注策略
    • 二、CRF 层之 BiLSTM(BiLSTM-CRF)
      • 1、介绍
        • 1.1 BiLSTM-CRF 模型
        • 1.2 添加 CRF 层的好处
      • 2、CRF 层
        • 2.1 Emission score 发射分数
        • 2.2 Transition score 转移分数
        • 2.3 CRF loss function 损失函数
        • 2.4 Real path score 真实路径分数
        • 2.5 The score of all the possible paths 所有可能路径的总分数
        • 2.6 Infer the labels for a new sentence 预测一个新句子的标签

机器学习 - 概率图模型 之 命名实体识别与CRF

一、命名实体识别 NER 的基本介绍

1、相关概念

命名实体识别(Named Entity Recognition,简称 NER) 属于序列标注(Sequence Labeling)问题,可以把此处的 NER 方法看成是通用的处理序列标注问题的方法。

序列标注问题

自然语言处理中,属于序列标注问题的常见任务:

  • 命名实体识别(Named Entity Recognition)
  • 分词(Word Segmentation)
  • 词性标注(POS Tagging)

它们所用的方法是相通的,三项任务主要的区别为:训练集所准备的数据(训练集) x、y 的不同

  • 命名实体识别、词性标注:它们的 x 均是已经分好词的;
  • 词性标注:y 为词性的标签,如 名词、动词、副词等;
  • 命名实体识别:y 的标签为人名、地名、时间等,看具体任务;
  • 分词:对于中文而言,x 为一个字;y 为每个字对应的是开头、中间还是结尾,或独立的内容 等。

命名实体识别 NER

NER 有何用?

  • 现实世界中存在大量的半结构化和非结构化数据。
    • 结构化:比如 往往存在于 MySQL 数据库中的数据,是结构化数据;结构化数据方便查询。
    • 非结构化:如 存储于MongoDB中的一个 id 对应一篇 document 文章,该文章未被做任何操作(如分词),属于非结构化数据;
    • 半结构化:如 文章分成段落,分好了词,文章变成了词的列表进行存储,属于半结构化数据。
  • 构建知识图谱的关键是如何获取领域知识。
    • 知识图谱往往需要的是图数据库(如 Neo4j)。
  • 实体识别是从半结构化数据或非结构化数据中获取知识的重要方法。

NER 可做词级别的序列标注、也可做字符级别的序列标注。

识别出句子中命名实体的边界类别的任务称为命名实体识别(Named Entity Recognition,NER)。 —— 摘自:何晗《自然与语言处理入门》

2、主要方法(导图)

主要方法

3、标注策略

标注策略说明
IOBI:inside 内部;O:outside 非实体词;B:begin。注意:IOB中的 B 仅用于两个或多个连续的同类型命名实体的边界区分(如果该实体前面有一个类别相同的另一个实体, 那它的第一个 token 就用 B-X 标记)。
BIOB:begin 实体的开头;I:inside 内部;O:outside 非实体词。除了标签 B 的使用不同,BIO 与 IOB 字母对应的含义相同。
BIOESB:begin 实体的开头;I:inside 内部;O:outside 非实体词;E:end 实体尾部;S:single 表示该词本身就是一个实体
BMESB:begin 实体的开头;M:middle 中间位置;E:end 实体尾部;S:single 单独的字词

示例:比如识别人名 PER(person)

IOBOOI-PERI-PERI-PERO
BIOOOB-PERI-PERI-PERO
BIOESOOB-PERI-PERE-PERO
BMESSSB-PERM-PERE-PERS
区别
IOBI-PERI-PERB-PERI-PERI-PEROO
BIOB-PERI-PERB-PERI-PERI-PEROO

人工标注的成本比较高,一般可预先使用基于规则的方法(或其他方法)标注,再进行人工审查。

参考1:命名实体识别的三中标注方法BIO,BIOES,BMES
参考2:命名实体识别(NER):BiLSTM-CRF原理介绍+Pytorch_Tutorial代码解析

二、CRF 层之 BiLSTM(BiLSTM-CRF)

1、介绍

对于命名实体识别任务,基于神经网络是非常流行和常见的。例如,使用 BiLSTM-CRF ( BiLSTM 双向长短时记忆网络 和 CRF 条件随机场 是两个不同的层在 NER 模型中)结合词或字嵌入的网络模型来进行命名实体识别。

下面将会用 Word2vec + BiLSTM + CRF 网络模型来解释 CRF 层是如何工作的。

1.1 BiLSTM-CRF 模型

数据标签

假设,我们的数据集中有两种实体类型:人名和机构名,因此,在我们的数据集中有 5 种实体标签。
数据标签

BiLSTM-CRF 模型

BiLSTM-CRF 模型1
BiLSTM-CRF 模型2

1.2 添加 CRF 层的好处

如果我们不加 CRF 层

如果我们不加 CRF 层1
如果我们不加 CRF 层2

CRF 层可以从训练数据学习限制

CRF 层可以从训练数据学习限制

2、CRF 层

在 CRF 层的损失函数中,我们有两种类型的分数 ① Emission score(发射分数)、② Transition score(转移分数),这两分数是 CRF 层的关键。

2.1 Emission score 发射分数

发射分数

2.2 Transition score 转移分数

转移分数1
转移分数

2.3 CRF loss function 损失函数

本部分内容:CRF 的损失函数(由真实路径分数和所有可能路径的总分数构成)
损失函数1
损失函数

2.4 Real path score 真实路径分数

本部分内容:了解如何去计算一个句子真实标签的分数
真实路径分数
真实路径分数2

2.5 The score of all the possible paths 所有可能路径的总分数

本部分内容:学习如何去计算所有可能路径的总分数,并用一个一步步的例子来讲解
所有可能路径的总分数-第一步
所有可能路径的总分数-第2步
所有可能路径的总分数-第3步1

所有可能路径的总分数-第3步2
所有可能路径的总分数-第3步3

所有可能路径的总分数-第3步4
所有可能路径的总分数-第3步5

2.6 Infer the labels for a new sentence 预测一个新句子的标签

本部分内容:当应用模型到测试集上时,探索如何预测一个新的句子的标签(如:句子中每个单词的词性)
预测一个新句子的标签-第1步
预测一个新句子的标签-第2步1
预测一个新句子的标签-第2步2
预测一个新句子的标签-第2步3
预测一个新句子的标签-第2步4

预测一个新句子的标签-第3步


—— 说明:本文写于 2022.12.30-12.31、2023.1.1-1.3

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/135913.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

华为云工程师HCIA——华为虚拟化平台使用与管理

一、FusionCompute计算虚拟化介绍 1、计算虚拟化相关概念 1.1、虚拟化介绍虚拟化介绍 1.2、虚拟化的特点(反过来考定义也要会) •分区:分区意味着虚拟化层为多个虚拟机划分服务器资源的能力;每个虚拟机可以同时运行一个单独的操…

xxx.Caffeine进程缓存

Caffeine 是基于Java 8的高性能&#xff0c;接近最佳的缓存库。看上图 赋代码&#xff1a; <dependency><groupId>com.github.ben-manes.caffeine</groupId><artifactId>caffeine</artifactId> </dependency> package com.heima.item.con…

网络编程 - Linux socket编程

前言 socket(套接字)是网络编程编程的一种技巧。通过socket不仅可以实现跨进程通信&#xff0c;还可以实现跨主机的网络通信。使用这种技术&#xff0c;就可以实现全国各地的通讯。例如&#xff1a;深圳的一台电脑接收来自北京一台电脑发来的信息。   本篇不涉及太底层的网络原…

hudi系列-索引机制

1. 索引机制 hudi的索引机制是为了加速upsert/delete操作&#xff0c;它维护着&#xff08;分区 key&#xff09;-> fileID之间的映射关系&#xff0c;所以可以减少对非必要base文件的合并 key是指索引key&#xff0c;可以是表的任意字段&#xff0c;在全局索引中常用主键…

Linux chmod命令详解,Linux修改文件权限

「作者主页」&#xff1a;士别三日wyx 「作者简介」&#xff1a;CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 chmod 命令一、常用操作1. 字母形式2. 数字形式3. 递归设置二、文件权限解读三、数字权限四、特殊的root权限五、SUID详解1. 设置SUID2. 取消…

chatgpt小程序版本来了,解决你们手机上想用用不了的问题,chatgpt接口用到小程序里面,调用openai接口,提供前后端源码,可以私有部署使用

现在的chatgpt被玩的都开始加广告&#xff0c;又办会员什么的的&#xff0c;今天就把小程序的前后端无广告版本源码和部署方式说一下。 先看效果&#xff1a; 部署环境 前端用的uniapp&#xff0c;基础模版&#xff0c;单页面没有太多引用 后端使用的python的falsk框架&#…

javassist学习

Java 字节码以二进制的形式存储在 .class 文件中&#xff0c;每一个 .class 文件包含一个 Java 类或接口。Javaassist 就是一个用来 处理 Java 字节码的类库。它可以在一个已经编译好的类中添加新的方法&#xff0c;或者是修改已有的方法&#xff0c;并且不需要对字节码方面有深…

第29届中国国际广告节,酷开科技喜提三奖

第29届中国国际广告节&#xff0c;酷开科技喜提三奖 12月21日至12月23日&#xff0c;在风景如画的鹭岛厦门&#xff0c;第29届中国国际广告节于厦门国际会展中心隆重举行。经过几十年的高歌前行&#xff0c;中国国际广告节业已成为业界的盛会&#xff0c;更是中国广告业发展的…

(十)VUEElement

一、 VUE 1. 概述 Vue 是一套前端框架&#xff0c;免除原生JavaScript中的DOM操作&#xff0c;简化书写。基于MVVM(Model-View-ViewModel)思想&#xff0c;实现数据的双向绑定&#xff0c;将编程的关注点放在数据上。官网&#xff1a;https://cn.vuejs.org 2. 快速入门 &#…

CRM管理系统哪个好用?这五款CRM系统值得推荐

选择一款合适的CRM系统&#xff0c;可以有效解决企业生产经营中分散的数据、不规则的工作流程、缺乏客户服务、销售预测不准确、远程工作效率低、错误的客户沟通、几乎没有销售和市场合作、报告不足等方面的业务难题。 CRM系统的选型可以从以下方面考虑&#xff1a; 下面分享几…

Faster RCNN网络源码解读(Ⅺ) --- 预测结果后处理及预测过程(完结撒花)

目录 一、回顾以及本篇博客内容概述 二、代码解析 2.1 ROIHead类&#xff08;承接上篇博客的2.1节&#xff09; 2.1.1 初始化函数 __init__回顾 2.1.2 正向传播forward回顾及预测结果后处理 2.1.3 postprocess_detections 2.2 FasterRCNNBase类前向传播过程 2.3 Genera…

MySQL Workbench基本用法

MySQL Workbench相当于SQL语言的解释器 目录 1 打开 2 连接数据库 3 创建数据库 4 创建数据表 4.1 字段类型 4.2 字段选项 4.3 其他 5 操作表中的数据 5.1 添加 5.2 更改 5.3 删除 6 代码编辑器 7 保存sql代码 8 加载sql代码 1 打开 搜索MySQL …

滑动窗口题型

先看一个题目&#xff1a;题目描述 题目描述&#xff1a;给你一个字符串 s 、一个字符串 t 。返回 s 中涵盖 t 所有字符的最小子串。如果 s 中不存在涵盖 t 所有字符的子串&#xff0c;则返回空字符串 "" 。 例如&#xff1a; 输入&#xff1a;s "ADOBECODE…

移动Web【rem、flexible、Less、vw / vh】

文章目录remflexibleLessvw / vhrem 网页效果 屏幕宽度不同&#xff0c;网页元素尺寸不同&#xff08;等比缩放&#xff09; px单位或百分比布局可以实现吗&#xff1f; px单位是绝对单位百分比布局特点宽度自适应&#xff0c;高度固定 适配方案 remvw / vh rem单位 相对单位…

Homekit智能家居DIY之智能通断开关

智能通断器&#xff0c;也叫开关模块&#xff0c;可以非常方便地接入家中原有开关、插座、灯具、电器的线路中&#xff0c;通过手机App或者语音即可控制电路通断&#xff0c;轻松实现原有家居设备的智能化改造。 随着智能家居概念的普及&#xff0c;越来越多的人想将自己的家改…

SQL SELECT DISTINCT 语句

SELECT DISTINCT 语句用于返回唯一不同的值。 SQL SELECT DISTINCT 语句 在表中&#xff0c;一个列可能会包含多个重复值&#xff0c;有时您也许希望仅仅列出不同&#xff08;distinct&#xff09;的值。 DISTINCT 关键词用于返回唯一不同的值。 SQL SELECT DISTINCT 语法 …

如何从零开始开发一个小程序

如何从零开始开发一个小程序开始申请账号开发设置开发工具新建小程序阅读文档模版语法项目架构开始编写基础语法wx:for循环wx:if判断页面导航自定义组件引用样式修改单行、多行省略flex布局grid布局发布开始 申请账号 小程序注册页 开发设置 登录 小程序后台 &#xff0c;…

【Vue2+Element ui通用后台】Mock.js

文章目录Mock.js首页数据调用mock数据并完成布局Mock.js Mock.js 官网 Mockjs Github地址 作用&#xff1a;生成随机数据&#xff0c;拦截 Ajax 请求 使用npm i mockjs进行安装&#xff0c;然后在 api 下新建 mock.js import Mock from mockjs// 定义mock请求拦截 Mock.mock…

【CPU是如何执行程序的?】

CPU是如何执行程序的&#xff1f;1、、硬件结构介绍1.1、CPU1.2、内存1.3、总线1.4、输入/输出设备二、程序执行的基本过程三、a11执行的详细过程现代计算机的基本结构为五个部分&#xff1a;CPU、内存、总线、输入/输出设备。或许你了解了这些概念&#xff0c;但是你知道a11在…

leetcode每日一题(python)2023-1.2 1801. 积压订单中的订单总数 (middle)

leetcode每日一题 &#x1f6a9; 学如逆水行舟&#xff0c;不进则退。 —— 《增广贤文》 题目描述&#xff1a; 给你一个二维整数数组 orders &#xff0c;其中每个 orders[i] [price(i), amount(i), orderType(i)] 表示有 amount(i)( )笔类型为 orderType(i) 、价格为 pric…