基于 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 的作用包括:
- 存储分词后的结构化数据
- 对词频结果进行排序与筛选
- 支持后续更复杂的分析任务
文本分词等复杂逻辑更适合在 Python 等工具中完成。
八、小结
通过结合 Python 与 Hive,可以构建一套高效、清晰的数据分析流程。
Hive 适合处理分词后的结构化数据统计,而不适合直接处理复杂文本,这是进行技术选型时需要明确的关键点。

浙公网安备 33010602011771号