从问题库到AI回答样本:数据清洗与指标聚合流程

在线体验各类最新模型,更有模型 免费Token 额度领取!
立即体验
简介: 本文介绍AI回答效果评估的数据工程实践,涵盖问题库构建、意图分类(REC/CMP/PUR等)、分层采样、多平台采集、无效样本清洗、品牌别名归一化及指标(提及率/推荐率)聚合。基于阿里云DataWorks+MaxCompute提供端到端可复用方案。

一、问题:采集之前的工程准备
在向AI平台发起批量提问之前,有一项容易被忽视但至关重要的工程准备工作:问题库的构建与治理。

问题的质量直接决定了采集到的回答样本是否可用。如果问题覆盖面不够、意图分类不清晰、表达方式不符合真实用户习惯,那么后续无论做多精细的数据清洗和指标计算,结果的参考价值都会打折扣。

本文从数据工程角度,分享一套从问题库构建到AI回答样本指标输出的完整处理流程,重点涉及问题分类与场景标签、样本清洗与无效回答过滤、品牌别名合并、指标口径定义与聚合四个环节,并结合阿里云DataWorks + MaxCompute给出可复用的实现方案。

二、整体架构
整个流程分为六个阶段:

阶段 核心任务 依托组件 输出
① 问题库构建 围绕分析目标生成覆盖多意图的问题集 规则生成 + 人工审核 原始问题库表
② 问题分类与打标 按用户意图和场景维度分类 MaxCompute SQL + 规则匹配 带标签问题表
③ 分层采样 按场景维度均衡抽样,控制问题分布 MaxCompute采样函数 采样问题集
④ 采集 多平台API调用,获取回答 DataWorks调度 + 采集节点 原始回答表
⑤ 清洗与归一化 剔除无效样本,合并别名 MaxCompute UDF + 维表 标准化样本表
⑥ 指标聚合 按统一口径计算提及率、推荐率等 MaxCompute聚合查询 指标输出表
三、问题库构建与治理
3.1 问题库的数据结构
问题库需要记录每个问题的元信息,以便后续进行分层采样和分类分析:

CREATE TABLE question_bank (
question_id STRING COMMENT '问题唯一ID',
question_text STRING COMMENT '问题原文',
category STRING COMMENT '一级分类(如:推荐/对比/认知)',
sub_category STRING COMMENT '二级分类(如:购买决策/场景发现)',
target_entity STRING COMMENT '问题涉及的目标对象',
difficulty_level INT COMMENT '问题复杂度 1-5',
is_active BOOLEAN COMMENT '是否启用',
created_at DATETIME
) PARTITIONED BY (dt STRING);
3.2 问题分类体系
问题分类需要覆盖用户可能向AI提问的主要意图类型。参考实际用户行为分析,可以将问题分为以下类别:

分类代码 分类名称 典型问题示例 分析价值
REC 推荐决策 “有哪些值得推荐的XX?” 衡量推荐率
CMP 对比分析 “A和B有什么区别?” 衡量差异化认知
PUR 购买意图 “选XX时应该优先考虑哪个?” 衡量购买导向推荐
SCN 场景发现 “XX场景下有什么解决方案?” 衡量场景匹配度
NAV 信息导航 “XX品牌主要是做什么的?” 衡量解释能力
RIS 风险判断 “XX品牌靠谱吗?” 衡量风险认知
3.3 问题分类的规则实现

-- 基于关键词规则的自动分类
SELECT
question_id,
question_text,
CASE
WHEN question_text REGEXP '推荐|选哪个|哪家好|值得买|选择什么' THEN 'REC'
WHEN question_text REGEXP '区别|对比|相比|哪个更|差异|优势' THEN 'CMP'
WHEN question_text REGEXP '购买|价格|多少钱|下单|采购|预算' THEN 'PUR'
WHEN question_text REGEXP '场景|适合|怎么用|解决方案|应用' THEN 'SCN'
WHEN question_text REGEXP '是什么|什么意思|介绍|定义|背景' THEN 'NAV'
WHEN question_text REGEXP '靠谱|安全|风险|问题|投诉|可信' THEN 'RIS'
ELSE 'OTHER'
END AS category
FROM question_bank;
3.4 分层采样策略
问题库构建完成后,需要按分类维度进行分层采样,确保各场景类别在采集样本中均有合理覆盖,避免某一类问题占比过高导致指标偏差。

