豆瓣短评大数据分析:探索用户观影趋势与情感倾向

简介: 豆瓣短评大数据分析:探索用户观影趋势与情感倾向

豆瓣短评大数据分析:探索用户观影趋势与情感倾向

在本文中,我们将结合Python编程和大数据分析的技术,对豆瓣短评数据进行探索性分析,以洞察用户的地域分布、评分偏好以及对影片的情感倾向。

1. 评论者IP属地分布分析

我们首先利用Python的Pandas库加载豆瓣短评数据,并统计不同IP属地的评论数量。接下来,我们使用Matplotlib库绘制饼图,展示前十个IP属地的评论数量占比。

import pandas as pd
import matplotlib.pyplot as plt

# 加载豆瓣短评数据
data = pd.read_csv('豆瓣短评.csv')

# 统计不同IP属地的评论数量
ip_counts = data['评论者IP属地'].value_counts()

# 选择前10个IP属地进行绘制
top_10_ip = ip_counts.head(10)

# 绘制饼图
plt.figure(figsize=(8, 8))
plt.rcParams['font.family'] = 'Arial Unicode MS'
plt.pie(top_10_ip, labels=top_10_ip.index, autopct='%1.1f%%', startangle=140)
plt.title('评论者IP属地分布(前10)')
plt.axis('equal')
plt.show()

import pandas as pd
import matplotlib.pyplot as plt

# 加载CSV文件数据到DataFrame
data = pd.read_csv('豆瓣短评.csv')

# 统计不同IP属地的评论数量
ip_counts = data['评论者IP属地'].value_counts()

# 选择前10个IP属地进行绘制,如果数据量大可能需要筛选合适的数据进行可视化
top_10_ip = ip_counts.head(10)

# 绘制饼图
plt.figure(figsize=(8, 8))
plt.rcParams['font.family'] = 'Arial Unicode MS'
plt.pie(top_10_ip, labels=top_10_ip.index, autopct='%1.1f%%', startangle=140)
plt.title('评论者IP属地分布(前10)')
plt.axis('equal')
plt.show()

2. 评分分布分析

我们利用MapReduce技术对豆瓣短评数据进行评分分布的统计。首先,我们编写Mapper函数和Reducer函数,然后对短评数据执行Map和Reduce操作,最终得到各个评分的评论数量统计并保存为CSV文件。

import csv
from collections import defaultdict

# Mapper函数
def mapper(record):
    rating = record[2]  # 假设评分在第三列
    return [(rating, 1)]

# Reducer函数
def reducer(ratings):
    rating_count = defaultdict(int)
    for rating, count in ratings:
        rating_count[rating] += count
    return rating_count

# 执行Map和Reduce操作
def main():
    file_path = '豆瓣短评_35556001_前30页.csv'

    with open(file_path, newline='', encoding='utf-8') as csvfile:
        reader = csv.reader(csvfile)
        next(reader)  # 跳过标题行
        mapped = [item for row in reader for item in mapper(row)]

    # 执行Reduce操作
    result = reducer(mapped)

    # 将结果保存为CSV文件
    with open('rating_distribution.csv', 'w', newline='', encoding='utf-8') as csvfile:
        fieldnames = ['Rating', 'Count']
        writer = csv.DictWriter(csvfile, fieldnames=fieldnames)

        writer.writeheader()
        for rating, count in result.items():
            writer.writerow({'Rating': rating, 'Count': count})

if __name__ == "__main__":
    main()

3. 评论文本词云可视化

最后,我们利用词云技术对豆瓣短评中的评论文本进行可视化。通过对评论文本的词频统计,生成词云图展示了用户在评论中提及频率较高的关键词。

from wordcloud import WordCloud
import matplotlib.pyplot as plt

# 读取文本文件中的数据
file_path = '/Users/shareit/PycharmProjects/movie_ana/move_get/word_freq_top_10.txt'  # 替换为你的文件路径
with open(file_path, 'r', encoding='utf-8') as file:
    data = file.read()

