18.电影评论数据分类

电影评论数据是tensorflow的内置数据

目录

1  导入库

2  导入数据集

3  处理数据集

4  建立模型

5  编译模型

6  训练模型

7  优化模型


1  导入库

2  导入数据集

  • 如果第一次使用会自动下载

我们看一下这个数据集的大致情况

得知了有25000个数据,其余情况不了解

我们取x_train的第0号数据看一下

我们可以看出,这是一组脱敏数据,上面的数字都对应着一个单词,也就是说我们的x_train数据把数字对应字符转换过来,它是一段话

  • 也可能是一个数值对应的是一个字符,具体是什么我们就无从得知了

我们发现在上面这个整形列表中,有少量的5位数数据,如果我们要令这些数据都参与训练,那么我们训练的数据是非常庞大的(因为机器要对每一个索引都进行学习,比如说之前的数据集有3w个词,那么它就得学习3w个词,但是这些其实是少量存在的,所以我们就不要求对这些少量词进学习)

所以我们要定义一个最大值来减少单词量,我们重新读取一下数据

我们再看一下第0个训练元素

发现没有1w以上的数据了

3  处理数据集

我们先看一下每个数据的长度

我们发现长度都是不一的,我们需要让其长度一致,长的剪掉,短的补充到一定的长度,我们这里使用tf.keras.preprocessing.sequence.pad_sequences(),第一个参数为要修改的对象,第二个参数为要修改的长度,我们修改x_train与x_test

我们现在再看一下x_train的所有数据长度

发现都变为300了

我们在看一下y_train(label)

发现它的值不是1就是0,那这个就不用再进行操作了

  • 这种二分类的评论问题,1与0极有可能代表的就是积极或消极,但是哪个是积极哪个是消极就不得而知了

现在我们发现输入是一组数,输出是一个数,我们接下来的操作就和之前的线性回归相似了

4  建立模型

神经网络中我们唯一没使用过层是Embedding,这个层第一个参数为10000,这个是我们的max_word(索引最大值),第二个参数50是指生成的集成张量个数(大致可以理解为神经元个数),第三个参数input_length是我们每一个评论的长度

5  编译模型

6  训练模型

我们把acc与loss画出来看一下

  • acc

  • loss

根据这两条曲线我们很明显的看到模型存在过拟合显现

7  优化模型

我们把模型改为这样

看一下曲线

  • acc

  • loss

我们发现反正是强点儿,但是有限,如果要追求精度的话,我们就需要参考一下别人的网络了

我们在实际应用中,评估一段文字的感情色彩并不使用我上面的方法来评估,它使用的网络叫RNN(循环神经网络),这个我们后面会提到

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Suyuoa

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值