41.RNN循环网络-航空评论情感预测

RNN(循环神经网络)主要处理序列数据

LSTM就是循环神经网络,GRU也是一个循环神经网络

我们下面使用循环神经网络对航空评论数据集进行处理

航空评论数据集是这个名为Tweets的csv文件

我们打开看一下

数据集是脱敏处理过的,他的内容包含下列部分

  • tweet_id 推特id
  • airline_sentiment 对航空公司的情绪(积极[postive],消极[negative],中性[neutral])
  • airline_sentiment_confidence 该航班的评分,该值用浮点数进行表示
  • negativereason 消极情绪的原因,这个是用户的留言,有的直接说是一次不好的飞行,有的说不能告诉你

  • negativereason_confidence 消极情绪的程度
  • airline 航空公司的名字,基本上都是Virgin America(维珍美国航空)
  • airline_sentiment_gold 航空情绪金。这一列是空的
  • name 这一列应该是推特的昵称
  • retweet_count 转发数量
  • text 文本

  • tweet_coord 推特坐标,这个应该是经纬度那种

  • tweet_created 发推特的时间

  • tweet_location 推特位置

  • 用户时区

我们使用上面提到的test与airline_sentiment,来预测一段评论是积极情绪还是消极情绪

下面是代码部分

目录

1  导入库

2  读取数据集

3  处理数据集

3.1  取出需要的两列

3.2  平衡积极与消极数据数量

3.3  乱序数据集

3.4  处理 airline_sentiment

3.5  处理 text

3.5.1  删去@内容,并将其正则化

3.5.2  用一个数字代表评论中的每一个单词

3.5.3  统一所有评论长度

4  创建网络

5  编译模型

6  训练模型

7  保存模型

8  预测模型


1  导入库

2  读取数据集

3  处理数据集

3.1  取出需要的两列

读取后我们取出airline_sentiment和test这两列

我们看一下现在的data

发现只有这两列内容了

我们用unique看一下是否在这一列只有三种值

发现只有这三种值

之后我们使用value_counts,看一下每个值的数量

发现消极评论居多,其次是中性,最后是好评

3.2  平衡积极与消极数据数量

我们在本次训练只判断是积极情绪或是消极情绪,现在我们需要保证数据的均衡,消极评论远大于积极评论是对训练结果有影响的,所以我们现在取出2363个消极评论与积极评论

  • iloc是取该列的前若干行

这样我们积极数据与消极数据都是2363个了,现在我们把两种评论合起来

之后我们看一下data的shape

发现有4726行,2列

3.3  乱序数据集

我们现在使用sample对其进行乱序

3.4  处理 airline_sentiment

下面我们对数据集进行处理,我们用0表示negative,用1表示positive

现在data中就加入了attitude这一列,这一列的0是消极评论,1是积极评论,之后我们就可以把airline_sentiment删掉了

我们看一下当前的data

3.5  处理 text

3.5.1  删去@内容,并将其正则化

这些@是字符是不影响评论是积极还是消极的,所以我们要把他消除掉

我在这里做个例子

这样就能得到消除了所有@内容的字符

之后我们再使用正则,提取字符A-Z,a-z,和另外六个字符,之后我们再将其赋值给data中的text

我们现在看一下data

发现前面是处理好的语句,后面是对应的态度

3.5.2  用一个数字代表评论中的每一个单词

我们先看一下评论有多少个英文单词(包括叹号这种符号)

我们看一下当前word_set的长度,此处要加1,因为后面我们会把未正则的字符归到0

是6789个,由于每次随机的评论内容不同,所以单词量也会有所变化

之后我们给每一个单词一个索引值,之后做成一个字典,由于我们会有不在正则范围内的字符,我们将其归到索引0,所以我们在字典中从1开始索引,之后我们看一下word_dict

我们要给这里print出来的结果复制出来,之后预测的时候我们要用

然后我们把索引后的值给到一个新的变量data_comment

3.5.3  统一所有评论长度

我们首先找到最大评论的长度

之后我们把评论填充到longest_comment这样长

4  创建网络

Embedding的50是神经元个数,LSTM的64也是神经元个数,我们可以自定

我们看一下这个模型

5  编译模型

6  训练模型

  • validation_split的意思是指定一部分数据作为测试数据,我当前使用的是0.2,也就是20%的数据作为测试数据

我们的数据量不大,速度很快,所以就不加入检查点了,只训练了10个epoch,我们直接看给出的结果就行了

最终发现准确度是0.87左右,还能看

7  保存模型

8  预测模型

我们发现每一个词都有它的情感趋向,我们定义的是0为消极,1为积极

我们可以对这三个结果进行处理

