在NER任务中CRF层的作用(例子)

2023-05-16

这里不过多阐述NER任务是啥了,具体来看看他的作用,并且举了一个例子,让大家理解更加深刻

上图说明模型的输出是每个标签的分数。例如,对于w0, 模型的输出为1.5 (B-Person)、0.9 (I-Person)、0.1 (B-Organization)、0.08 (I-Organization)和0.05 (O),这些分数将作为CRF层的输入。然后,将模型预测的所有分数输入CRF层。在CRF层中,选择预测得分最高的标签序列作为最佳答案。例如,对于w0,“B-Person”得分最高(1.5),因此我们可以选择“B-Person”作为其最佳预测标签。同样,我们可以为w1选择“I-Person”,为w2选择“O”,为w3选择“B-Organization”,为w4选择“O”。虽然在这个例子中我们可以得到正确的句子x的标签,但是并不总是这样。再试一下下面图片中的例子。显然,这次的输出是无效的。因为“I-Organization I-Person”不符合我们的规则。

CRF层可以从训练数据中学到约束

CRF层可以在最终的预测标签添加一些约束,以确保它们是有效的。这些约束可以由CRF层在训练过程中从训练数据集自动学习。

约束条件可以是:

  • 句子中第一个单词的标签应该以“B-”或“O”开头,而不是“I-”
  • “B-label1 I-label2 I-label3 I-…”,在这个模式中,label1、label2、label3…应该是相同的命名实体标签。例如,“B-Person I-Person”是有效的,但是“B-Person I-Organization”是无效的。
  • “O I-label”无效。一个命名实体的第一个标签应该以“B-”而不是“I-”开头,换句话说,有效的模式应该是“O B-label”

下面是具体的一个过程

步骤1:模型的Emission和transition得分

假设,我们有一个包含三个单词(w0w1w2)的句子:标签为I1,I2

模型得到了Emission分数,从下面的CRF层得到了transition分数:

Xij表示wi被标记为lj的得分。

tij是从标签i转换成标签j的得分。

步骤2:开始推理

我们将从句子的左到右进行推理算法,如下图所示:

你会看到两个变量:obs和previous。previous存储前面步骤的最终结果。obs表示当前单词的信息。

Alpha0是历史最好得分,Alpha1是历史对应的索引。这两个变量的细节将在它们出现时进行解释。请看下面的图片:你可以把这两个变量当作狗在探索森林时沿路留下的“记号”,这些“记号”可以帮助狗找到回家的路。

现在,我们观察到第一个单词,现在,对于是很明显的。

比如,如果obs=[x01=0.2 , x02=0.8],很显然,w0的最佳的标签是l2。

因为只有一个单词,而且没有标签直接的转换,transition的得分没有用到。

  1. previous扩展成:

  1. obs扩展成:

  1. previousobstransition 分数都加起来:

然后:

为下一次迭代更改previous的值:

比如,如果我们的得分是:

我们的下个迭代的previous是:

previous有什么含义吗? previous列表存储了每个当前的单词的标签的最大的得分。

举个例子:

我们知道在我们的语料中,我们总共只有2个标签,lable1(l1)和lable2(l2)。这两个标签的索引是0和1。

previous[0]是以第0个标签为结尾的路径的最大得分,类似的previous[1]是以第1个标签为结尾的路径的最大得分。在每个迭代中,变量previous存储了以每个标签为结尾的路径的最大得分。换句话说,在每个迭代中,我们只保留了每个标签的最佳路径的信息,具有小得分的路径信息会被丢掉。

回到我们的主任务:

同时,我们还有两个变量用来存储历史信息(得分和索引),Alpha0和Alpha1。

在这个迭代中,我们把最佳得分加上,为了方便,每个标签的最大得分会加上下划线。

另外,对应的列的索引存在里。

说明一下,l1的索引是0,l2的索引是1,所以(1,1)=( l1, l2)表示对于当前的单词wi和标签l(i),当路径是的时候,我们可以得到最大的得分是0.5,当路径是的时候,我们可以得到最大的得分是0.4。是过去的单词的标签。

  1. previous扩展成:

  1. obs扩展成:

  1. previousobstransition 分数都加起来:

然后:

为下一次迭代更改previous的值:

这次迭代我们得到的分数是:

我们得到最新的previous

实际上,previous[0]和previous[1]中最大的那个就是预测的最佳路径。

同时,每个标签和索引的最大得分会加到上和上。

步骤3:找到具有最高得分的最佳路径

这是最后一步!你就快完成了!在此步骤中,将使用Alpha0和Alpha1来查找得分最高的路径。我们将从最后一个到第一个的元素检查这两个列表中。

首先,检查Alpha0和Alpha1的最后一个元素:(0.8,0.9)和(1,0)。0.9表示当label为l2时,我们可以得到最高的路径分数0.9。我们还知道l2的索引是1,因此检查(1,0)[1]=0的值。索引“0”表示前一个标签为l1(l1的索引为0),因此我们可以得到是的最佳路径是

其次,我们继续向后移动并得到Alpha1:(1,1)的元素。从上一段我们知道w1的label是l1(index是0),因此我们可以检查(1,1)[0]=1。因此,我们可以得到这部分的最佳路径: 

我们这个例子中的最佳路径是:

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在NER任务中CRF层的作用(例子) 的相关文章

