ADM-201 dump PMP dumps pdf SSCP exam materials CBAP exam sample questions

《了解深度学习》#3 如何做情感分析 – 译学馆
未登录,请登录后再发表信息
最新评论 (0)
播放视频

《了解深度学习》#3 如何做情感分析

How to Do Sentiment Analysis - Intro to Deep Learning #3

大家好 我是Siraj
今天我们将用机器学习
来帮助我们理解人的情绪
我们的情商使我们有别于地球上的其它生物
这些情绪可能很简单
当你非常兴奋
你只能听到Daddy Yankee的Gasolina
我们发明了语言来向其他人表达情绪
但有时候语言不足以表达情绪
一些情绪无法直接用英文翻译
比如 德语中的waldeinsamkeit
是一种独自在树林里的感觉
和大自然相连
在日语中 mononoaware指的是对世事无常的感知
和时光流逝时感到的淡淡忧伤
表达情绪很难 更别说理解情绪了
但这正是人工智能可以帮助我们的地方
人工智能比我们更理解我们自己
通过数据分析 帮助我们做出最佳决定
从而实现我们的目标
就像一个人生教练或者治疗专家
或者Denzel Washington (美国黑人演员)
但它是如何做到这一点的呢
情感分析主要有两种方法
第一种方法基于词典
首先我们把文本分割为更小的记号
如词语 短语或整个句子
这个过程被称为记号化
然后我们记录每个单词出现的次数
记录的结果被称为词袋模型
然后从词典中查出每个单词的主观性
这个词典是一个由研究人员预先记录的
包含单词情绪值的数据库
一旦有了这些情绪值
就可以计算整个文本的主观情感
另一种方法是使用机器学习
如果有一个标记正面和负面情绪推文的语料库
就可以基于它训练一个分类器
然后给它一条新的推文
它会分类该推文是正面或负面的
那么哪种方法更好呢
不要问我 不 尽管问我
词典方法更容易使用
但机器学习方法更精确
词典方法不适合解析一些语言中的微妙之处
比如讽刺
表面上是一个意思 实际上是另一个意思
但深度神经网络可以理解这些微妙之处
因为神经网络不分析文字表面的意思
它们会创建学习内容的抽象表征
这些泛化的结果被称为矢量
我们可以用矢量将数据进行分类
让我们通过做一个电影评论的情感分类器
来学习一下矢量吧
我还将教你如何在云端运行它
我们需要的唯一依赖是tflearn
因为它是开始建造深度神经网络最容易的方式
引入几个内置的辅助函数
我会在用到时解释它们
第一步是收集数据集
tflearn有很多预先处理过的数据集供我们使用
我们将使用imdb电影评分数据集
用load_data函数加载数据
这会从网上下载数据集
指定存储数据集的路径
文件扩展名是pkl 代表它是一个字节流
这让以后把数据集转换成其他python对象变得容易
比如列表和元组
我们需要数据库中一万个单词
我们只想要用百分之十的数据做为校验数据集
因此 把最后一个参数设为0.1
load_data函数会返回电影评论
并划分成训练数据集和测试数据集
进一步把这些数据集划分为评论和标签
把它们设为X和Y的值
我们的模型从训练数据学习
校验数据是训练过程的一部分
训练数据有助于我们拟合权重
校验数据使我们能相应地调整超参数
进而帮助我们防止过度拟合
我们的模型通过对比预测的和实际的标签
用测试数据测试自己
毁了自己前先测试一下自己
现在已经将数据分为两个数据集
让我们一起做一些预处理
我们不能直接把文字流直接提供给神经网络
我们需要把输入矢量化
神经网络本质上是在矩阵上进行一系列运算的算法
因此 把输入数值化或矢量化是必要的
pad_sequence函数将把评论文字进行这样的转化
它会把每条评论转化为矩阵 然后填充这个矩阵
填充是为了确保输入维度的一致性
它将在每个序列的末端填充一个0
直到序列长度达到设定的最大值
序列最大长度设为100
我们还需要把标签矢量化
用to_categorical函数可以轻易做到
转化后的矢量是二元矢量
1代表正 0代表负
唷 等一下
矢量给我的感觉就像
我把它提供给神经网络
但这让我很不爽
输入的长度必须固定
很小的数字集
因此 我放弃了它
取而代之的是递归神经网络
可以处理如输入的文字和图片中的隐藏文字的序列
把文字矢量化并提供给递归神经网络
逐渐地训练嵌入的单词矢量
把单词数字化 进而可以通用
我将以歌词的形式把一对多映射带给你
用每行代码直观地定义网络中每一层
首先是我们的输入层
它为我们的网络提供数据
我们设定的唯一参数是输入形状
第一个元素是批量大小
把它设置为none 长度设置为100
因为我们将最大序列长度设置为100
下一层是嵌入层
第一个参数是来自前一层的输出矢量
顺便说一下 我们编写的每一层
我们都会使用前一层的输出作为输入
这是数据在神经网络中的流动方式
在每一层数据都会转变
就像一个七层浸泡 (美国开胃菜) 的计算
输入维度设置为10000
因为这是之前从数据集加载的文字的数量
把输出维度设置为128
这是嵌入输出维度的数量
接下来 把这些值提供给长短期记忆层
它使我们的网络从开端记录数据序列
这将会使预测更加准确
将dropout参数设置为0.8
这是一种通过随机打开和关闭网络中的不同路径
防止过度拟合的技巧
我们的下一层是完全连接的
意味着前一层的每个神经元同这一层的每个神经元已连接
我们有一套从之前的层中学习到的特征向量
添加一个完全连接的层
是学习它们非线性的组合
的一种节省计算能力的方式
它有两个单位
softmax函数是它的激活函数
用一个矢量的值作为参数
将它压缩成一个矢量的介于0和1的输出概率
这些概率的和为1
我们将在最后的回归层使用这些值
对输入进行回归操作
我们将指定一个优化方法来减小指定的损失函数
以及学习率
它指定网络训练的速度
我们将使用的优化器是adam
它将执行梯度下降
而分类交叉熵是我们的损失函数
它有助于找到预测输出和期望输出的差异
在建立我们的神经网络后
我们可以继续使用tflearn的初始化它
深层神经网络函数
然后调用模型的拟合函数
这将对我们提供的训练和验证数据
启动训练进程
我们还将show_metric设置为true
来查看训练期间的日志和准确性
我们将用AWS在云端演示
我们将使用预制的亚马逊机器映像
它可以用来启动一个实例
它内置了我们需要的每个依赖
包括TensorFlow CUDA和Lil Wayne的证词视频
如果我们点击橙色继续按钮
可以选择想要的实例类型
我将选择最小的实例 因为我还很穷
但理想情况下我们使用更大的带有GPU实例
然后点击一下接受条款
接下来 点击这个按钮转到AWS控制台
过了一会儿 我们的实例将开始运行
复制公共DNS 粘贴到浏览器中
接着是我们指定的访问端口
我们将使用实例ID作为密码
现在我们处于由AMI建造的实例环境中
我们可以玩在AWS上托管的Jupyter Notebook
新建一个笔记本 并在那里粘贴我们的代码
现在我们可以运行它 它将开始训练
总结一下
情感分析的主要有两种方法
使用预制情绪的词典
或使用最先进但计算量更大的深入学习
来从单词学习矢量的一般化表示
前馈网络接受固定长度的输入 如二进制数字
但递归神经网络可以帮助我们学习数据序列
如文本
您可以使用AWS和预先构建的AMI
轻松地在云端训练您的模型
而不涉及依赖性问题
上周编码挑战的冠军是Ludo Bouan
Ludo构建了他的神经网络
该堆叠层就像每层代码一样简单
本周的巫师
第二名是See Jie Xun
他准确地修改了我的代码反映多层向后传播
本周的编码挑战是
用tflearn来训练一个神经网络
从我提供的游戏评论数据集中识别情绪
细节在READ.md文件中
在评论中留下你的GitHub链接
我会在一周内宣布获胜者
如果想看更多这样的视频 请点击订阅按钮
看看这个相关的视频
现在我要弄清楚什么是PyTorch
多谢观看

发表评论

译制信息
视频概述

《了解深度学习》#3 如何做情感分析

听录译者

收集自网络

翻译译者

鹿琳

审核员

审核员_MZ

视频来源

https://www.youtube.com/watch?v=si8zZHkufRY

相关推荐