带货视频评论的用户洞察 科大讯飞AI算法赛 Datawhale AI夏令营

发布于:2025-07-10 ⋅ 阅读:(25) ⋅ 点赞:(0)

赛题

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)。

后续修改思路

一、商品识别优化:规则+模型混合策略

  1. 规则匹配(rule_based_product

    • 技术细节
      • 构建商品关键词词典(如"翻译"对应"translator"),通过统计关键词出现次数进行匹配。
      • 采用大小写不敏感的count方法,确保多语言兼容性(如德语Übersetzer、意大利语traduttore)。
    • 修改原因
      • 解决数据不足问题:原始模型仅依赖85条标注数据,容易过拟合。规则匹配利用商品名称与关键词的强关联性,直接覆盖明确样本。
      • 提升泛化能力:通过多语言关键词覆盖不同地区的视频描述(如含德语、意大利语的视频)。
  2. 混合策略(规则优先,模型兜底)

    • 技术细节
      • 规则无法判断的模糊样本(如关键词计数相等)交由模型处理。
      • 模型训练仅使用标注数据(train_mask),避免污染测试集。
    • 修改原因
      • 降低模型复杂度:规则过滤后,模型仅需处理少量模糊样本,减少训练难度。
      • 提升准确性:规则覆盖明确场景,模型补充复杂场景,形成互补。

二、情感分析优化:模型定制与异常处理

  1. 模型选择优化

    • 技术细节
      • 多分类任务(sentiment_category
        • 使用RandomForestClassifier(100棵树),结合ngram_range=(1,2)捕捉上下文关联(如“语音翻译”)。
        • class_weight="balanced"解决类别不平衡问题。
      • 二分类任务(用户场景/疑问/建议)
        • 使用SGDClassifier(loss="log_loss"),等效于逻辑回归,适合轻量级任务。
        • 添加stop_words="english"过滤无意义英文停用词(如"I""the")。
    • 修改原因
      • 提升模型性能:随机森林适合多分类任务的复杂模式,而逻辑回归适合二分类任务的高效训练。
      • 避免过拟合:通过ngramstop_words控制特征维度,平衡模型复杂度。
  2. 标签类型与异常处理

    • 技术细节
      • 将标签转换为int类型(astype(int)),避免浮点数误差。
      • sentiment_category的预测结果进行范围校验(apply(lambda x: x if 1<=x<=5 else 5))。
    • 修改原因
      • 确保输出格式合规:提交文件要求整数类型,避免因类型错误导致评分失败。
      • 修正异常预测:模型可能因噪声数据输出非法值(如06),通过校验确保结果在[1,5]范围内。

三、评论聚类优化:动态聚类数与关键词提取

  1. 动态选择聚类数(find_optimal_k

    • 技术细节
      • 基于**轮廓系数(Silhouette Score)**评估聚类质量,自动选择[5,8]区间内的最佳k值。
      • 使用TF-IDF向量化文本,结合KMeans计算聚类标签。
    • 修改原因
      • 适应不同数据分布:固定n_clusters=2可能导致过度简化(如用户疑问评论需更多簇)。
      • 提升聚类有效性:轮廓系数量化聚类紧密度,避免人工选择不合理的簇数。
  2. 关键词提取优化(get_cluster_keywords

    • 技术细节
      • 计算每个词的平均TF-IDF值,而非简单取前N个高频词。
      • 通过X.mean(axis=0)获取全局重要性,过滤低权重词汇(如停用词)。
    • 修改原因
      • 增强主题相关性:平均TF-IDF反映词对聚类的整体贡献,而非局部高频(如标点符号)。
      • 减少噪声干扰:避免因个别文档中高频但无意义的词(如"it")主导主题。
  3. 数据类型兼容性处理

    • 技术细节
      • 在赋值前将目标列(如positive_cluster_theme)转换为str类型。
    • 修改原因
      • 避免KeyErrorFutureWarning:原始列可能包含NaNfloat类型,导致字符串列表赋值失败。

四、其他优化:文本清洗与噪声处理

  1. 强化文本清洗(clean_text/clean_comment

    • 技术细节
      • 去除HTML标签(如<br>)、特殊符号(非字母数字和中文)。
      • 移除单字符(如"I")和多余空格,保留有效词汇。
    • 修改原因
      • 提升特征质量:噪声字符(如"ü.")会干扰TF-IDF和模型训练。
      • 增强跨语言兼容性:保留中文字符,支持多语言评论分析。
  2. 代码执行顺序调整

    • 技术细节
      • 在商品识别前显式创建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


网站公告

今日签到

点亮在社区的每一天
去签到