赛题
2025 iFLYTEK AI开发者大赛https://challenge.xfyun.cn/topic/info?type=video-comment-insight
一、赛事背景
在电商直播爆发式增长的数字化浪潮下,短视频平台积累了海量带货视频及用户互动数据。这些数据不仅是消费者对商品体验的直接反馈,更蕴含着驱动商业决策的深层价值。在此背景下,基于带货视频评论的用户洞察分析,已成为品牌优化选品策略、评估网红带货效能的关键突破口。
带货视频评论用户洞察的核心逻辑,在于对视频内容与评论数据的联合深度挖掘。通过智能识别视频中推广的核心商品,结合评论区用户的情感表达与观点聚合,企业能够精准捕捉消费者对商品的真实态度与需求痛点。这种分析方式不仅能揭示用户对商品功能、价格、服务的多维评价,还可通过情感倾向聚类,构建消费者偏好画像,为选品策略优化和网红合作评估提供数据支撑。
本挑战赛聚焦"商品识别-情感分析-聚类洞察"的完整链条:参赛者需先基于视频内容建立商品关联关系,进而从非结构化评论中提取情感倾向,最终通过聚类总结形成结构化洞察。这一研究路径将碎片化的用户评论转化为可量化分析的商业智能,既可帮助品牌穿透数据迷雾把握消费心理,又能科学评估网红的内容种草效果与带货转化潜力,实现从内容营销到消费决策的全链路价值提升。在直播电商竞争白热化的当下,此类分析能力正成为企业构建差异化竞争优势的核心武器。
二、赛事任务
参赛者需基于提供的带货视频文本及评论文本数据,完成以下三阶段分析任务:
1)【商品识别】精准识别推广商品;
2)【情感分析】对评论文本进行多维度情感分析,涵盖维度见数据说明;
3)【评论聚类】按商品对归属指定维度的评论进行聚类,并提炼类簇总结词。
三、评审规则
1.平台说明
参赛选手可基于星火大模型Spark 4.0 Ultra、星火文本向量化模型、其他开源大模型,或采用传统机器学习与深度学习方法完成任务,亦可通过微调开源模型进行洞察分析。
关于星火大模型Spark 4.0 Ultra和文本向量化模型的资源,组委会将为报名参赛选手统一发放API资源福利,选手用参赛账号登录讯飞开放平台个人控制台:控制台-讯飞开放平台 ,点击应用,查询API能力和接口文档。
微调资源不统一发放,参赛期间选手如希望使用讯飞星辰MaaS平台进行微调,可前往讯飞星辰MaaS平台-官网 ,完成实名认证后领取微调代金券资源并开启答题。请注意统一用参赛账号登录星辰MaaS平台;如在比赛前已参与活动则无法重复领取。星辰代金券消耗完毕后,如需继续使用,选手自行选择按需付费。
2.数据说明
本次挑战赛为参赛选手提供包含85条脱敏后的带货视频数据及6477条评论文本数据,数据包括少量有人工标注结果的训练集(仅包含商品识别和情感分析的标注结果)以及未标注的测试集。所有数据均经过脱敏处理,确保信息安全,其格式说明如下:
1)带货视频内容文本信息的数据格式
序号 | 变量名称 | 变量格式 | 解释 |
---|---|---|---|
1 | video_id | string | 视频id |
2 | video_desc | string | 视频描述 |
3 | video_tags | string | 视频标签 |
4 | product_name | string | 推广商品名称 |
注:product_name需根据提供的视频信息进行提取,并从匹配到商品列表[Xfaiyx Smart Translator, Xfaiyx Smart Recorder]中的一项。
2)评论区文本信息的数据格式
序号 | 变量名称 | 变量格式 | 解释 |
---|---|---|---|
1 | video_id | string | 视频id |
2 | comment_id | string | 评论id |
3 | comment_text | string | 评论文本 |
4 | sentiment_category | int | 关于商品的情感倾向分类 |
5 | user_scenario | int | 是否与用户场景有关,0表示否,1表示是 |
6 | user_question | int | 是否与用户疑问有关,0表示否,1表示是 |
7 | user_suggestion | int | 是否与用户建议有关,0表示否,1表示是 |
8 | positive_cluster_theme | string | 按正面倾向聚类的类簇主题词 |
9 | negative_cluster_theme | string | 按负面倾向聚类的类簇主题词 |
10 | scenario_cluster_theme | string | 按用户场景聚类的类簇主题词 |
11 | question_cluster_theme | string | 按用户疑问聚类的类簇主题词 |
12 | suggestion_cluster_theme | string | 按用户建议聚类的类簇主题词 |
注:
a.需进行情感分析的字段包括sentiment_category、user_scenario、user_question和user_suggestion。训练集中部分数据已提供标注,测试集需自行预测。其中字段sentiment_category情感倾向分类的数值含义见下表:
分类值 | 1 | 2 | 3 | 4 | 5 |
---|---|---|---|---|---|
含义 | 正面 | 负面 | 正负都包含 | 中性 | 不相关 |
b.需进行聚类的字段包括:
- positive_cluster_theme:基于训练集和测试集中正面倾向(sentiment_category=1 或 sentiment_category=3)的评论进行聚类并提炼主题词,聚类数范围为 5~8。
- negative_cluster_theme:基于训练集和测试集中负面倾向(sentiment_category=2 或 sentiment_category=3)的评论进行聚类并提炼主题词,聚类数范围为 5~8。
- scenario_cluster_theme:基于训练集和测试集中用户场景相关评论(user_scenario=1)进行聚类并提炼主题词,聚类数范围为 5~8。
- question_cluster_theme:基于训练集和测试集中用户疑问相关评论(user_question=1)进行聚类并提炼主题词,聚类数范围为 5~8。
- suggestion_cluster_theme:基于训练集和测试集中用户建议相关评论(user_suggestion=1)进行聚类并提炼主题词,聚类数范围为 5~8。
注意,聚类样本包含训练集和测试集的全部满足上述条件的评论样本。
3.评估指标
本挑战赛依据参赛者提交的结果文件,采用不同评估方法对各阶段任务进行评分。最终得分由三部分相加,总分300分。具体评估标准如下:
1)商品识别(100分)
结果采用精确匹配评估,每个正确识别的商品得1分,错误识别的商品得0分。该阶段总评分计算公式如下:
2)情感分析(100分)
结果评估采用加权平均F1-score,衡量分类模型的整体性能。该阶段总评分计算公式如下:
其中F1ᵢ为维度i的分析结果的加权F1-score,N为情感类别总数。
3)评论聚类(100分)
结果评估采用轮廓系数(仅计算商品识别和情感分析均正确的评论聚类结果),衡量聚类结果的紧密性和分离度。该阶段总评分计算公式如下:
其中Silhouette coefficientᵢ为维度i的聚类结果的轮廓系数,M为需聚类的维度总数。
4.评测及排行
1)本赛题均提供下载数据,选手在本地进行算法调试,在比赛页面提交结果。
请注意:测试集仅可用于输出最终的推理结果,不可以任何形式参与训练过程。
2)排行按照得分从高到低排序,排行榜将选择团队的历史最优成绩进行排名。
四、作品提交要求
1.文件格式:提交submit.zip压缩包文件,内含submit文件夹,文件内为submit_videos.csv(内含字段video_id, product_name)和submit_comments.csv(内含字段video_id, comment_id, sentiment_category, user_scenario, user_question, user_suggestion, positive_cluster_theme, negative_cluster_theme, scenario_cluster_theme, question_cluster_theme, suggestion_cluster_theme)文件
2.文件大小:无要求
3.提交次数限制:每支队伍每天最多3次
4.文件详细说明:编码为UTF-8,第一行为表头
5.关于大模型的使用说明&限制
1)为了排除人工校验、修正等作弊方式,本次比赛除了提交答案之外,排行榜前3名选手需提供完整的源代码,要求洞察分析结果必须可以准确复现。
2)允许使用微调开源模型的方式进行洞察分析,微调的开源模型不做限制。
baseline
import pandas as pd
video_data = pd.read_csv("origin_videos_data.csv")
comments_data = pd.read_csv("origin_comments_data.csv")
目标:读取视频数据(video_data)和评论数据(comments_data),其中视频数据包含视频描述、标签等信息,评论数据包含评论文本及部分标注结果。
问题:部分视频的product_name为空,需通过模型预测填补。
video_data["text"] = video_data["video_desc"].fillna("") + " " + video_data["video_tags"].fillna("")
目标:将视频描述(video_desc)和标签(video_tags)合并为统一文本特征,用于商品识别模型训练。
优化建议:
可添加停用词过滤或同义词扩展(如“翻译器”与“Translator”映射),提升模型泛化能力。
考虑使用TF-IDF加权而非简单拼接,以捕捉关键词重要性。
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.linear_model import SGDClassifier
from sklearn.pipeline import make_pipeline
product_name_predictor = make_pipeline(
TfidfVectorizer(tokenizer=jieba.lcut, max_features=50),
SGDClassifier()
)
product_name_predictor.fit(
video_data[~video_data["product_name"].isnull()]["text"],
video_data[~video_data["product_name"].isnull()]["product_name"],
)
video_data["product_name"] = product_name_predictor.predict(video_data["text"])
目标:基于视频文本信息(描述+标签)预测推广商品名称(Xfaiyx Smart Translator或Xfaiyx Smart Recorder)。
关键点:
文本向量化:使用jieba分词和TF-IDF提取文本特征(最大特征数50)。
分类模型:采用线性SVM(SGDClassifier)进行二分类。
问题与优化:
数据不足:标注样本较少(仅85条视频数据),可能导致模型过拟合。
优化建议:
增加数据增强(如替换近义词、调整语序)。
集成星火大模型(Spark 4.0 Ultra)进行文本特征提取或直接调用商品识别API。
for col in ['sentiment_category', 'user_scenario', 'user_question', 'user_suggestion']:
predictor = make_pipeline(
TfidfVectorizer(tokenizer=jieba.lcut),
SGDClassifier()
)
predictor.fit(
comments_data[~comments_data[col].isnull()]["comment_text"],
comments_data[~comments_data[col].isnull()][col],
)
comments_data[col] = predictor.predict(comments_data["comment_text"])
目标:对评论进行多维度分类,包括:
情感倾向(sentiment_category):1(负面)、2(中性)、3(正面)、5.0(强烈正面)。
用户场景相关性(user_scenario):0(否)、1(是)。
用户疑问(user_question):0(否)、1(是)。
用户建议(user_suggestion):0(否)、1(是)。
关键点:
使用TF-IDF向量化评论文本,训练独立的SGD分类器。
问题与优化:
类别不平衡:部分标注可能偏向某些类别(如正面评论较多),需调整类别权重(class_weight='balanced')。
模型选择:可尝试更复杂的模型(如随机森林、神经网络)或集成星火大模型的文本分类能力。
kmeans_predictor = make_pipeline(
TfidfVectorizer(tokenizer=jieba.lcut),
KMeans(n_clusters=2)
)
kmeans_predictor.fit(comments_data[comments_data["sentiment_category"].isin([1, 3])]["comment_text"])
目标:对情感倾向为1(负面)或3(正面)的评论进行聚类,提取主题词。
主题词提取逻辑:
计算聚类中心的TF-IDF权重,选取前10个高频词作为主题词。
问题与优化:
簇数选择:固定n_clusters=2可能不适用于所有视频,建议动态调整簇数(如基于轮廓系数)。
主题相关性:部分主题词可能与商品无关(如“谢谢”),需过滤停用词或结合领域知识优化。
video_data[["video_id", "product_name"]].to_csv("submit/submit_videos.csv", index=None)
comments_data[[
'video_id', 'comment_id', 'sentiment_category', 'user_scenario', 'user_question',
'user_suggestion', 'positive_cluster_theme', 'negative_cluster_theme',
'scenario_cluster_theme', 'question_cluster_theme', 'suggestion_cluster_theme'
]].to_csv("submit/submit_comments.csv", index=None)
目标:输出视频商品预测结果和评论分析结果。
验证建议:
检查输出文件是否包含所有必填字段(如positive_cluster_theme)。
确保未标注数据(测试集)的预测结果已正确填充。
!mkdir submit
!zip -r submit.zip submit/
压缩submit/目录中的两个CSV文件(submit_videos.csv和submit_comments.csv)。
后续修改思路
一、商品识别优化:规则+模型混合策略
规则匹配(
rule_based_product
)- 技术细节:
- 构建商品关键词词典(如
"翻译"
对应"translator"
),通过统计关键词出现次数进行匹配。 - 采用大小写不敏感的
count
方法,确保多语言兼容性(如德语Übersetzer
、意大利语traduttore
)。
- 构建商品关键词词典(如
- 修改原因:
- 解决数据不足问题:原始模型仅依赖85条标注数据,容易过拟合。规则匹配利用商品名称与关键词的强关联性,直接覆盖明确样本。
- 提升泛化能力:通过多语言关键词覆盖不同地区的视频描述(如含德语、意大利语的视频)。
- 技术细节:
混合策略(规则优先,模型兜底)
- 技术细节:
- 规则无法判断的模糊样本(如关键词计数相等)交由模型处理。
- 模型训练仅使用标注数据(
train_mask
),避免污染测试集。
- 修改原因:
- 降低模型复杂度:规则过滤后,模型仅需处理少量模糊样本,减少训练难度。
- 提升准确性:规则覆盖明确场景,模型补充复杂场景,形成互补。
- 技术细节:
二、情感分析优化:模型定制与异常处理
模型选择优化
- 技术细节:
- 多分类任务(
sentiment_category
):- 使用
RandomForestClassifier
(100棵树),结合ngram_range=(1,2)
捕捉上下文关联(如“语音翻译”)。 class_weight="balanced"
解决类别不平衡问题。
- 使用
- 二分类任务(用户场景/疑问/建议):
- 使用
SGDClassifier(loss="log_loss")
,等效于逻辑回归,适合轻量级任务。 - 添加
stop_words="english"
过滤无意义英文停用词(如"I"
,"the"
)。
- 使用
- 多分类任务(
- 修改原因:
- 提升模型性能:随机森林适合多分类任务的复杂模式,而逻辑回归适合二分类任务的高效训练。
- 避免过拟合:通过
ngram
和stop_words
控制特征维度,平衡模型复杂度。
- 技术细节:
标签类型与异常处理
- 技术细节:
- 将标签转换为
int
类型(astype(int)
),避免浮点数误差。 - 对
sentiment_category
的预测结果进行范围校验(apply(lambda x: x if 1<=x<=5 else 5)
)。
- 将标签转换为
- 修改原因:
- 确保输出格式合规:提交文件要求整数类型,避免因类型错误导致评分失败。
- 修正异常预测:模型可能因噪声数据输出非法值(如
0
或6
),通过校验确保结果在[1,5]范围内。
- 技术细节:
三、评论聚类优化:动态聚类数与关键词提取
动态选择聚类数(
find_optimal_k
)- 技术细节:
- 基于**轮廓系数(Silhouette Score)**评估聚类质量,自动选择[5,8]区间内的最佳
k
值。 - 使用TF-IDF向量化文本,结合
KMeans
计算聚类标签。
- 基于**轮廓系数(Silhouette Score)**评估聚类质量,自动选择[5,8]区间内的最佳
- 修改原因:
- 适应不同数据分布:固定
n_clusters=2
可能导致过度简化(如用户疑问评论需更多簇)。 - 提升聚类有效性:轮廓系数量化聚类紧密度,避免人工选择不合理的簇数。
- 适应不同数据分布:固定
- 技术细节:
关键词提取优化(
get_cluster_keywords
)- 技术细节:
- 计算每个词的平均TF-IDF值,而非简单取前N个高频词。
- 通过
X.mean(axis=0)
获取全局重要性,过滤低权重词汇(如停用词)。
- 修改原因:
- 增强主题相关性:平均TF-IDF反映词对聚类的整体贡献,而非局部高频(如标点符号)。
- 减少噪声干扰:避免因个别文档中高频但无意义的词(如
"it"
)主导主题。
- 技术细节:
数据类型兼容性处理
- 技术细节:
- 在赋值前将目标列(如
positive_cluster_theme
)转换为str
类型。
- 在赋值前将目标列(如
- 修改原因:
- 避免
KeyError
和FutureWarning
:原始列可能包含NaN
或float
类型,导致字符串列表赋值失败。
- 避免
- 技术细节:
四、其他优化:文本清洗与噪声处理
强化文本清洗(
clean_text
/clean_comment
)- 技术细节:
- 去除HTML标签(如
<br>
)、特殊符号(非字母数字和中文)。 - 移除单字符(如
"I"
)和多余空格,保留有效词汇。
- 去除HTML标签(如
- 修改原因:
- 提升特征质量:噪声字符(如
"ü."
)会干扰TF-IDF和模型训练。 - 增强跨语言兼容性:保留中文字符,支持多语言评论分析。
- 提升特征质量:噪声字符(如
- 技术细节:
代码执行顺序调整
- 技术细节:
- 在商品识别前显式创建
video_data["text"]
列,并应用清洗函数。
- 在商品识别前显式创建
- 修改原因:
- 避免
KeyError
:原始代码可能因执行顺序错误导致"text"
列未定义。
- 避免
- 技术细节:
分数
上涨了约40分,暂时排名前5%
参考文章
2025 iFLYTEK AI开发者大赛https://challenge.xfyun.cn/topic/info?type=video-comment-insight&option=ssgy&ch=dwsfsp25-1Datawhale-AI活动
https://www.datawhale.cn/activity/324/learn/191/4330ModelScope 魔搭社区ModelScope——汇聚各领域先进的机器学习模型,提供模型探索体验、推理、训练、部署和应用的一站式服务。在这里,共建模型开源社区,发现、学习、定制和分享心仪的模型。
https://www.modelscope.cn/my/mynotebook/preset