我们再加上not看一下

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
1. ARIMA 2. SARIMA 3. VAR 4. Auto-ARIMA 5. Auto-SARIMA 6. LSTM 7. GRU 8. RNN 9. CNN 10. MLP 11. DNN 12. MLP-LSTM 13. MLP-GRU 14. MLP-RNN 15. MLP-CNN 16. LSTM-ARIMA 17. LSTM-MLP 18. LSTM-CNN 19. GRU-ARIMA 20. GRU-MLP 21. GRU-CNN 22. RNN-ARIMA 23. RNN-MLP 24. RNN-CNN 25. CNN-ARIMA 26. CNN-MLP 27. CNN-LSTM 28. CNN-GRU 29. ARIMA-SVM 30. SARIMA-SVM 31. VAR-SVM 32. Auto-ARIMA-SVM 33. Auto-SARIMA-SVM 34. LSTM-SVM 35. GRU-SVM 36. RNN-SVM 37. CNN-SVM 38. MLP-SVM 39. LSTM-ARIMA-SVM 40. LSTM-MLP-SVM 41. LSTM-CNN-SVM 42. GRU-ARIMA-SVM 43. GRU-MLP-SVM 44. GRU-CNN-SVM 45. RNN-ARIMA-SVM 46. RNN-MLP-SVM 47. RNN-CNN-SVM 48. CNN-ARIMA-SVM 49. CNN-MLP-SVM 50. CNN-LSTM-SVM 51. CNN-GRU-SVM 52. ARIMA-RF 53. SARIMA-RF 54. VAR-RF 55. Auto-ARIMA-RF 56. Auto-SARIMA-RF 57. LSTM-RF 58. GRU-RF 59. RNN-RF 60. CNN-RF 61. MLP-RF 62. LSTM-ARIMA-RF 63. LSTM-MLP-RF 64. LSTM-CNN-RF 65. GRU-ARIMA-RF 66. GRU-MLP-RF 67. GRU-CNN-RF 68. RNN-ARIMA-RF 69. RNN-MLP-RF 70. RNN-CNN-RF 71. CNN-ARIMA-RF 72. CNN-MLP-RF 73. CNN-LSTM-RF 74. CNN-GRU-RF 75. ARIMA-XGBoost 76. SARIMA-XGBoost 77. VAR-XGBoost 78. Auto-ARIMA-XGBoost 79. Auto-SARIMA-XGBoost 80. LSTM-XGBoost 81. GRU-XGBoost 82. RNN-XGBoost 83. CNN-XGBoost 84. MLP-XGBoost 85. LSTM-ARIMA-XGBoost 86. LSTM-MLP-XGBoost 87. LSTM-CNN-XGBoost 88. GRU-ARIMA-XGBoost 89. GRU-MLP-XGBoost 90. GRU-CNN-XGBoost 91. RNN-ARIMA-XGBoost 92. RNN-MLP-XGBoost 93. RNN-CNN-XGBoost 94. CNN-ARIMA-XGBoost 95. CNN-MLP-XGBoost 96. CNN-LSTM-XGBoost 97. CNN-GRU-XGBoost 98. ARIMA-ANN 99. SARIMA-ANN 100. VAR-ANN 上面这些缩写模型的全称及相关用途功能详细解释
07-15
以下是对缩写模型的全称及相关用途功能的详细解释: 1. ARIMA (AutoRegressive Integrated Moving Average): 适用于平稳时间序列数据的预测,结合了自回归 (AR) 和移动平均 (MA) 的模型。 2. SARIMA (Seasonal ARIMA): 在ARIMA模型基础上添加了对季节性因素的建模,适用于带有季节性的时间序列数据的预测。 3. VAR (Vector Autoregression): 用于多变量时间序列数据的预测,基于自回归模型,能够捕捉变量之间的相互依赖关系。 4. Auto-ARIMA: 自动选择ARIMA模型的参数,通过对多个模型进行评估和选择来实现自动化。 5. Auto-SARIMA: 自动选择SARIMA模型的参数,通过对多个模型进行评估和选择来实现自动化。 6. LSTM (Long Short-Term Memory): 长短期记忆网络,一种适用于处理长期依赖关系的循环神经网络,用于时间序列数据的建模和预测。 7. GRU (Gated Recurrent Unit): 一种类似于LSTM的循环神经网络,具有更简化的结构,适用于时间序列数据的建模和预测。 8. RNN (Recurrent Neural Network): 适用于处理序列数据的神经网络模型,能够捕捉时间序列的动态特性。 9. CNN (Convolutional Neural Network): 卷积神经网络,主要用于图像处理,但也可以用于时间序列数据的预测,特别擅长局部模式的识别。 10. MLP (Multi-Layer Perceptron): 多层感知机,一种前馈神经网络模型,适用于处理非线性关系的时间序列数据。 11. DNN (Deep Neural Network): 深度神经网络,具有多个隐藏层的神经网络模型,能够学习更复杂的特征表示。 12. MLP-LSTM: 结合了多层感知机和长短期记忆网络的模型,用于时间序列数据的建模和预测。 13. MLP-GRU: 结合了多层感知机和门控循环单元网络的模型,用于时间序列数据的建模和预测。 14. MLP-RNN: 结合了多层感知机和循环神经网络的模型,用于时间序列数据的建模和预测。 15. MLP-CNN: 结合了多层感知机和卷积神经网络的模型,用于时间序列数据的建模和预测。 这些模型可以根据具体问题和数据的特性来选择和使用,以获得最佳的时间序列预测性能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Suyuoa

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

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

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

打赏作者

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

抵扣说明:

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

余额充值