bilstm-crf
LSTM+CRF 解析(原理篇)
超级详细手把手讲解BiLSTM+CRF完成命名实体识别(一)
超级详细手把手讲解BiLSTM+CRF完成命名实体识别(二)
超级详细手把手讲解BiLSTM+CRF完成命名实体识别(三)
转载自作者bobobe
本篇文章假设你已有lstm和crf的基础。
BiLSTM+softmax
lstm也可以做序列标注问题。如下图所示:
双向lstm后接一个softmax层,输出各个label的概率。那为何还要加一个crf层呢?
我的理解是softmax层的输出是相互独立的,即虽然BiLSTM学习到了上下文的信息,但是输出相互之间并没有影响,它只是在每一步挑选一个最大概率值的label输出。这样就会导致如B-person后再接一个B-person的问题。而crf中有转移特征,即它会考虑输出label之间的顺序性,所以考虑用crf去做BiLSTM的输出层。BiLSTM+crf的基本思想
BiLSTM+crf的结构如图所示:
对于每一个输入我们得到一个预测label序列定义这个预测的得分为:
其中Pi,yi为第i个位置softmax输出为yi的概率,Ayi,yi+1为从yi到yi+1的转移概率,当tag(B-person,B-location。。。。)个数为n的时候,转移概率矩阵为(n+2)*(n+2),因为额外增加了一个开始位置和结束位置。这个得分函数S就很好地弥补了传统BiLSTM的不足,因为我们当一个预测序列得分很高时,并不是各个位置都是softmax输出最大概率值对应的label,还要考虑前面转移概率相加最大,即还要符合输出规则(B后面不能再跟B),比如假设BiLSTM输出的最有可能序列为BBIBIOOO,那么因为我们的转移概率矩阵中B->B的概率很小甚至为负,那么根据s得分,这种序列不会得到最高的分数,即就不是我们想要的序列。
BiLSTM+crf的训练
训练思想很巧妙。
首先我们需要训练的参数为:
1.BiLSTM中的参数
2.转移概率矩阵A
对于每个训练样本X,求出所有可能的标注序列y的得分S(X,y)(注意这里应该不用遍历所有可能的y,维特比算法应该用得上),对所有得分进行归一化:
这里分子上的y是正确标注序列(因为我们是一个有监督学习)
下面引出损失函数(虽然我感觉这不应该称为“损失”),对真实标记序列y的概率取log:
那么我们的目标就是最大化上式(即真实标记应该对应最大概率值),因为叫损失函数,所以我们也可以对上式取负然后最小化之,这样我们就可以使用梯度下降等优化方法来求解参数。在这个过程中,我们要最大化真实标记序列的概率,也就训练了转移概率矩阵A和BiLSTM中的参数。BiLSTM+crf的预测
当模型训练完毕后,就可以去测试了。
预测的时候,根据训练好的参数求出所有可能的y序列对应的s得分*(这里应该也可以利用维特比算法)*,然后取:
做为预测结果输出。
文章中图片来自:https://createmomo.github.io/2017/09/12/CRF_Layer_on_the_Top_of_BiLSTM_1/
参考文章:
1.https://createmomo.github.io/2017/09/12/CRF_Layer_on_the_Top_of_BiLSTM_1/(特别感谢这篇文章的精彩阐述,本文的大多想法来自于此)
2.https://arxiv.org/pdf/1603.01360.pdf(Neural Architectures for Named Entity Recognition)
http://www.taodudu.cc/news/show-5088291.html
相关文章:
- NLP15:使用BiLSTM、BiLSTM-CRF、BiLSTM-Attention、Bert-BiLSTM-CRF进行命名实体识别
- BiLSTM之二:工程应用须知
- BiLSTM+CRF
- 详解BiLSTM
- BilSTM 实体识别_BiLSTM-CRF
- 学习BiLSTM
- BiLSTM维度详解
- BiLSTM介绍
- 双向长短期记忆网络(Bi-LSTM)
- 一幅图真正理解LSTM、BiLSTM
- 0基础学软件测试必看,2022最详细软件测试流程
- 语音识别快速添加字幕,字幕助手,字幕通
- 有好用文字转语音的软件吗?
- 什么是语音聊天软件源码,语音直播间礼物如何开发
- 音频特效实践
- webrtc 语音流java_Web语音处理 - Web Audio API WebRTC
- 语音识别专用云软件
- 一秒语音是哪个软件_一秒语音包软件下载-一秒语音包app安卓版下载_天尚网
- 兰州市5G产业竞争分析及投资策略研究咨询报告2021~2027年
- 全面解读5G产业链及未来趋势
- 2018-2019 中国5G产业全景图谱及发展趋势分析
- 5G建设应用产业链全视图!
- 报告下载 | 科创板系列- 5G产业链全景图
- 2019中国5G产业市场研究报告
- 37页PPT,全面解读5G产业链及未来趋势!
- 视频云技术系列 - 5G 700MHz建设方案及产业链
- 5G MEC分流方案探讨
- 加快5G产业发展,湖南出台21条政策措施
- 数据中心定义分类与产业链分析
- 5G调研分析
bilstm-crf相关推荐
- 零基础入门--中文命名实体识别(BiLSTM+CRF模型,含代码)
https://github.com/mali19064/LSTM-CRF-pytorch-faster 中文分词 说到命名实体抽取,先要了解一下基于字标注的中文分词. 比如一句话 "我爱北 ...
- Pytorch Bi-LSTM + CRF 代码详解
久闻LSTM + CRF的效果强大,最近在看Pytorch官网文档的时候,看到了这段代码,前前后后查了很多资料,终于把代码弄懂了.我希望在后来人看这段代码的时候,直接就看我的博客就能完全弄懂这段代码. ...
- pytorch BiLSTM+CRF代码详解 重点
一. BILSTM + CRF介绍 https://www.jianshu.com/p/97cb3b6db573 1.介绍 基于神经网络的方法,在命名实体识别任务中非常流行和普遍. 如果你不知道Bi- ...
- 高级教程: 作出动态决策和 Bi-LSTM CRF 重点
https://www.zhihu.com/question/35866596 条件随机场 CRF(条件随机场)与Viterbi(维特比)算法原理详解 https://blog.csdn.net/qq ...
- pytorch实现BiLSTM+CRF用于NER(命名实体识别)
pytorch实现BiLSTM+CRF用于NER(命名实体识别) 在写这篇博客之前,我看了网上关于pytorch,BiLstm+CRF的实现,都是一个版本(对pytorch教程的翻译), 翻译得一点质 ...
- PyTorch 高级实战教程:基于 BI-LSTM CRF 实现命名实体识别和中文分词
20210607 https://blog.csdn.net/u011828281/article/details/81171066 前言:译者实测 PyTorch 代码非常简洁易懂,只需要将中文分词 ...
- 源码阅读笔记 BiLSTM+CRF做NER任务 流程图
源码阅读笔记 BiLSTM+CRF做NER任务(二) 源码地址:https://github.com/ZhixiuYe/NER-pytorch 本篇正式进入源码的阅读,按照流程顺序,一一解剖. 一.流 ...
- BiLSTM+CRF的损失由发射矩阵和转移矩阵计算而得 BiLSTM+CRF命名实体识别:达观杯败走记(下篇
如果是训练,那么直接用发射矩阵和真实标签去计算Loss,用于更新梯度. 这需要用到CRF中的forward函数. 如果是预测,那么就用发射矩阵去进行维特比解码,得到最优路径(预测的标签). 这需要用到 ...
- bert+crf可以做NER,那么为什么还有bert+bi-lstm+crf ?
我在自己人工标注的一份特定领域的数据集上跑过,加上bert确实会比只用固定的词向量要好一些,即使只用BERT加一个softmax层都比不用bert的bilstm+crf强.而bert+bilstm+c ...
- 代码实现中文命名实体识别(包括多种模型:HMM,CRF,BiLSTM,BiLSTM+CRF)
作者 | 忆臻 地址 | https://zhuanlan.zhihu.com/p/100969186 专栏 | 机器学习算法与自然语言处理 代码实现中文命名实体识别(包括多种模型:HMM,CRF,B ...
最新文章
- 在伦敦工作生活—随笔-1
- 在网页中显示数字时钟
- matlab 小括号
- mysql数据库备份方式,跳槽大厂必看!
- html 报表插件,轻量级图形报表插件JSCharts
- 前端累加nan怎么解决_前端面试,你有必要知道的一些JavaScript 面试题(上)
- 无显示器u盘安装centos_无光驱情况下,U盘启动安装CentOS (实测 笔记)
- 判断一个字符串出现次数最多的字符,并返回这个字符和次数
- Linux 中文文件名乱码解决 FTP文件名乱码
- java开发常用网站有哪些类型_可以在线编程的学习类网站有哪些?
- 天龙八部科举答题问题和答案(全1/8)
- 在ensp中配置交换机interface GigabitEthernet 1/0/1报错
- java华氏温度与摄氏度的互相转换
- react钩子_了解用户的React钩子
- 简析XDP的重定向机制
- a commit git 参数是什么意思_Git中的git reset的三种参数的区别
- 人工智能全面战胜人类?下一步是取代人类?
- SEO高质量的伪原创怎么写?
- 【Open3d报错】 无法使用open3d显示图像
- HANA服务器配额设置disk quota exceed(如何查看和取消配额)