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

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

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

在本文中,我们将结合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月前
|
机器学习/深度学习 算法 搜索推荐
从理论到实践,Python算法复杂度分析一站式教程,助你轻松驾驭大数据挑战!
【10月更文挑战第4天】在大数据时代,算法效率至关重要。本文从理论入手,介绍时间复杂度和空间复杂度两个核心概念,并通过冒泡排序和快速排序的Python实现详细分析其复杂度。冒泡排序的时间复杂度为O(n^2),空间复杂度为O(1);快速排序平均时间复杂度为O(n log n),空间复杂度为O(log n)。文章还介绍了算法选择、分而治之及空间换时间等优化策略,帮助你在大数据挑战中游刃有余。
57 4
|
5天前
|
存储 机器学习/深度学习 SQL
大数据处理与分析技术
大数据处理与分析技术
25 2
|
1月前
|
SQL 消息中间件 分布式计算
大数据-124 - Flink State 01篇 状态原理和原理剖析:状态类型 执行分析
大数据-124 - Flink State 01篇 状态原理和原理剖析:状态类型 执行分析
66 5
|
2月前
|
存储 大数据 测试技术
用于大数据分析的数据存储格式:Parquet、Avro 和 ORC 的性能和成本影响
在大数据环境中,数据存储格式直接影响查询性能和成本。本文探讨了 Parquet、Avro 和 ORC 三种格式在 Google Cloud Platform (GCP) 上的表现。Parquet 和 ORC 作为列式存储格式,在压缩和读取效率方面表现优异,尤其适合分析工作负载;Avro 则适用于需要快速写入和架构演化的场景。通过对不同查询类型(如 SELECT、过滤、聚合和联接)的基准测试,本文提供了在各种使用案例中选择最优存储格式的建议。研究结果显示,Parquet 和 ORC 在读取密集型任务中更高效,而 Avro 更适合写入密集型任务。正确选择存储格式有助于显著降低成本并提升查询性能。
411 1
用于大数据分析的数据存储格式:Parquet、Avro 和 ORC 的性能和成本影响
|
8天前
|
存储 监控 数据挖掘
【Clikhouse 探秘】ClickHouse 物化视图:加速大数据分析的新利器
ClickHouse 的物化视图是一种特殊表,通过预先计算并存储查询结果,显著提高查询性能,减少资源消耗,适用于实时报表、日志分析、用户行为分析、金融数据分析和物联网数据分析等场景。物化视图的创建、数据插入、更新和一致性保证通过事务机制实现。
46 14
|
13天前
|
消息中间件 分布式计算 大数据
数据为王:大数据处理与分析技术在企业决策中的力量
【10月更文挑战第29天】在信息爆炸的时代,大数据处理与分析技术为企业提供了前所未有的洞察力和决策支持。本文探讨了大数据技术在企业决策中的重要性和实际应用,包括数据的力量、实时分析、数据驱动的决策以及数据安全与隐私保护。通过这些技术,企业能够从海量数据中提取有价值的信息,预测市场趋势,优化业务流程,从而在竞争中占据优势。
45 2
|
14天前
|
数据采集 机器学习/深度学习 搜索推荐
大数据与社交媒体:用户行为分析
【10月更文挑战第31天】在数字化时代,社交媒体成为人们生活的重要部分,大数据技术的发展使其用户行为分析成为企业理解用户需求、优化产品设计和提升用户体验的关键手段。本文探讨了大数据在社交媒体用户行为分析中的应用,包括用户画像构建、情感分析、行为路径分析和社交网络分析,以及面临的挑战与机遇。
|
14天前
|
机器学习/深度学习 搜索推荐 大数据
大数据与教育:学生表现分析的工具
【10月更文挑战第31天】在数字化时代,大数据成为改善教育质量的重要工具。本文探讨了大数据在学生表现分析中的应用,介绍学习管理系统、智能评估系统、情感分析技术和学习路径优化等工具,帮助教育者更好地理解学生需求,制定个性化教学策略,提升教学效果。尽管面临数据隐私等挑战,大数据仍为教育创新带来巨大机遇。
|
17天前
|
人工智能 供应链 搜索推荐
大数据分析:解锁商业智能的秘密武器
【10月更文挑战第31天】在信息爆炸时代,大数据分析成为企业解锁商业智能的关键工具。本文探讨了大数据分析在客户洞察、风险管理、供应链优化、产品开发和决策支持等方面的应用,强调了明确分析目标、选择合适工具、培养专业人才和持续优化的重要性,并展望了未来的发展趋势。
|
1月前
|
存储 SQL 分布式计算
湖仓一体架构深度解析:构建企业级数据管理与分析的新基石
【10月更文挑战第7天】湖仓一体架构深度解析:构建企业级数据管理与分析的新基石
64 1