欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

豆瓣电影简评:Scrapy 爬虫 + 数据清理/分析 + 构建中文文本情感分析模型

最编程 2024-04-04 10:50:47
...
项目——豆瓣电影Top250的短评分析

Scrapy 爬虫 + 数据清理 + 数据分析 + 构建情感分析模型

  • 一、爬取豆瓣Top250的短评数据
    • movie_item
    • movie_comment
    • movie_people
  • 二、数据清理与特征工程+统计分析
    • 就肖申克的救赎这个电影而言
    • 全部影片的短评数据分析
    • 短评词云
    • 用朴素贝叶斯完成中文文本分类器
    • 用svc完成中文文本分类器
    • 用facebook-fasttext有监督完成中文文本分类
    • 用facebook-fasttext无监督学习
    • 用cnn做中文文本分类
    • 用rnn做中文文本分类
    • 用gru来完成中文文本分类
    • 总评分最高的前10部电影
    • 最受欢迎的电影类别排名
    • 最受欢迎的电影出品国家排名
    • 最受欢迎的电影导演排名
    • 最受欢迎的电影演员排名
    • 最受欢迎的电影语言排名
    • 根据电影时长的电影排名
    • 根据电影投票数的电影排名
    • 根据电影评价数的电影排名
    • 根据电影提问数的电影排名
    • 根据电影发布时间的规律
    • 1~5星级投票的百分比
    • 电影简介的情感分析
    • movie_item
    • movie_comment
    • movie_people
    1. 短评人常居地按照国家分布
    2. 中国短评人常居地按照省份分布
    3. 每个短评人的被关注数与好友数
    4. 中国短评人的被关注数和好友数的人均地域分布
    5. 根据点评人个人简介构建中文文本分类模型
  • 三、movie_item + movie_comment + movie_people
    • 三个数据集间的协同分析
    • 通过短评来预测被评价电影是什么类型

代码及运行教程,数据集 获取:

关注微信公众号 datayx 然后回复 豆瓣 即可获取。

AI项目体验地址 https://loveai.tech

  • 项目要求:
    1. 爬取豆瓣Top250 or 最新电影(例如战狼2、敦刻尔克、蜘蛛侠、银魂)的短评数据,保证抓取尽量完整;
    2. 分析大家的短评用词,分析 总体/分词性 的核心词,通过可视化方式展示;
    3. 统计分析电影的打分分布状况、右侧有用的分布、点评量随时间的变化、点评人常居地的分布等,并用可视化的方式展示;
    4. 通过评分与短评数据,构建情感褒贬分析分类器,通过短评数据预测用户“喜欢”or“不喜欢”电影。
  • 项目总目标:
    • 尽可能完备的爬取与短评相关的信息,足够完备的给出所有分析。
  • 项目分步目标:
    • 爬取豆瓣Top250电影站点中三类数据:每个电影详情信息、每个电影的短评内容和每个短评背后点评人的个人信息。
    • 给每个数据集,分别完成统计分析、构建中文文本情感分析模型。
    • 三个数据集交叉的统计分析,并构建中文文本深度学习模型。
  • Idea:
    • 各个电影的信息与其所有短评之间的关联,如根据短评判断电影的是喜剧片还是犯罪片。
    • 各个点评人的信息与其所发出的所有短评之间的关联,如通过短评判断点评人的常居地。
    • 构造模型,给定某电影信息和点评人信息,推断其会如何短评。
    • 250电影的纵向对比:最受欢迎(前10)的电影(根据豆瓣?总评分?)/电影类别(按出现频次)/导演(按出现频次)/演员(按出现频次)/语言(按出现频次,可以对其根据**分类?)/出品国家(按出现频次,可以对其根据大洲分类)/电影时长(按出现频次,可以对其分段,看不同段的直方图);所有电影的发布时间分布,以观察什么年代的电影最受欢迎(可以对其分段);在发布时间基础上,对比总评分/评价数/提问数的分布;以及,上述三者之间的分布依赖关系。从电影简介中分析情感关键词,看其与电影类别的关联、与导演的性格关联、与演员的关联。
    • 所有短评的统计分析:对每个电影爬取的短评量大致分布均匀;取前10电影,分别观察,短评喜欢和不喜欢为label构建模型。
    • 对点评人的常居地可视化;查看活跃的点评人(高关注数和好友数)的地理分布;点评人的个人简介中蕴含的特征词信息与地域的分布。
    • 对每个数据集单独做一个统计分析:
    • 多个数据集综合分析:

效果展示

我们会发现电影评价数和电影的投票数是极强相关的,pearsonr系数达到了0.9:

根据电影发布时间的规律

将所有Top电影按照发布时间排序后,我们可以对比观察到Top好电影大多集中在90年代之后。每部电影的投票数也与之基本正相关,主要对90年代以来的电影尤为青睐和关注。

1~5星级投票的百分比

最后就只剩下给分星级所占比例的分析了,我们根据核密度估计绘制1-5星所占百分比的分布曲线

上图是各省份人均被关注数的分布情况,常居北京的最容易收到最多的关注,而紧随其后的常居地都是典型的旅游型省份:*、国外、云南、*。一方面来看,前段时间刚从*旅行回来,那边的生活水平还是不错的,网络社交活动比较活跃也可以理解;另一方面,我猜测是一些点评人为了社交的便利或给自己增添一些异域风情,而胡乱写的常居地,以此增加自己的被关注数。

虽然大部分人并不热衷于写短评,但是还是可以发现有相当一部分人简直就是“短评小王子”,居然在Top250电影中留下过上百的评论。

根据短评文本生成该电影短评的词云: