电影评论数据分析 + RPA 机器学习 5 终篇 - (哪吒之魔童降世 - 词向量聚类、舆情分析 )

电影 < 哪吒之魔童降世 > 评论数据分析 + RPA 机器学习 - 电影评论数据分析

电影评论数据分析 + RPA 机器学习 5 终篇 - (哪吒之魔童降世 - 词向量聚类、舆情分析 )

需求库

电影评论数据分析 + RPA 机器学习 5 终篇 - (哪吒之魔童降世 - 词向量聚类、舆情分析 )

配置风格

电影评论数据分析 + RPA 机器学习 5 终篇 - (哪吒之魔童降世 - 词向量聚类、舆情分析 )

数据读取

电影评论数据分析 + RPA 机器学习 5 终篇 - (哪吒之魔童降世 - 词向量聚类、舆情分析 )

检验数据

电影评论数据分析 + RPA 机器学习 5 终篇 - (哪吒之魔童降世 - 词向量聚类、舆情分析 )

1、数据分析

1.1 平均分

电影评论数据分析 + RPA 机器学习 5 终篇 - (哪吒之魔童降世 - 词向量聚类、舆情分析 )

1.2 查看评分星级情况

电影评论数据分析 + RPA 机器学习 5 终篇 - (哪吒之魔童降世 - 词向量聚类、舆情分析 )

1.3 评分星级所占比例 饼图

电影评论数据分析 + RPA 机器学习 5 终篇 - (哪吒之魔童降世 - 词向量聚类、舆情分析 )

1.4 评分星级所占比例 - 柱状图

电影评论数据分析 + RPA 机器学习 5 终篇 - (哪吒之魔童降世 - 词向量聚类、舆情分析 )

2、分词 和 词云可视化

2.1、通过星级转换标签,这里只取两个,即 3 星级前后

#特征值转换
data['target'] = data['star'].map(lambda x:zhuanhuan(x))
data_model = data.dropna()

电影评论数据分析 + RPA 机器学习 5 终篇 - (哪吒之魔童降世 - 词向量聚类、舆情分析 )

电影评论数据分析 + RPA 机器学习 5 终篇 - (哪吒之魔童降世 - 词向量聚类、舆情分析 )

2.2 不使用停用词进行 词云可视化和词频统计

词云展示
电影评论数据分析 + RPA 机器学习 5 终篇 - (哪吒之魔童降世 - 词向量聚类、舆情分析 )

词频统计
电影评论数据分析 + RPA 机器学习 5 终篇 - (哪吒之魔童降世 - 词向量聚类、舆情分析 )

2.3 用停用词进行 词云可视化和词频统计

读取停用词

电影评论数据分析 + RPA 机器学习 5 终篇 - (哪吒之魔童降世 - 词向量聚类、舆情分析 )

词云展示
电影评论数据分析 + RPA 机器学习 5 终篇 - (哪吒之魔童降世 - 词向量聚类、舆情分析 )

自定义词云样式 词云展示
电影评论数据分析 + RPA 机器学习 5 终篇 - (哪吒之魔童降世 - 词向量聚类、舆情分析 )

词频统计
电影评论数据分析 + RPA 机器学习 5 终篇 - (哪吒之魔童降世 - 词向量聚类、舆情分析 )

3、词向量训练聚类(机器学习)

3.1 提取短评内容,存放至 txt

电影评论数据分析 + RPA 机器学习 5 终篇 - (哪吒之魔童降世 - 词向量聚类、舆情分析 )

3.2 写日志文件、训练文本中的词做处理

电影评论数据分析 + RPA 机器学习 5 终篇 - (哪吒之魔童降世 - 词向量聚类、舆情分析 )

3.3 训练模型(训练一次就可以了,有保存的训练结果)

sentences = word2vec.LineSentence(corpus)  # 加载语料,LineSentence用于处理分行分词语料
# sentences1 = word2vec.Text8Corpus(corpus)  #用来处理按文本分词语料

3.4、保存模型,以便重用

model.save("test_01.model")  # 保存模型

3.5、加载模型,验证模型

电影评论数据分析 + RPA 机器学习 5 终篇 - (哪吒之魔童降世 - 词向量聚类、舆情分析 )

预测相似性 similarity
电影评论数据分析 + RPA 机器学习 5 终篇 - (哪吒之魔童降世 - 词向量聚类、舆情分析 )

聚类