-- 按分类分层采样,每类抽取指定数量
WITH stratified_sample AS (
SELECT
question_id,
question_text,
category,
ROW_NUMBER() OVER (PARTITION BY category ORDER BY RAND()) AS rn
FROM question_bank
WHERE is_active = TRUE
)
SELECT
question_id,
question_text,
category
FROM stratified_sample
WHERE rn <= 20; -- 每类抽取20个
四、采集与样本清洗
4.1 无效样本的典型特征
采集到的AI回答中,有相当比例需要剔除:

类型 特征 清洗方式
明确拒答 含“无法回答”“不能提供”等 关键词匹配
内容过短 少于20个字符 长度过滤
语义偏离 回答与问题无关 相似度阈值(可选)
格式异常 乱码、截断、重复 规则+长度校验
4.2 基于问题分类的清洗校验
清洗后的样本需要按问题分类进行数据量校验,确保各类别样本数满足后续分析需求:

-- 按分类统计清洗后的样本数
SELECT
q.category,
COUNT(DISTINCT a.sample_id) AS sample_count,
COUNT(DISTINCT a.question_id) AS question_count
FROM valid_samples a
JOIN question_bank q ON a.question_id = q.question_id
GROUP BY q.category
ORDER BY sample_count DESC;
五、品牌别名合并
5.1 别名映射与问题库的关联
品牌别名映射不仅需要在回答端处理,还需要与问题库关联——如果问题中已经使用了品牌别名,需要能够反向映射到标准品牌ID。

CREATE TABLE entity_alias_mapping (
canonical_id STRING,
canonical_name STRING,
alias_name STRING,
alias_type STRING,
status STRING
);
5.2 归一化ETL

SELECT
COALESCE(m.canonical_id, 'UNKNOWN') AS entity_id,
COALESCE(m.canonical_name, extracted.entity_raw) AS entity_name,
extracted.sample_id,
extracted.question_id,
q.category AS question_category
FROM entity_extraction_results extracted
LEFT JOIN entity_alias_mapping m
ON extracted.entity_raw = m.alias_name AND m.status = 'active'
LEFT JOIN question_bank q
ON extracted.question_id = q.question_id;
六、指标口径定义与聚合
6.1 核心指标及口径说明
指标口径的定义需要在数据聚合前明确,确保计算结果可解释、可复核:

指标 计算公式 口径说明
提及率 提及样本数 / 有效样本总数 × 100% 同一问题中同一实体最多计一次
推荐率 推荐样本数 / 有效样本总数 × 100% 含强推荐和一般推荐
强推荐率 强推荐样本数 / 有效样本总数 × 100% 仅统计“首选”“最佳”等
场景提及率 某场景中提及样本数 / 该场景样本总数 × 100% 按分类维度细分
6.2 按问题分类的指标聚合

SELECT
entity_id,
entity_name,
q.category,
COUNT(DISTINCT a.sample_id) AS sample_count,
COUNT(DISTINCT CASE WHEN is_mentioned = 1 THEN a.sample_id END) AS mention_count,
COUNT(DISTINCT CASE WHEN is_recommended = 1 THEN a.sample_id END) AS recommend_count,
ROUND(mention_count 100.0 / sample_count, 2) AS mention_rate,
ROUND(recommend_count
100.0 / sample_count, 2) AS recommend_rate
FROM labeled_samples a
JOIN question_bank q ON a.question_id = q.question_id
WHERE a.is_valid = 1
GROUP BY entity_id, entity_name, q.category
ORDER BY entity_id, q.category;
6.3 综合指标计算
综合得分建议按问题分类设置差异化权重,因为不同场景下各指标的重要性不同:

