分析赛题
一共给出了三个任务:
1.商品识别 :从视频的描述与标签中判断其推广商品(Xfaiyx Smart Translator 和 Xfaiyx Smart Recorder)。
2.评论情感分析 :对每条评论进行多维度预测,包括:主情感分类(5类:正面、负面、正负混合、中性、不相关)
,用户场景(是否涉及使用场景),用户疑问(是否提出问题),用户建议(是否给出建议)。
3.评论聚类与主题词提取:按照情感维度将评论分簇并提炼出每个簇的"主题词"。
数据共两部分:视频数据 和评论数据。
视频数据(85条)
字段名 | 含义 |
---|---|
video_id |
视频唯一ID |
video_desc |
视频描述文本 |
video_tags |
视频标签 |
product_name |
待预测字段,表示商品名称 |
评论数据(6477条)
字段名 | 含义 |
---|---|
comment_text |
评论文本 |
sentiment_category |
主情感分类 |
user_scenario/question/suggestion |
是否包含用户场景/问题/建议 |
cluster_theme |
各维度聚类生成的主题词 |
技术方案与思路
商品识别(规则匹配)
只需判断是推广"翻译器"还是"录音笔"。由于选项有限(仅两个)并且数据较少,无需训练模型,可通过关键词正则匹配完成:
python
translator_pattern = r'(translator|translat|interpret|language|语言|翻译|译)'
recorder_pattern = r"(recorder|record|audio|voice|录音|记录|音)"
对video_desc + video_tags
做统一小写预处理,然后统计命中次数决定商品类型。
处理时注意字符串缺失等边界情况。
情感分析(TF-IDF + 逻辑回归)
因为本题数据只有两千多条,使用深度模型容易过拟合,所以采用轻量级模型对评论文本做情感识别:
模型结构:
主情感分类模型(5分类)
python
Pipeline([
('tfidf', TfidfVectorizer(max_features=2000, stop_words='english')),
('clf', LogisticRegression(multi_class='multinomial', class_weight='balanced', max_iter=1000))
])
TfidfVectorizer
: 将文本转为词频向量(最多2000个词,英文停用词过滤)LogisticRegression
: 支持multinomial
多分类模式class_weight='balanced'
: 自动调整类别权重,缓解数据不均衡问题
三个辅助分类器(二分类)
python
Pipeline([
('tfidf', TfidfVectorizer(max_features=2000, stop_words='english')),
('clf', MultiOutputClassifier(LogisticRegression(class_weight='balanced', max_iter=1000)))
])
-
MultiOutputClassifier
: 一次性训练3个逻辑回归模型,分别预测:user_scenario
user_question
user_suggestion
评论聚类(TF-IDF + KMeans + 主题词提取)
对符合聚类条件的评论(如正面/负面/建议等)进行聚类分析:
- 抽取对应维度的评论子集
- TF-IDF向量化
- KMeans聚类(自动选取最佳k)
- 提取每簇的Top 3高频词作为主题词
使用轮廓系数(Silhouette Score)作为聚类质量指标。
效果与思考
整体得分可以达到230+,商品识别部分96+,情感分析83+,评论聚类51+。
该方案只涉及到简单的机器学习模型,适合初学者作为baseline学习参考,不依赖算力资源。
待优化方向:
- TF-IDF对词序和上下文建模能力有限,可能导致分类精度不足。
- 聚类主题词基于词频提取,未融合语义信息。
- 情感分析5分类分布不均衡,可探索重采样/调参。
- 可以使用bert或者星火大模型尝试进一步优化。