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

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

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

在本文中,我们将结合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()

相关文章
|
1月前
|
存储 机器学习/深度学习 SQL
大数据处理与分析技术
大数据处理与分析技术
116 2
|
2月前
|
SQL 消息中间件 分布式计算
大数据-124 - Flink State 01篇 状态原理和原理剖析:状态类型 执行分析
大数据-124 - Flink State 01篇 状态原理和原理剖析:状态类型 执行分析
80 5
|
5天前
|
机器学习/深度学习 数据可视化 大数据
机器学习与大数据分析的结合:智能决策的新引擎
机器学习与大数据分析的结合:智能决策的新引擎
64 15
|
11天前
|
SQL 分布式计算 DataWorks
DataWorks产品测评|基于DataWorks和MaxCompute产品组合实现用户画像分析
本文介绍了如何使用DataWorks和MaxCompute产品组合实现用户画像分析。首先,通过阿里云官网开通DataWorks服务并创建资源组,接着创建MaxCompute项目和数据源。随后,利用DataWorks的数据集成和数据开发模块,将业务数据同步至MaxCompute,并通过ODPS SQL完成用户画像的数据加工,最终将结果写入`ads_user_info_1d`表。文章详细记录了每一步的操作过程,包括任务开发、运行、运维操作和资源释放,帮助读者顺利完成用户画像分析。此外,还指出了文档中的一些不一致之处,并提供了相应的解决方法。
|
10天前
|
分布式计算 DataWorks 搜索推荐
用户画像分析(MaxCompute简化版)
通过本教程,您可以了解如何使用DataWorks和MaxCompute产品组合进行数仓开发与分析,并通过案例体验DataWorks数据集成、数据开发和运维中心模块的相关能力。
|
29天前
|
机器学习/深度学习 存储 大数据
在大数据时代,高维数据处理成为难题,主成分分析(PCA)作为一种有效的数据降维技术,通过线性变换将数据投影到新的坐标系
在大数据时代,高维数据处理成为难题,主成分分析(PCA)作为一种有效的数据降维技术,通过线性变换将数据投影到新的坐标系,保留最大方差信息,实现数据压缩、去噪及可视化。本文详解PCA原理、步骤及其Python实现,探讨其在图像压缩、特征提取等领域的应用,并指出使用时的注意事项,旨在帮助读者掌握这一强大工具。
69 4
|
1月前
|
关系型数据库 分布式数据库 数据库
PolarDB 以其出色的性能和可扩展性,成为大数据分析的重要工具
在数字化时代,企业面对海量数据的挑战,PolarDB 以其出色的性能和可扩展性,成为大数据分析的重要工具。它不仅支持高速数据读写,还通过数据分区、索引优化等策略提升分析效率,适用于电商、金融等多个行业,助力企业精准决策。
35 4
|
1月前
|
机器学习/深度学习 分布式计算 算法
【大数据分析&机器学习】分布式机器学习
本文主要介绍分布式机器学习基础知识,并介绍主流的分布式机器学习框架,结合实例介绍一些机器学习算法。
207 5
|
1月前
|
存储 监控 数据挖掘
【Clikhouse 探秘】ClickHouse 物化视图:加速大数据分析的新利器
ClickHouse 的物化视图是一种特殊表,通过预先计算并存储查询结果,显著提高查询性能,减少资源消耗,适用于实时报表、日志分析、用户行为分析、金融数据分析和物联网数据分析等场景。物化视图的创建、数据插入、更新和一致性保证通过事务机制实现。
161 14
|
1月前
|
消息中间件 分布式计算 大数据
数据为王:大数据处理与分析技术在企业决策中的力量
【10月更文挑战第29天】在信息爆炸的时代,大数据处理与分析技术为企业提供了前所未有的洞察力和决策支持。本文探讨了大数据技术在企业决策中的重要性和实际应用,包括数据的力量、实时分析、数据驱动的决策以及数据安全与隐私保护。通过这些技术,企业能够从海量数据中提取有价值的信息,预测市场趋势,优化业务流程,从而在竞争中占据优势。
115 2