自然语言处理之基于biLSTM的pytorch立场检测实现
七月 上海 | 高性能计算之GPU CUDA培训
7月27-29日三天密集式学习 快速带你入门阅读全文>
正文共1468个字,15张图,预计阅读时间10分钟。
LSTM理解了,biLSTM其实也就很容易理解了。这个实验,我是根据黑龙家大学nlp实验室的冯志,王潜升师兄的指导以及一篇基于biLSTM的paper实现的,如果想要这个paper的pdf,可以私聊我,一起进步。
biLSTM是双向循环神经网络,简单的理解就是LSTM正向走一遍,又反向走了一遍而已。而对于立场检测这个实验,在这里我借用此论文的图片:
Stance Detection with Bidirectional Conditional Encoding
先说数据文本格式:
数据截图
前面是topic(图里的target),中间是针对这个topic的谈论文本,最后是这个文本在这个topic下的立场,格式简化为:
sentence = topic + text + label
而这里的topic有5种,分别为:
'Atheism', 'Feminist Movement', 'Hillary Clinton', 'Legalization of Abortion', 'Climate Change is a Real Concern'
而上面biLSTM网络流程图就是选取的topic为Legalization of Abortion的例子。
现在我来结合代码详细解释下这个基于biLSTM网络的立场检测实验:
首先,把网络搭建好:
其中,LSTM的参数隐藏层大小hiddenSize和隐藏层数量hiddenNum,我用上面的图详细解释下:
hiddenSize是说LSTM一个cell的参数大小,hiddenNum是说这样大网络循环的个数。
网络搭建好了,数据开始在网络中流动:
假设EmbedSize = 100,hiddenSize = 50
topic,text分别过Embedding Layer,维度分别为:(1,1,100),(1,17,100)
然后分别经过biLSTM Layer,维度为:(1,1,200),(1,17,200)
因为一会要经过一个maxPooling,所以现在先转置下,维度为(1,200,1),(1,200,17):
然后经过一个激活函数tanh,维度不变为(1,200,1),(1,200,17):
在第三维上,分别经过maxPooling,之后的维度为(1, 200, 1),(1, 200, 1):
然后cat在一起,维度为(1, 400, 1):
一会要经过线性层,可以先将没用的第三维扔掉,维度为(1, 400):
然后经过第一个线性层(400->100),维度为(1,100):
然后再经过一个tanh,维度不变(1,100):
最后,经过最后一个线性层(100->3),维度为(1,3):
你或许有疑问,为什么不直接经过一个线性层呢?因为我们要直接从400->3的话,信息会损失很多,如果分别经过两个400->100, 100->3,这样就不会损失那么多信息了,如果你想用三个线性层也可以,自己感觉调到最佳就好。
这个整体的数据流图为:
整个也就算讲完了,其实也想把实验结果摆上来的,可是我的电脑是4G的。。太慢了。。但是如果想要源代码的话,可以私聊我,共同进步。
原文链接:https://www.jianshu.com/p/ec8f424a8ea2
查阅更为简洁方便的分类文章以及最新的课程、产品信息,请移步至全新呈现的“LeadAI学院官网”:
www.leadai.org
请关注人工智能LeadAI公众号,查看更多专业文章
大家都在看
LSTM模型在问答系统中的应用
基于TensorFlow的神经网络解决用户流失概览问题
最全常见算法工程师面试题目整理(一)
最全常见算法工程师面试题目整理(二)
TensorFlow从1到2 | 第三章 深度学习革命的开端:卷积神经网络
装饰器 | Python高级编程
今天不如来复习下Python基础
自然语言处理之基于biLSTM的pytorch立场检测实现相关推荐
- 论文笔记-基于BiLSTM 模型的漏洞检测
一.摘要 首先从源代码中提取方法体,形成方法集:为方法集中的每个方法构建抽象语法树,借助抽象语法树抽取方法中的语句,形成语句集:替换语句集中程序员自定义的变量名.方法名及字符串,并为每条语句分配一 ...
- NLP自然语言处理之基于BiLstm的短文本情感分析
1.BILSTM基本原理 前向的LSTM与后向的LSTM结合成BiLSTM.比如,我们对"我爱中国"这句话进行编码,模型如图1所示. 2.情感分析步骤 收集数据:爬虫爬取 数据预处 ...
- Github标星5.4k+:常见NLP模型的代码实现(基于TensorFlow和PyTorch)
推荐github上的一个NLP代码教程:nlp-tutorial,教程中包含常见的NLP模型代码实现(基于TensorFlow和Pytorch),而且教程中的大多数NLP模型都使用少于100行代码. ...
- 推荐:常见NLP模型的代码实现(基于TensorFlow和PyTorch)
推荐github上的一个NLP代码教程:nlp-tutorial,教程中包含常见的NLP模型代码实现(基于TensorFlow和Pytorch),而且教程中的大多数NLP模型都使用少于100行代码. ...
- 巧用词语角色:基于目标自适应图的跨目标立场检测
©PaperWeekly 原创 · 作者|梁斌.傅勇昊 学校|哈尔滨工业大学(深圳) 研究方向|情感分析.立场识别 摘要 跨目标立场检测(cross-target stance detection)的 ...
- 【深度学习】基于MindSpore和pytorch的Softmax回归及前馈神经网络
1 实验内容简介 1.1 实验目的 (1)熟练掌握tensor相关各种操作: (2)掌握广义线性回归模型(logistic模型.sofmax模型).前馈神经网络模型的原理: (3)熟练掌握基于mind ...
- 【项目实战课】基于BiLSTM+CRF的命名实体识别实战
欢迎大家来到我们的项目实战课,本期内容是<基于BiLSTM+CRF的命名实体识别实战>.所谓项目课,就是以简单的原理回顾+详细的项目实战的模式,针对具体的某一个主题,进行代码级的实战讲解. ...
- 「自然语言处理(NLP)」ACL 阿里(舆论、立场检测) 耶鲁(电子邮件主题生成)
来源:AINLPer微信公众号 编辑: ShuYini 校稿: ShuYini 时间: 2019-8-24 引言 本次为大家推荐两篇文章,第一篇是阿里巴巴团队提出的用于谣言检测和立场分类的多任 ...
- 基于C++的PyTorch模型部署
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 引言 PyTorch作为一款端到端的深度学习框架,在1.0版本之后 ...
最新文章
- 《大数据系统基础》实践项目期末答辩顺利举行 校企联手打造精品实践项目见真章
- 电厂运维的cis数据_【面向运行人员的电站智能运维管家系统】
- 硬件基础:理解串口通信以及232,485,422常见问题
- applicationContext.xml
- python使用jieba得到文本关键词TextRank
- linux得到低权shell,oracle低权限下获取shell
- 免除抠图困扰,专供PNG图片素材网站你知道么?
- php pdo mysql类源码_完整示例php+pdo实现的购物车类
- 腾讯信鸽推送,部分手机不能接收到推送弹窗
- 0-50A-400A霍尔电流传感器应用案例分享
- 计算机常用的内存是rom,手机内存和电脑内存是一样的吗?智能硬件常用的ROM和RAM详解...
- 2022年第一季度保险服务数字化跟踪分析
- LVC 播放器buffer自定义读写的方法
- 盘点40余款好用的项目管理软件
- Python还是很迷茫的小伙伴进来,教你用图秒懂Python
- [JavaWeb开发中]HTTP 协议的基本格式和Fiddler抓包工具
- 用python计算100以内所有奇数的和_用python脚本来计算100以内奇数或者偶数之和
- 好的网站标志设计之意象运用手法
- linux下/proc/pid/maps和pmap命令详解
- 高速信号的完整性分析
热门文章
- map平均准确率_第五篇 目标检测评价标准—MAP
- springboot 获取bean_3W 字的 Spring Boot 超详细总结
- html body最小高度,CSS网页布局中的最小高度问题的解决方法
- 114. Flatten Binary Tree to Linked List【Medium】【将给定的二叉树转化为“只有右孩子节点”的链表(树)】...
- VS2015 applicationhost.config 本地域名访问
- ODAC(V9.5.15) 学习笔记(十九)主键值自动生成
- javaweb框架--自定义标签与freemaker结合
- 老罗Android开发视频教程( android解析json数据 )4集集合
- Ant 配置文件 ( Google App Engine + GWT + JPA )
- vs2008网站模式下不能设置rdlc的数据源