基于 Hive 的用户评论词频统计实战

基于 Hive 的用户评论词频统计实战

结合 Python 分词与 Hive 数据分析的完整流程

一、案例背景与分析目标

在互联网应用中,用户评论数据通常以非结构化文本形式存在。
通过对评论内容进行分词和词频统计,可以实现:

  • 用户关注点分析
  • 热点关键词挖掘
  • 情感分析前置处理

本案例采用 Python + Hive 的方式,实现对用户评论数据的词频统计分析,完整覆盖从数据清洗到统计分析的全过程。


二、数据来源与格式说明

假设原始数据格式如下(CSV):

comment_id,user_id,content
1,1001,这个手机性价比很高
2,1002,物流速度很快,服务不错

其中 content 字段为中文评论文本,是本次分析的核心对象。


三、使用 Python 进行中文分词

1. 分词工具选择

本案例使用 Python 的 jieba 分词库,其优点是:

  • 使用简单
  • 对中文支持较好
  • 可自定义词典

2. 分词与词频统计代码示例

import jieba
from collections import Counter

result = []

with open("comments.csv", "r", encoding="utf-8") as f:
    next(f)
    for line in f:
        content = line.strip().split(",")[-1]
        words = jieba.lcut(content)
        for w in words:
            if len(w.strip()) > 1:
                result.append(w)

counter = Counter(result)

with open("word_count.txt", "w", encoding="utf-8") as f:
    for word, cnt in counter.items():
        f.write(f"{word}\t{cnt}\n")

生成的 word_count.txt 文件格式如下:

手机    15
性价比  10
物流    8

四、在 Hive 中创建词频表

1. 创建 Hive 表结构

CREATE TABLE word_count (
  word STRING,
  cnt INT
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\t';

2. 加载数据到 Hive

LOAD DATA LOCAL INPATH '/data/word_count.txt'
INTO TABLE word_count;

五、使用 Hive 进行词频分析

1. 查看词频分布

SELECT *
FROM word_count
ORDER BY cnt DESC;

2. 筛选高频关键词

SELECT word, cnt
FROM word_count
WHERE cnt > 5
ORDER BY cnt DESC;

六、分析结果说明

通过 Hive 进行统计分析,可以直观地看到:

  • 用户评论中出现频率最高的关键词
  • 用户关注的核心问题点
  • 不同产品或服务的评价侧重点

Hive 在此过程中主要负责 大规模数据的统计与排序,而不参与复杂文本处理。


七、Hive 在该案例中的角色

在该实战中,Hive 的作用包括:

  1. 存储分词后的结构化数据
  2. 对词频结果进行排序与筛选
  3. 支持后续更复杂的分析任务

文本分词等复杂逻辑更适合在 Python 等工具中完成。


八、小结

通过结合 Python 与 Hive,可以构建一套高效、清晰的数据分析流程。
Hive 适合处理分词后的结构化数据统计,而不适合直接处理复杂文本,这是进行技术选型时需要明确的关键点。

posted @ 2025-10-24 10:11  元始天尊123  阅读(5)  评论(0)    收藏  举报