WITH entity_category_metrics AS (
SELECT
entity_id,
entity_name,
category,
mention_rate,
recommend_rate
FROM entity_metrics_by_category
)
SELECT
entity_id,
entity_name,
-- 推荐决策类:推荐率权重更高
SUM(CASE
WHEN category = 'REC' THEN 0.6 recommend_rate + 0.3 mention_rate
WHEN category = 'NAV' THEN 0.3 recommend_rate + 0.5 mention_rate
ELSE 0.4 recommend_rate + 0.4 mention_rate
END) / COUNT(DISTINCT category) AS weighted_composite_score
FROM entity_category_metrics
GROUP BY entity_id, entity_name;
七、数据质量保障
7.1 问题层面的质量校验
分类覆盖度:各类别问题数量是否均衡,是否存在某类问题过少

问题有效性:问题是否清晰、无歧义、符合真实用户表达习惯

问题独特性:是否存在大量语义重复的问题

7.2 样本层面的质量校验
清洗率监控:各问题类别、各平台的无效样本比例是否在合理范围内

样本量充足性:各分类维度下的样本数是否满足统计分析需求

别名覆盖率:别名映射表是否覆盖了回答中出现的常见别名

7.3 DataWorks任务编排与质量规则

DataWorks质量规则配置示例

  • 规则名称: 样本量检查
    检查对象: valid_samples
    检查条件: COUNT() >= 1000
    告警阈值: COUNT(
    ) < 500

  • 规则名称: 分类覆盖度检查
    检查对象: valid_samples JOIN question_bank
    检查条件: 每个category的样本数 >= 50
    告警阈值: 存在category样本数 < 30
    八、实践总结
    从问题库到AI回答样本再到指标输出,数据工程的价值贯穿从采集前到计算后的全过程。问题库作为数据链路的起点,其质量直接影响后续所有环节的产出。

整个流程中的几个关键节点:

问题分类决定了分析的粒度。分类过细则样本稀疏,分类过粗则分析价值不足。建议基于实际业务场景设计分类体系,并保留一定的灵活性以便后续调整。

分层采样保障了样本的代表性。如果某类问题占比过高,指标会向该场景偏移;反之,样本量不足则统计显著性不足。分层采样是平衡这两者的工程手段。

指标口径需要在聚合前明确。提及率、推荐率的计算公式在不同场景下可能有不同定义,口径不一致会导致结果不可比。建议在DataWorks中将口径逻辑封装为可复用的函数或视图。

在阿里云技术栈上,DataWorks的任务编排能力支撑了从问题库更新、采样、采集到清洗、聚合的完整链路,MaxCompute的计算能力保障了大规模问题库和回答样本的处理效率,数据质量规则保障了各环节产出的可靠性。

