带货视频评论洞察 Baseline 学习笔记 (Datawhale Al夏令营)
一、 项目认识
背景:
电商直播/短视频已积累大量「视频 + 评论」数据,蕴含了消费者的真实反馈。
目标:
通过「商品识别 → 情感分析 → 评论聚类」三步,辅助品牌洞察、网红投放评估。
二、 Baseline 代码流程
1. 读取和预处理
video_data = pd.read_csv("origin_videos_data.csv")
comments_data = pd.read_csv("origin_comments_data.csv")
video_data["text"] = video_desc + " " + video_tags # 拼接文本
2. 商品识别
pipeline = make_pipeline(TfidfVectorizer(tokenizer=jieba.lcut, max_features=50),SGDClassifier()
)
pipeline.fit(labeled_text, labeled_product)
video_data["product_name"] = pipeline.predict(video_data["text"])
实现思路: TF-IDF + 线性分类器(SGD)做二分类
简化点:仅用了 50 个特征,无额外的清洗。
3. 意图分类(四个模型)
for col in ["sentiment_category", "user_scenario", "user_question", "user_suggestion"]:pipeline = make_pipeline(TfidfVectorizer(tokenizer=jieba.lcut), SGDClassifier())pipeline.fit(train_text, train_label)comments_data[col] = pipeline.predict(all_text)
4. 评论聚类 & 主题词抽取 (5个维度进行执行)
pipeline = make_pipeline(TfidfVectorizer(tokenizer=jieba.lcut), KMeans(n_clusters=2))
pipeline.fit(subset_text)
labels = pipeline.predict(subset_text)
top_words = (" ".join(前 10 重要词)) # 每簇
comments_data[target_theme_col] = [top_words[label] for label in labels]
大赛要求: 要求 5 - 8 个簇,目前项目仅用了 n_clusters = 2。
调整策略:将 n_clusters 进行优化调整,让其等于 5-8 之间,进行优化。
5. 结果导出
video_data[["video_id", "product_name"]].to_csv("submit/submit_videos.csv", index=False)
comments_data[导出列].to_csv("submit/submit_comments.csv", index=False)
!zip -r submit.zip submit/
三、 技术分析
1. 分词 & 特征
jieba + TfidfVectorizer: 适配中英文及 emoji/特殊符号。
2. 商品识别
SGDClassifier: 快速迭代、可在线学习。
3. 意图分类
多个 SGDClassifier: 训练速度快,支持稀疏特征。
4. 聚类
KMeans: 易解释、效率高。
5. 主题词抽取
中心向量前 N 词: 简单直观。
四、Baseline 局限 & 提升方向
1. 文本预处理缺失:大小写、URL、表情、停用词均未处理。
2. 模型简单:全部采用线性/常规模型,难以捕捉深层语义。
3. 聚类数量不合规:固定 2 簇,势必影响 100 分聚类子任务。
4. 未利用多语言特性:数据包含中/英/日/韩等多语,分词器不统一。
5. 评价指标未在本地计算:无法提前验证得分。
五、学习收获
1. 端到端管线思维:一个 Notebook 覆盖读取→标注数据利用→预测→聚类→提交文件的完整链路,是参赛 Baseline 的典型范式。
2. 快速原型:Scikit-learn + jieba 几行代码即可跑通 baseline,利于早期验证。
3. 实验可重复:全部步骤在 Notebook 内显式记录,方便 debug / 复现。
4. 评测视角:先满足格式与流程正确,再逐步优化指标 —— 典型竞赛节奏。
5. 改进空间评估:通过阅读代码可迅速定位性能瓶颈,为后续升级指明方向。