# 计算某个词的相关词列表
figures = ['哪吒', '大圣', '动画', '国产', '李靖','东海','敖丙']
结果
> 和[哪吒]最相关的词有:
扒皮  0.9512418508529663
以为  0.9271668195724487
说明  0.9235397577285767
意思  0.9233090877532959
抽筋  0.9229607582092285
恶童  0.9202382564544678
魔珠  0.9181482195854187
身后  0.9179489612579346
原有  0.9178143739700317
原罪  0.917594850063324
> 和[大圣]最相关的词有:
归来  0.9383881092071533
功夫  0.9287267923355103
缺点  0.9204697012901306
超越  0.9197591543197632
情绪  0.9153766632080078
国风  0.9053506255149841
态度  0.9051592350006104
鼓励  0.9017831087112427
刻画  0.8933018445968628
结合  0.880815863609314
> 和[动画]最相关的词有:
达到  0.9259344935417175
编剧  0.9236827492713928
江山  0.9178018569946289
当成  0.9148873686790466
实名  0.9130635261535645
吐槽  0.9103395938873291
可见一斑0.9097391366958618
垃圾  0.9091787338256836
建模  0.9091485142707825
不靠  0.9089758396148682
> 和[国产]最相关的词有:
扎实  0.9579017162322998
仍然  0.953188419342041
可见一斑0.9490149021148682
却是  0.9486746788024902
达到  0.9407460689544678
很棒  0.9359941482543945
炸裂  0.9334836006164551
D   0.9320415258407593
宿命论 0.9318063259124756
层面  0.9313121438026428
> 和[李靖]最相关的词有:
揭穿  0.9492337703704834
阉割  0.9303153157234192
整个  0.9286620020866394
有力  0.9227673411369324
三太子 0.9213778376579285
抽筋  0.9190459251403809
原著  0.9179681539535522
夫妻  0.9151644706726074
身份  0.9144698977470398
面前  0.9143165349960327
> 和[东海]最相关的词有:
矛盾  0.964309573173523
爸爸  0.9575396776199341
国外  0.9550043344497681
宝宝  0.9515457153320312
古代  0.9512234926223755
小组  0.9507986307144165
典范  0.9484009742736816
背影  0.9475916624069214
最低  0.9437093734741211
略显  0.943335771560669
> 和[敖丙]最相关的词有:
太极  0.9614375829696655
浓重  0.9595965147018433
倒错  0.9544601440429688
人心  0.9542381763458252
阴阳  0.9480985403060913
一体  0.9273303151130676
哲学  0.9235407114028931
二元  0.9215266704559326
太乙  0.9214966297149658
全部  0.9210331439971924

4、情感分析

电影评论数据分析 + RPA 机器学习 5 终篇 - (哪吒之魔童降世 - 词向量聚类、舆情分析 )

X 是全部特征。因为只用文本判断情感,所以 X 实际上只有 1 列

电影评论数据分析 + RPA 机器学习 5 终篇 - (哪吒之魔童降世 - 词向量聚类、舆情分析 )

而 y 是对应的标记数据。它也是只有 1 列

电影评论数据分析 + RPA 机器学习 5 终篇 - (哪吒之魔童降世 - 词向量聚类、舆情分析 )

建立一个辅助函数,把结巴分词的结果用空格连接。

电影评论数据分析 + RPA 机器学习 5 终篇 - (哪吒之魔童降世 - 词向量聚类、舆情分析 )

使用这个函数,用 apply 命令,把每一行的评论数据都进行分词

电影评论数据分析 + RPA 机器学习 5 终篇 - (哪吒之魔童降世 - 词向量聚类、舆情分析 )

机器学习—- 把数据分成训练集和测试集

4.1 把数据集拆开,只在训练集上训练。保留测试集先,作为参考,看模型经过训练后的分类效果

此时的 X_train 数据集形状
电影评论数据分析 + RPA 机器学习 5 终篇 - (哪吒之魔童降世 - 词向量聚类、舆情分析 )

  • 可见,在默认模式下,traintest_split 函数对训练集和测试集的划分比例为 3:1。
  • 检验一下其他 3 个集合看看:(训练集)

电影评论数据分析 + RPA 机器学习 5 终篇 - (哪吒之魔童降世 - 词向量聚类、舆情分析 )

  • 检验一下测试集

电影评论数据分析 + RPA 机器学习 5 终篇 - (哪吒之魔童降世 - 词向量聚类、舆情分析 )

  • 编写一个函数,从中文停用词表里面,把停用词作为列表格式保存并返回

电影评论数据分析 + RPA 机器学习 5 终篇 - (哪吒之魔童降世 - 词向量聚类、舆情分析 )

  • 看看停用词列表的后 10 项