相关文章
|
6天前
|
人工智能 安全 API
自媒体多账号管理工具选型核心:安全风控、任务并发与API限流适配
自媒体矩阵扩张至30账号、10平台时,管理效率骤降、风控风险飙升。本文从安全隔离(IP/指纹/权限)、任务并发(账号池/自动调度)与API限流适配(频率控制/熔断降级)三大维度,系统解析企业级多账号管理工具的科学选型逻辑。(239字)
|
5天前
|
自然语言处理 API
字典查询-词典查询-成语词典-新华字典API接口介绍
这是一款阿里云市场提供的汉字查询API服务,支持拼音/部首/汉字/词语多维检索,返回拼音、笔画、部首、释义、出处等详细信息,适用于教育、写作、校对及识字学习场景。
76 1
|
1天前
|
人工智能 缓存 API
阿里云百炼Token Plan计费说明:1个Credits相当于多少Token?不同模型下Token和Credit之间的计算关系
本文深度解析阿里云百炼TokenPlan三大版本(标准/高级/尊享)的Credits单价、百万Tokens成本及与按量计费对比。实测显示:尊享版低至1.12元/百万Tokens,较按量计费(2元)节省44%,性价比突出。附Credits与Token换算详解及适用场景建议。在阿里云百炼官网:https://t.aliyun.com/U/fPVHqY 免费领取千万Tokens
|
1天前
|
人工智能 安全 物联网
2026 年移动端复合型诈骗攻击演进与分层防御技术研究 —— 基于 AI 钓鱼、NFC 攻击与社会工程学场景
本文系统分析2026年AI钓鱼(同比增1380%)、安卓NFC恶意攻击(+188%)与社会工程学融合的复合型移动端诈骗,拆解技术原理,对比iOS 27 Trust Insights与安卓防护差异,构建硬件—系统—应用—行为四层防御模型,并提供可运行的Python风险识别代码,提出三方协同落地路径。(239字)
38 0
|
1天前
|
数据采集 人工智能 算法
跨境AI金融风险怎么防?IP风险画像的实战应用指南
2026年7月,英国FCA呼吁全球协同应对AI金融风险,直指算法黑箱、数据泄露与模型偏见。IP风险画像技术以20+维度(如net_type、risk_score、threat_tags)将IP转化为可量化、可比对、可共享的风险信号,助力跨境风控与监管协同,支持离线部署,兼顾合规与实效。(239字)
|
23小时前
|
人工智能 算法 大数据
什么是AI搜索广告?如何在AI搜索上投放广告?
AI搜索广告正重塑广告逻辑:从关键词竞价转向意图感知、语义匹配与原生嵌入。它更懂用户决策时刻,但尚处早期、透明度低。品牌需以“内容+技术”双轨布局——提升AI可读性、融入平台生态、强化实时监测。未来,赢得AI信任=赢得自然推荐位。(239字)
|
1天前
|
传感器 监控 JavaScript
工业24V电源稳压方案:PW8600/PW75XX/PW2312B/PW2815选型对比
本指南详解24V稳压芯片选型:PW8600(80V/100mA超低功耗LDO)、PW75XX(36V/150mA高精度LDO)、PW2312B(60V/0.6A小封装DC-DC)、PW2815(80V/1.5A工业级DC-DC),覆盖LDO与开关方案,兼顾效率、噪声与可靠性。
|
1天前
新三角洲护航代练系统源码成品系统,需求架构清晰,业务逻辑完整系统链路
本系统为《三角洲行动》定制化护航代练平台,采用主流技术架构,支持老板、打手、客服、管事、工作室五端协同;聚焦细分服务类型,集成智能派单、多级分销与邀请裂变机制,实现高效获客与闭环结算。
|
1天前
|
人工智能 安全 JavaScript
2026 全球支付欺诈演化趋势与分层式反钓鱼检测防御体系研究
本文基于Help Net Security 2026年报告,剖析AI驱动的五大支付钓鱼新趋势,指出传统黑白名单等静态检测严重滞后。创新提出URL解析、DOM动态行为检测、用户操作评分、交易上下文校验四层协同防御架构,配套Python/JS可部署代码,实测识别准确率达92.8%,为银行、支付平台提供可落地的全链路反钓鱼技术方案。(239字)
22 0
|
1天前
|
存储 弹性计算 人工智能
阿里云服务器配置怎么选合适?ECS还是轻量?企业、个人和学生如何选择云服务器配置?
阿里云服务器怎么选?本文详解2026年最新选型逻辑:个人/学生首选轻量应用服务器(38元起,带宽高、免运维);企业/生产环境必选ECS(99元起,弹性稳定、支持集群)。按人群+用途对号入座,避开配置陷阱,省钱又够用!阿里云官方活动:https://t.aliyun.com/U/OTnSAH