赛事报名链接:2025 iFLYTEK AI开发者大赛-讯飞开放平台

本赛事聚焦电商直播带货场景,要求基于带货视频及评论文本数据,完成三阶段任务

任务一:商品识别

数据方面的信息

数据来源:origin_videos_data.csv (带货视频数据)

随机展示10条记录,我们不难发现这些评论有的来自不同国家且存在NAN(数据缺失)的情况。

对应策略:可引入不同语言的识别统一翻译可以在一定程度上优化商品的识别。

商品识别方面的要求

运行生成 submit_videos.csv 文件,形如

video_id    product_name
......

其中,product_name 一列需要我们通过 origin_videos_data.csv 中 video_desc(视频描述)和video_tags(视频标签)的信息推断处理获得的(【Xfaiyx Smart Translator, Xfaiyx Smart Recorder】这其中之一)

对此,我们可以理解为其本质上是个二分类任务

任务设计思路方面

针对商品识别这二分类任务(判断为 Xfaiyx Smart Translator 或 Xfaiyx Smart Recorder),设计思路可分为四大类:

(1)规则匹配法基于人工设定逻辑,包括关键词权重累加、固定模板匹配、词向量相似度对比,通过文本中关键词、模板或语义关联直接判断类别;

(2)传统机器学习法将文本转化为特征向量(如 TF-IDF),利用逻辑回归、决策树、随机森林等模型学习特征与类别的关系,输出分类结果;

(3)深度学习法借助神经网络处理文本,如 BERT 捕捉深层语义、TextCNN 提取关键短语、双向 LSTM 捕捉上下文依赖等,通过语义理解实现分类;

(4)混合模型法则融合规则与机器学习优势(先规则过滤再模型处理),或融合多类特征(关键词、统计、语义特征),综合提升分类效率与准确性。


这里就先以(4)混合模型法为例子,进行任务的处理。

  1. 规则匹配层:通过PRODUCT_KEYWORDS手动定义商品特征词,直接关联到目标类别
  2. 机器学习层:使用朴素贝叶斯模型处理文本统计特征
  3. 混合策略:先由模型预测,再用规则修正明显错误,结合两者优势

核心代码如下:

*构建混合模型*:传统机器学习 + 规则修正