电影评论数据分析 + RPA 机器学习 5 终篇 - (哪吒之魔童降世 - 词向量聚类、舆情分析 )

4.2 对分词后的中文语句做向量化

电影评论数据分析 + RPA 机器学习 5 终篇 - (哪吒之魔童降世 - 词向量聚类、舆情分析 )

电影评论数据分析 + RPA 机器学习 5 终篇 - (哪吒之魔童降世 - 词向量聚类、舆情分析 )

  • 加上停用词去除功能,特征向量的转化

电影评论数据分析 + RPA 机器学习 5 终篇 - (哪吒之魔童降世 - 词向量聚类、舆情分析 )

电影评论数据分析 + RPA 机器学习 5 终篇 - (哪吒之魔童降世 - 词向量聚类、舆情分析 )

可以看到,此时特征个数减少了。没有调整任何其他的参数,因此减少的 192 个特征,就是出现在停用词表中的单词

  • 去除 过于平凡 和 过于独特 的关键词

电影评论数据分析 + RPA 机器学习 5 终篇 - (哪吒之魔童降世 - 词向量聚类、舆情分析 )

电影评论数据分析 + RPA 机器学习 5 终篇 - (哪吒之魔童降世 - 词向量聚类、舆情分析 )

可以看到,那些数字全都不见了。特征数量从单一词表法去除停用词之后,变成了 904 个

把未经特征向量化的训练集内容输入,做交叉验证,算出模型分类准确率的均值。

from sklearn.model_selection import cross_val_score
cross_val_score(pipe, X_train.cutted_comment, y_train, cv=5, scoring='accuracy').mean()

结果

电影评论数据分析 + RPA 机器学习 5 终篇 - (哪吒之魔童降世 - 词向量聚类、舆情分析 )

在测试集上,对情感分类标记进行预测

电影评论数据分析 + RPA 机器学习 5 终篇 - (哪吒之魔童降世 - 词向量聚类、舆情分析 )

通过 scikit-learn 的测量工具集 看看测试准确率

电影评论数据分析 + RPA 机器学习 5 终篇 - (哪吒之魔童降世 - 词向量聚类、舆情分析 )

查看 混淆矩阵的结果

电影评论数据分析 + RPA 机器学习 5 终篇 - (哪吒之魔童降世 - 词向量聚类、舆情分析 )

电影评论数据分析 + RPA 机器学习 5 终篇 - (哪吒之魔童降世 - 词向量聚类、舆情分析 )

结果 和 SnowNLP 作对比

from snownlp import SnowNLP # python情感分析库
def get_sentiment(text):
    return SnowNLP(text).sentiments
  • 转换后的前 5 条 SnowNLP 预测结果

电影评论数据分析 + RPA 机器学习 5 终篇 - (哪吒之魔童降世 - 词向量聚类、舆情分析 )

  • 模型分类准确率

电影评论数据分析 + RPA 机器学习 5 终篇 - (哪吒之魔童降世 - 词向量聚类、舆情分析 )

  • 混淆矩阵

电影评论数据分析 + RPA 机器学习 5 终篇 - (哪吒之魔童降世 - 词向量聚类、舆情分析 )

对比的结果,是 TP 和 TN 两项上,模型判断正确数量,都要超出 SnowNLP。

5、情感分析 之后的数据分析

电影评论数据分析 + RPA 机器学习 5 终篇 - (哪吒之魔童降世 - 词向量聚类、舆情分析 )

积极消极的所有信息

电影评论数据分析 + RPA 机器学习 5 终篇 - (哪吒之魔童降世 - 词向量聚类、舆情分析 )

积极消极的所有信息 柱状图

电影评论数据分析 + RPA 机器学习 5 终篇 - (哪吒之魔童降世 - 词向量聚类、舆情分析 )

按评分星级求平均值

电影评论数据分析 + RPA 机器学习 5 终篇 - (哪吒之魔童降世 - 词向量聚类、舆情分析 )

评分星级 和 舆情值 雷达图

电影评论数据分析 + RPA 机器学习 5 终篇 - (哪吒之魔童降世 - 词向量聚类、舆情分析 )

时间序列舆情分析图

电影评论数据分析 + RPA 机器学习 5 终篇 - (哪吒之魔童降世 - 词向量聚类、舆情分析 )

舆情目标变量分布

电影评论数据分析 + RPA 机器学习 5 终篇 - (哪吒之魔童降世 - 词向量聚类、舆情分析 )

至此。
哪吒之魔童降世 的 评分数据分析 和 评论数据分析 全部结束了。
代码,都在 github 上面了。