# 解析数据为关键词和频次的字典
keywords_dict = {}
for line in data.split('\n'):
    parts = line.split(': ')
    if len(parts) == 2:
        keyword, frequency = parts
        keywords_dict[keyword] = int(frequency)

# 生成词云
wordcloud = WordCloud(font_path='/System/Library/Fonts/Supplemental/Arial Unicode.ttf', background_color='white').generate_from_frequencies(keywords_dict)

# 显示词云图
plt.figure(figsize=(8, 6))
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis('off')  # 隐藏坐标轴
plt.title('Word Cloud')  # 标题
plt.show()

相关文章
|
9天前
|
机器学习/深度学习 分布式计算 算法
Spark快速大数据分析PDF下载读书分享推荐
《Spark快速大数据分析》适合初学者,聚焦Spark实用技巧,同时深入核心概念。作者团队来自Databricks,书中详述Spark 3.0新特性,结合机器学习展示大数据分析。Spark是大数据分析的首选工具,本书助你驾驭这一利器。[PDF下载链接][1]。 ![Spark Book Cover][2] [1]: https://zhangfeidezhu.com/?p=345 [2]: https://i-blog.csdnimg.cn/direct/6b851489ad1944548602766ea9d62136.png#pic_center
24 1
Spark快速大数据分析PDF下载读书分享推荐
|
6天前
|
数据采集 自然语言处理 大数据
​「Python大数据」LDA主题分析模型
使用Python进行文本聚类,流程包括读取VOC数据、jieba分词、去除停用词,应用LDA模型(n_components=5)进行主题分析,并通过pyLDAvis生成可视化HTML。关键代码涉及数据预处理、CountVectorizer、LatentDirichletAllocation以及HTML文件的本地化处理。停用词和业务术语列表用于优化分词效果。
11 0
​「Python大数据」LDA主题分析模型
|
11天前
|
人工智能 自然语言处理 小程序
政务VR导航:跨界融合AI人工智能与大数据分析,打造全方位智能政务服务
政务大厅引入智能导航系统,解决寻路难、指引不足及咨询台压力大的问题。VR导视与AI助手提供在线预览、VR路线指引、智能客服和小程序服务,提高办事效率,减轻咨询台工作,优化群众体验,塑造智慧政务形象。通过线上线下结合,实现政务服务的高效便民。
37 0
政务VR导航:跨界融合AI人工智能与大数据分析,打造全方位智能政务服务
|
19天前
|
存储 数据采集 分布式计算
Java中的大数据处理与分析架构
Java中的大数据处理与分析架构
|
19天前
|
SQL 运维 druid
深度分析:Apache Doris及其在大数据处理中的应用
Apache Doris是一款开源的高性能实时分析数据库,设计用于低延迟SQL查询和实时数据处理,适合大规模实时分析场景。与Apache Druid、ClickHouse和Greenplum相比,Doris在易用性和实时性上有优势,但其他产品在特定领域如高吞吐、SQL支持或数据处理有特长。选型要考虑查询性能、实时性、SQL需求和运维成本。Doris适用于实时数据分析、BI报表、数据中台和物联网数据处理。使用时注意资源配置、数据模型设计、监控调优和导入策略。
|
27天前
|
机器学习/深度学习 自然语言处理 供应链
深度学习在大数据分析中的应用非常广泛
深度学习在大数据分析中的应用非常广泛
|
1月前
|
机器学习/深度学习 数据采集 分布式计算
如何用Python处理大数据分析?
【6月更文挑战第14天】如何用Python处理大数据分析?
31 4
|
7天前
|
存储 分布式计算 并行计算
使用Hadoop构建Java大数据分析平台
使用Hadoop构建Java大数据分析平台
|
1月前
|
SQL 数据采集 数据可视化
基于Hive的招聘网站的大数据分析系统
基于Hive的招聘网站的大数据分析系统
|
1月前
|
机器学习/深度学习 数据采集 分布式计算
基于spark的大数据分析预测地震受灾情况的系统设计
基于spark的大数据分析预测地震受灾情况的系统设计