ShareGPT数据集用于构建FAQ自动生成系统:从对话数据中提取常见问题的方法

ShareGPT数据集用于构建FAQ自动生成系统:从对话数据中提取常见问题的方法

人工智能

从ShareGPT构建FAQ知识库需四步:一、按轮次与疑问标记抽取高频human提问;二、用语义聚类合并近义问题;三、依gpt回复动词数、术语密度等加权筛选高价值问题;四、结合system字段按领域聚焦提取。

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

如果您希望从ShareGPT这类真实多轮人机对话数据中自动构建FAQ知识库,但发现原始对话未标注问题频率、意图边界或答案有效性,则可能是由于对话文本缺乏结构化语义切分与高频模式识别。以下是基于ShareGPT数据提取高价值常见问题的多种方法:

一、基于轮次结构与提问密度的显式问题抽取

该方法利用ShareGPT中human消息天然作为用户提问的特性,通过统计单位会话内human发言频次、位置分布与句式特征(如含疑问词、问号、祈使动词),筛选出高复现率、低歧义度的原始提问文本,作为FAQ候选问题源。无需重写,保留真实表达习惯。

1、遍历每条ShareGPT样本的conversations数组,提取所有from: "human"字段的content值。

2、对每个human内容执行标点与词性双重过滤:仅保留以“?”结尾,或包含“怎么”“如何”“为什么”“能否”“是否”等中文疑问标记的句子。

3、按字符串完全匹配方式统计所有human提问的出现频次,剔除出现次数<3的低频提问,保留高频提问集合。

4、对高频提问去重并按频次降序排列,生成初始FAQ问题列表。

二、基于语义聚类与中心句识别的问题泛化合并

该方法针对语义相近但表述不同的一组提问(如“重置密码步骤?”“忘记密码怎么办?”“账号密码丢了怎么登录?”),使用无监督语义嵌入将它们聚为一类,并从中选取最简明、覆盖度最高的句子作为该类代表问题,实现问题归一化与泛化压缩。

1、使用m3e-base或bge-m3模型对全部过滤后human提问进行向量化,生成768维语义向量。

2、采用HDBSCAN算法进行密度聚类,设定min_cluster_size=5,metric="cosine",自动发现语义簇。

3、对每个聚类结果,计算各句向量到簇中心的余弦距离,选取距离最小的句子作为该簇中心句。

4、将中心句作为该类问题的标准表述,替换原簇内所有变体,形成精炼FAQ问题集。

Auto-GPT

AutoGPT是一个强大的AI Agent开源应用程序,能够自主执行各种任务

下载

三、基于上下文依赖强度的问题价值加权筛选

该方法识别在多轮对话中引发实质性gpt回复(含操作步骤、术语解释、条件判断)的human提问,赋予更高FAQ优先级,排除仅起承转合作用或信息确认类低信息量提问,提升问题实用性权重。

1、对每条human提问,提取其紧邻的下一条gpt回复,并统计该回复中动词短语数量(如“点击”“输入”“选择”“检查”)、专业术语密度(TF-IDF值>0.8的领域词占比)及句子长度(≥35字)三项指标。

2、设定复合得分公式:Score = 0.4×动词数 + 0.3×术语密度 + 0.3×(句子长度/100),对所有提问计算得分。

3、按Score排序,截取Top 20%提问作为高价值FAQ候选。

4、人工抽检其中动词数≥3且术语密度>0.25的提问,确认其是否具备独立解答价值。

四、基于system指令约束的问题领域聚焦提取

该方法利用ShareGPT中可选的system字段,将提问按预设角色或领域标签(如“医疗咨询”“编程调试”“金融理财”)分组,在各子集中分别执行高频抽取,确保FAQ覆盖垂直场景,避免通用问题稀释专业性。

1、筛选含非空system字段的样本,提取system文本并使用规则+关键词匹配分类至预定义领域标签(如含“代码”“报错”“Python”→“编程调试”)。

2、对每个领域标签下的所有human提问,单独运行步骤一中的频次统计与疑问标记过滤。

3、在各领域内保留频次≥2的提问,跨领域去重时仅保留领域专属术语出现频次最高的那个版本(如“pip install失败”保留在编程类,“安装软件失败”归入通用类)。

4、输出按领域组织的FAQ结构化JSON文件,字段包括domain、faq_question、supporting_sessions_count。

本文地址:https://www.sztg.com.cn/article/675591.html

如非特殊说明,本站内容均来自于网友自主分享,如有任何问题均请联系我们进行处理!

猜您喜欢