def build_hybrid_model():# 机器学习模型:朴素贝叶斯 + TF-IDFmodel = make_pipeline(TfidfVectorizer(tokenizer=jieba.lcut, max_features=200, ngram_range=(1, 1), min_df=1),MultinomialNB(alpha=0.1))return model

    最终商品的识别效果大致能达到92+

    补充:当然也可以尝试接入大模型获取更高的分数


    任务二:情感分析

    数据和要求方面的信息

    数据来源:origin_comments_data.csv (评论文本数据)

    需要我们通过comment_text(评论文本)中的信息完成以下4个判断:
            (a)sentiment_category int 关于商品的情感倾向分类

    分类值12345
    含义正面负面正负都有中性不相关

            (b)user_scenario int 是否与用户场景有关,0表示否,1表示是

            (c)user_question int 是否与用户疑问有关,0表示否,1表示是        

            (d)user_suggestion int 是否与用户建议有关,0表示否,1表示是

    对此,我们可以进一步将其拆分为 1个多分类 和 3个二分类任务。

    任务设计思路方面

    基于情感分析任务的语义复杂性、数据规模、多维度标签关联等特性,与神经网络的深层语义建模、自动特征学习、多任务协同能力高度匹配的考虑,这里任务二选择使用(3)深度学习法 , 即融合多个深度学习模型的输出

    1. 双向 LSTM + 注意力机制:通过 LSTM 捕捉文本序列的上下文依赖关系,注意力机制聚焦关键语义片段,适合处理长文本的语义关联。
    2. 多尺度 CNN:通过不同卷积核(3/5/7gram)提取文本中的局部关键特征(如短语、情感词),擅长捕捉短文本的关键模式。
    3. 多模型策略:通过神经网络(LSTM + 注意力、多尺度 CNN)实现文本分类任务​​​​​​

    核心代码如下:

    LSTM模型:双向 LSTM 层通过前向和后向传递捕获文本序列的长距离依赖关系,并且引入注意力机制,通过计算文本各部分的权重分布,自动聚焦于对分类最关键的词和短语,提升模型对重要语义片段的敏感度

    class LSTMModel(nn.Module):def __init__(self, vocab_size, embedding_dim, hidden_dim, num_labels):super().__init__()self.embedding = nn.Embedding(vocab_size, embedding_dim, padding_idx=1)self.lstm = nn.LSTM(embedding_dim, hidden_dim, batch_first=True,bidirectional=True, num_layers=2, dropout=0.2)self.attention = nn.Linear(hidden_dim * 2, 1)  # 注意力机制self.classifier = nn.Sequential(nn.Linear(hidden_dim * 2, hidden_dim),nn.ReLU(),nn.Dropout(0.3),nn.Linear(hidden_dim, num_labels))def forward(self, input_ids):embedded = self.embedding(input_ids)lstm_out, _ = self.lstm(embedded)  # 双向LSTM输出attn_weights = torch.softmax(self.attention(lstm_out).squeeze(-1), dim=1)pooled = (lstm_out * attn_weights.unsqueeze(-1)).sum(dim=1)  # 注意力加权池化return self.classifier(pooled)

    多模型融合预测:通过双向 LSTM(捕捉上下文依赖)和多尺度 CNN(提取局部特征)的互补优势。同时,根据模型性能动态分配权重,自动适应不同任务特性,提升预测稳定性

    def ensemble_predict(task_idx, models, texts, vocab):lstm_model, lstm_f1 = models[0]cnn_model, cnn_f1 = models[1]weights = np.array([lstm_f1, cnn_f1]) / (lstm_f1 + cnn_f1 + 1e-8)  # 按性能加权# LSTM与CNN分别预测lstm_preds = [torch.argmax(lstm_model(batch["input_ids"].to(device)), dim=1).cpu().numpy()for batch in DataLoader(CommentDataset(texts, [0]*len(texts), vocab, MAX_LEN), batch_size=16)]cnn_preds = [torch.argmax(cnn_model(batch["input_ids"].to(device)), dim=1).cpu().numpy()for batch in DataLoader(CommentDataset(texts, [0]*len(texts), vocab, MAX_LEN), batch_size=16)]# 加权融合结果final_preds = []for i in range(len(texts)):pred_counts = np.zeros(NUM_LABELS[task_idx])pred_counts[lstm_preds[i]] += weights[0]pred_counts[cnn_preds[i]] += weights[1]final_preds.append(np.argmax(pred_counts))return final_preds

    最终情感分析效果大致能达到90+

    补充:当然也可以尝试接入大模型获取更高的分数


    任务三:评论聚类

    在任务二的基础上,对对5类特定评论进行聚类分析,并生成5-8个具有代表性的主题词。

    任务设计思路方面

    聚类分析其核心是将数据集中具有相似特征的样本划分为不同的群体(簇),使得同一簇内的样本相似度高,不同簇间的样本相似度低。而根据算法的核心思想和原理,聚类方法可分为多种类型。

    这就简单地罗列比较常见的几种情况,就不过多阐述,有兴趣的小伙伴可自行查阅相关资料。

    对于这些方法而言,不同聚类方法各有优缺点和适用场景,选择时需考虑数据的规模、维度、分布形状、是否有噪声、是否需要预设簇数等因素。

    以及,实际应用中,也可结合多种方法(如先用降维算法处理高维数据,再用聚类算法)以获得更好的效果。


    这里同样以多种方法结合为例子,进行任务的处理(得分大致在40-50区间)。

    对此,还是建议使用星火大模型进行预测。

    毕竟,初步的评分是根据模型的embedding来的。

    1. 针对不同主题(情感 / 场景 / 问题等)定制聚类策略,动态适配数据特性。
    2. 采用多算法融合策略(K-Means+DBSCAN+OPTICS),兼顾结构化聚类与噪声检测。
    3. 通过关键词提取和标签优化提升结果可读性,最终生成标准化输出文件

    核心代码如下:

    多算法融合聚类:KMeans+DBSCAN+OPTICS优势互补

    def cluster_with_ensemble(df, filter_col, filter_vals, output_col, config):# 1. 数据筛选subset = df[df[filter_col].isin(filter_vals)].copy()if len(subset) < 10:  # 小样本特殊处理all_texts = " ".join(subset["comment_text"].tolist())top_words = [w for w, _ in Counter(preprocess_text(all_texts)).most_common(5)]subset[output_col] = " ".join(top_words)return df# 2. 文本向量化X, vectorizer, feature_names = vectorize_text(subset["comment_text"])# 3. 最优聚类数选择best_n, _ = get_best_n_clusters(X, config["n_range"])# 4. 多算法并行聚类kmeans_labels = KMeans(n_clusters=best_n, random_state=42).fit_predict(X)  # 结构化聚类dbscan_labels = DBSCAN(eps=config["eps"], min_samples=config["min_samples"], metric="cosine").fit_predict(X)  # 密度聚类optics_labels = OPTICS(min_samples=config["min_samples"], metric="cosine").fit_predict(X)  # 优化噪声# 5. 结果融合:KMeans为主,密度聚类修正噪声final_labels = kmeans_labels.copy()noise_mask = (dbscan_labels == -1)  # 识别噪声点if noise_mask.sum() > 0:final_labels[noise_mask] = optics_labels[noise_mask]  # 用OPTICS修正噪声# 6. 聚类主题生成cluster_keywords = {}for c in np.unique(final_labels):if c == -1: continue# 计算类中心关键词cluster_mean = np.mean(X[final_labels == c], axis=0)top_indices = cluster_mean.argsort()[::-1][:5]cluster_keywords[c] = " ".join([feature_names[idx] for idx in top_indices])# 7. 关键词融合(类中心分析 + Textrank)text_rank_keywords = [" ".join(textrank(text, topK=5, allowPOS=('n', 'v', 'adj'))) for text in subset["comment_text"]]subset[output_col] = [f"{cluster_keywords[label]} | {text_rank_keywords[i]}" for i, label in enumerate(final_labels)]# 8. 优化可读标签subset = refine_cluster_labels(subset, final_labels, "comment_text", output_col)return df

    到此,三个任务的实现就结束了,感兴趣的小伙伴们也可以去尝试一下 (●'◡'●)


    最后提交

    链接:2025 iFLYTEK AI开发者大赛-讯飞开放平台

    点击【提交结果】,上传submit.zip即可,祝大家都能取得满意的成绩!

    本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
    如若转载,请注明出处:http://www.pswp.cn/diannao/90739.shtml
    繁体地址,请注明出处:http://hk.pswp.cn/diannao/90739.shtml
    英文地址,请注明出处:http://en.pswp.cn/diannao/90739.shtml

    如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

    相关文章

    M|电锯惊魂

    rating: 7.5 豆瓣: 8.7 M&#xff5c;电锯惊魂 悬疑片&#xff0c;不恐怖。 前期中规中矩&#xff0c;中后期bug很多&#xff08;降智、剧情杀等&#xff09;&#xff0c;但是反转优秀。 总之&#xff0c;医生夫妻、两位警察在此片中各有不同程度的降智。也许是这种恐怖、悬疑电…

    【Lucene/Elasticsearch】 数据类型(ES 字段类型) | 底层索引结构

    在 Lucene/Elasticsearch 中&#xff0c;**BKD 树只负责“多维数值”字段**。其余类型仍走传统的 **倒排索引** 或专用格式&#xff1a;| 数据类型&#xff08;ES 字段类型&#xff09; | 底层索引结构 | 说明 | |---|---|---| | text、keyword&#xff08;字符串&#xff09; …

    原型、原型对象

    通俗理解&#xff1a;“类的原型对象就是一块区域里有这个类的实例对象通用的属性和方法”​这就是 JavaScript 中原型&#xff08;prototype&#xff09;的核心作用和设计理念。​​​​“一块区域” 原型对象本身&#xff08;如 String.prototype, Array.prototype, MyClass…

    STM32 IIC通信(寄存器与hal库实现)

    一、IIC基础知识 1. 串口通信与IIC通信串口通信通常需要至少三条线&#xff08;TX、RX和GND&#xff09;&#xff0c;而 I2C 总线仅需要两条信号线&#xff08;SDA和SCL&#xff09;&#xff1b;串口通信仅支持一对一通信&#xff0c;而 I2C 总线支持多机通信&#xff0c;允许单…

    宝塔 php支持sqlserver

    PDOException: SQLSTATE[IMSSP]: This extension requires the Microsoft ODBC Driver for SQL Server to communicate with SQL Server.错误原因这是 PHP 试图连接 SQL Server 数据库&#xff0c;但缺少必要的 ODBC 驱动支持 导致的。具体来说&#xff1a;你使用的是 PDO_SQLS…

    day02-数组part02

    一、长度最小的子数组&#xff08;滑动窗口&#xff09; leetcode 209 长度最小子数组 这道题的核心思想就是使用滑动窗口&#xff0c;滑动窗口三板斧&#xff1a; 初始位置i滑动窗口长度j-i1结束位置j 我们在写代码时是通过for循环来控制结束位置j&#xff0c;而初始位置i…

    天爱验证码深度解析:从原理到实战,构建 Web 安全新防线

    在网络安全日益严峻的当下&#xff0c;验证码作为抵御自动化攻击的重要屏障&#xff0c;其性能与可靠性直接关系到系统的安全稳定。天爱验证码&#xff08;TIANAI CAPTCHA&#xff09;作为国内优秀的开源行为验证码解决方案&#xff0c;凭借独特的技术优势&#xff0c;在电商、…

    软考(软件设计师)软件工程-软件质量,软件测试,McCabe圈复杂度

    软件质量 ISO/IEC 9126 是软件工程领域的经典质量模型&#xff0c;于1991年首次发布&#xff0c;2001年更新后成为软件产品质量评估的国际标准。其核心贡献是将抽象的“质量”概念分解为可度量、可管理的特性体系。以下是深度解析&#xff08;2023年行业实践视角&#xff09;&a…

    CentOS7环境安装包部署并配置MySQL5.7

    卸载MySQL卸载MySQL5.71、关闭MySQL5.7服务service mysqld stop2、查看MySQL安装rpm -qa|grep -i mysqlmysql-community-libs-5.7.35-1.el7.x86_64mysql-community-libs-compat-5.7.35-1.el7.x86_64mysql-community-common-5.7.35-1.el7.x86_64mysql57-community-release-el7-1…

    1-Git安装配置与远程仓库使用

    Git安装配置与远程仓库使用 1. Git 下载与安装 ① 进入Git 官网 https://git-scm.com/ ② 选择合适系统版本下载&#xff0c;本文以windows为例进行下载 当前最新版本为 2.50.1 &#xff0c;浏览器默认下载很慢&#xff0c;用迅雷比较快 ③ 安装Git 我安装在D盘 等待完…

    开源“具身大脑” 实现不同机器人群体协作-RoboBrain

    开源“具身大脑” 实现不同机器人群体协作-RoboBrain 具身大小脑协作框架RoboOS与开源具身大脑RoboBrain&#xff0c;实现跨场景多任务轻量化快速部署与跨本体协作&#xff0c;推动单机智能迈向群体智能&#xff0c;为构建具身智能开源统一生态加速场景应用提供底层技术支持。支…

    【笔记】训练步骤代码解析

    目录 config参数配置 setup_dirs创建训练文件夹 load_data加载数据 build_model创建模型 train训练 记录一下训练代码中不理解的地方 config参数配置 config {data_root: r"D:\project\megnetometer\datasets\WISDM_ar_latest\organized_dataset",train_dir: t…

    Java填充Word模板

    文章目录前言一、设置word模板普通字段列表字段复选框二、代码1. 引入POM2. 模板放入项目3.代码实体类工具类三、测试四、运行结果五、注意事项前言 最近有个Java填充Word模板的需求&#xff0c;包括文本&#xff0c;列表和复选框勾选&#xff0c;写一个工具类&#xff0c;以此…

    【MYSQL8】springboot项目,开启ssl证书安全连接

    文章目录一、开启ssl证书1、msysql部署时默认开启ssl证书2、配置文件3、创建用户并指定ssl二、添加Java信任库1、使用 keytool 导入证书2、验证证书是否已导入三、修改连接配置一、开启ssl证书 1、msysql部署时默认开启ssl证书 可通过命令查看&#xff1a; SHOW VARIABLES L…

    Telegraf vs. Logstash:实时数据处理架构中的关键组件对比

    在现代数据基础设施中&#xff0c;Telegraf 和 Logstash 是两种广泛使用的开源数据收集与处理工具&#xff0c;但它们在设计目标、应用场景和架构角色上存在显著差异。本文将从实时数据处理架构、时序数据库集成、消息代理支持等方面对比两者的核心功能&#xff0c;并结合实际应…

    Vue Vue-route (4)

    Vue 渐进式JavaScript 框架 基于Vue2的学习笔记 - Vue-route 编程式导航和几种路由 目录 编程式导航 详情组件 创建组件 设置路由 电影列表 传参 另一种方式 动态路由 命名路由 别名 总结 编程式导航 点击电影列表 跳转电影详情 详情组件 创建组件 在views中创…

    存在两个cuda环境,在conda中切换到另一个

    进入 openmmlab 环境 conda activate openmmlab 设置环境变量为 CUDA 12.4&#xff08;只影响当前 shell 会话&#xff09; export PATH/usr/local/cuda-12.4/bin:PATHexportLDLIBRARYPATH/usr/local/cuda−12.4/lib64:PATH export LD_LIBRARY_PATH/usr/local/cuda-12.4/lib64:…

    Django 视图(View)

    1. 视图简介 视图负责接收 web 请求并返回 web 响应。视图就是一个 python 函数,被定义在 views.py 中。响应可以是一张网页的 HTML 内容、一个重定向、一个 404 错误等等。响应处理过程如下图: 用户在浏览器中输入网址:www.demo.com/1/100Django 获取网址信息,去除域名和端…

    HarmonyOS基础概念

    一、OpenHarmony、HarmonyOS和Harmony NEXT区别OpenHarmony是由开放原子开源基金会&#xff08;OpenAtom Foundation&#xff09;孵化及运营的开源项目&#xff0c;开放原子开源基金会由华为、阿里、腾讯、百度、浪潮、招商银行、360等十家互联网企业共同发起组建。目标是面向全…

    spark3 streaming 读kafka写es

    1. 代码 package data_import import org.apache.spark.sql.{DataFrame, Row, SparkSession, SaveMode} import org.apache.spark.sql.types.{ArrayType, DoubleType, LongType, StringType, StructField, StructType, TimestampType} import org.apache.spark.sql.functions._…