随机推荐

  • 跳转页面方法

    跳转页面 window location href 61 url 替换当前页面 window location replace url
  • 嵌入式面试总结

    毕业一年多了 xff0c 从事嵌入式开发工作不知不觉也一年多了 xff0c 题主主要从事单片机 xff08 STM32 xff09 应用开发工业类电子方向 xff0c 纯技术涉及到的内容主要是C语言 arm STM32驱动 FreeRTOS
  • 数据库ER图基础概念整理

    ER图分为实体 属性 关系三个核心部分 实体是长方形体现 xff0c 而属性则是椭圆形 xff0c 关系为菱形 ER图的实体 xff08 entity xff09 即数据模型中的数据对象 xff0c 例如人 学生 音乐都可以作为一个数据对象
  • 如何成为一个全能的机器人工程师

    大疆技术总监 xff1a 如何用六年成为一个全能的机器人工程师 机器人学的核心问题是做好和物理世界的交互 现在主流的机器人学分支里 xff0c 处理与物理世界的交互的学科分为三类 xff1a 传感器和处理算法 xff1b 多刚体系统动力学控
  • 任务调度算法

    可实现在单片机裸机下还能有很好的实时性 任务调度器 SCHEDULER TASK scheduler tasks 61 amp P loop 1000Hz 1000 0 0 amp P loop 500Hz 500 0 0 amp P lo
  • 阿里云云计算ACP学习(一)---弹性计算

    弹性计算 1 ECS的概念与定位 概念 xff1a 云服务器ECS xff08 Elastic Compute Service xff09 是一种可弹性伸缩的计算服务 xff0c 可以帮助降低IT成本 xff0c 提升运维效率 xff0c
  • 阿里云云计算ACP学习(二)---弹性存储

    弹性存储 1 阿里云盘古 盘古 飞天底层同一存储平台 盘古的优势 xff1a 盘古系统在一个核心基础层之上 xff0c 通过为不同应用场景而抽象的适配层设计 xff0c 提供了分布式块存储系统和分布式文件系统两种形态 xff0c 基于这一套
  • HDFS读写流程介绍,HDFS读数据和写数据的原理是什么?

    Client 客户端 对HDFS中的数据进行读写操作 xff0c 分别是Client从HDFS中查找数据 xff0c 即为Read 读 数据 Client从HDFS中存储数据 xff0c 即为Write 写 数据 下面我们对HDFS的读写流
  • VIM简单配置step by step

    0 更新vim 更新和安装vim xff0c 保证版本 gt 61 8 0即可 可按照如下命令安装 0 1 安装依赖 yum update y yum install epel release y yum install y git gcc
  • 使用setInterval遇到的陷阱

    setInterval的使用 span class token keyword const span interval span class token operator 61 span span class token function
  • vs本地调试dll文件

    遇到一些问题 xff0c 需要调试dll文件进行调试 xff0c 环境配置如下 打开dll工程 1 鼠标右键dll项目 xff0c 属性 gt 配置属性 gt 调试 gt 命令 在命令中填写使用dll的 exe文件的路经 2 将新生成的dl
  • 对抗样本简介

    一 什么是对抗样本 对抗样本是一类被恶意设计来攻击机器学习模型的样本 它们与真实样本的区别几乎无法用肉眼分辨 xff0c 但是却会导致模型进行错误的判断 对抗样本的存在会使得深度学习在安全敏感性领域的应用收到威胁 如下图所示 xff0c 通
  • QT——QWidget窗体设置背景颜色、背景图、及其注意点

    QWidget窗体设置背景颜色 背景图 及其注意点 前言一 使用调色板QPalette来设置图片二 使用样式表QSS三 使用画笔Qpainter在paintEvent事件中绘制图片 前言 QT设置背景图笔录 一 使用调色板QPalette来
  • Navicat 连接Mysql 8.0以上版本报错1251的详细解决方案(配效果图)

    从MySql5 7版本跳到了Mysql 8 0的版本 xff0c 安装的时候提示链接加密方式已经改变 xff0c 是选择5 xff1f 时代的方式还是新的方式 xff0c 当时 全部选择默认 xff0c 所以选择的新的 加密方式 xff0c
  • 前端入门篇(一)常用五大浏览器及浏览器内核

    一 常见浏览器内核介绍 浏览器是网页运行的平台 xff0c 常见的浏览器有 IE 火狐 xff08 Firefox xff09 谷歌 xff08 Chrome xff09 Safari和Opera等 xff0c 我们平时称为五大浏览器 xf
  • 从输入URL到页面展示这中间发生了什么

    文章目录 从输入URL到页面展示这中间发生了什么Chrome多进程浏览器架构补充1 xff1a 进程和线程 整体的流程1 浏览器接收到输入的URL后 xff0c 先解析URL浏览器发送请求前 xff0c 尝试缓存命中 2 建立URL请求DN
  • 自动化标注技术

    自 动 化 标 注 技 术 自动化标注技术
  • 解决hadoop无法访问8088和19888端口的问题

    50070端口可以访问 xff0c 但是8088和19888端口不可以访问 xff0c 关防火墙 xff0c 看配置文件都是没有问题 xff0c 但就是不能web访问 看下图我的19888和8088前面都是127 0 0 1 xff0c 着
  • PyQt5有关QtWebEngineWidgets的解决办法

    from PyQt5 import QtWebKitWidgets ImportError DLL load failed 找不到指定的程序 这是因为PyQt5在5 6版本以后改用 QtWebEngineWidgets xff0c 所以之前
  • 在NER任务中CRF层的作用(例子)

    这里不过多阐述NER任务是啥了 xff0c 具体来看看他的作用 xff0c 并且举了一个例子 xff0c 让大家理解更加深刻 上图说明模型的输出是每个标签的分数 例如 xff0c 对于w0 模型的输出为1 5 B Person 0 9 I