【免费下载链接】HundredCV-Chat
HundredCV-Chat 是一个由 100 位青年简历数据开发而来的中文多轮对话数据集,共包含 24,750 组日常闲聊对话和 4,871 个话题标签,全部由 DeepSeek-V3 自动生成,无一人工标注。它天生适合话题建模、主题分析与对话模型训练,是本篇实战教程的主角。
为什么选择 HundredCV-Chat 做话题建模 🎯
做主题分析系统,最难的不是算法,而是带话题标注的数据。HundredCV-Chat 恰好解决了这个问题:
- ✅每组对话都有话题标签:
topic字段直接标注对话主题,省去人工标注 - ✅话题覆盖广:校园生活、工作经验、兴趣爱好、生活琐事等,贴近真实生活
- ✅对话质量高:由 DeepSeek-V3 生成,流畅度和拟人性显著优于同类开源数据集
- ✅人物角色真实:100 位说话人来自简历数据集 HundredCVs,可用于角色扮演
核心数据一览
| 指标 | 数值 |
|---|---|
| 对话样本数 | 24,750 组 |
| 话题标签总数 | 4,871 个 |
| 说话人数量 | 100 位 |
| 平均对话轮数 | 15.66 轮 |
| 总回合数 | 387,657 |
4,871 个话题标签是怎么来的 🔍
数据集的构建过程完全自动化,分三步完成,详细流程见 README.md:
- 场景生成:从 100 位人物中两两配对,得到 C(100,2) = 4,950 组对话场景
- 话题生成:让 DeepSeek-V3 根据双方简历与个人经历,为每个场景生成至少 5 个话题
- 对话生成:针对每个话题生成多轮对话,最终得到 4,950 × 5 = 24,750 组对话
💡 由于话题由模型自由生成且限制在 10 字以内,4,871 个标签之间既有重叠又各有侧重,天然适合作为主题聚类和话题分类的训练语料。
生成逻辑的核心代码可参考 README.md 中的data_generate函数实现。
数据结构:读懂 4 个关键字段 📊
完整数据存放在 synthesized_.jsonl 文件中,每行一条 JSON 记录,由四个字段构成(字段说明见 README.md):
| 字段 | 含义 | 示例 |
|---|---|---|
topic | 对话话题标签 | 校园生活分享 |
user1 | 第一个说话人 | 李欣怡 |
user2 | 第二个说话人 | 杨欢 |
dialog | 对话内容列表 | 多轮对话字符串 |
一个典型的对话样例如下(完整样例见 README.md):
{ "topic": "校园生活分享", "user1": "李欣怡", "user2": "杨欢", "dialog": [ "user1:杨欢,最近校园里有什么新鲜事吗?", "user2:嗨,李欣怡!我们学校刚刚举办了一次科技节……" ] }实战:构建主题分析系统 🛠️
第一步:加载数据并统计话题分布
用三行代码就能得到话题频次统计,快速了解数据集的话题结构:
import json from collections import Counter topics = Counter() with open("synthesized_.jsonl") as f: for line in f: topics[json.loads(line)["topic"]] += 1 print(topics.most_common(10)) # 查看最高频的话题标签💡 4,871 个话题标签平均只覆盖 24,750 组对话,意味着多数标签出现频次较低——这正是做话题合并与层次聚类的空间。
第二步:提取话题关键词,构建主题词表
对每个topic标签做分词、去重、词频统计,即可得到主题词表。由于话题标签不超过 10 个字,建议同时保留原始标签和分词后关键词两级粒度:
- 粗粒度:直接以
topic原文做主题分类(4,871 类) - 细粒度:分词后统计词频,用 TF-IDF 或词嵌入做主题聚类
第三步:训练话题分类器
利用topic字段作为监督标签,可以直接训练:
- 分类模型:以
dialog文本为输入、topic为标签,训练多分类模型 - 主题模型:用无监督方法(如 LDA、BERTopic)验证数据集的主题分布是否与标签一致
- 检索系统:建立话题标签索引,实现"按主题查找对话"的检索功能
第四步:评估与扩展
- 按话题分层抽样做训练/测试集划分,避免话题分布偏差
- 对比不同话题下的平均对话轮数(数据集整体平均 15.66 轮),分析话题与对话深度的关系
- 结合
user1、user2字段,进一步做"人物 × 话题"的二维画像分析
横向对比:HundredCV-Chat 的优势有多大 📈
官方统计(来源:README.md)显示,HundredCV-Chat 在规模和话题标注上领先明显:
| 数据集 | 样本数 | 平均对话长度 | 平均对话轮数 | 总话题数 | 总回合数 | 人物数 |
|---|---|---|---|---|---|---|
| HundredCV-Chat | 24,750 | 496.28 | 15.66 | 4,871 | 387,657 | 100 |
| NaturalConv | 19,919 | 216.63 | 9.44 | -- | 188,068 | -- |
| DuLeMon | 23,000 | 145.57 | 8.60 | -- | 197,904 | -- |
三个亮点值得注意:
- 平均对话长度是对手的 2~3 倍(496 vs 217 / 146 字符)
- 唯一提供完整话题标签的中文多轮对话数据集
- 说话人可追溯,其余数据集均采用匿名方式
更多应用场景 🚀
除了话题建模,HundredCV-Chat 还可用于(详见 README.md):
- 对话系统:训练和测试多轮对话模型
- 角色扮演:配合 HundredCVs 简历数据,构建"基于简历的角色扮演对话系统"
- 条件对话生成:将话题 + 简历信息作为条件,训练按条件生成对话的模型
快速上手:获取数据集 📥
git clone https://gitcode.com/hf_mirrors/Jax-dan/HundredCV-Chat克隆后核心文件:
- 数据文件:synthesized_.jsonl(约 36MB,JSONL 格式)
- 项目文档:README.md
- 封面图:cover.jpg
如果本数据集对你的研究有帮助,请按 README.md 中的 BibTeX 格式引用。
总结 🎓
HundredCV-Chat 用自动化标注 + 真实人物角色的组合,为话题建模提供了一个开箱即用的中文语料:4,871 个话题标签、24,750 组高质量多轮对话、100 位可追溯的说话人。按照"加载统计 → 词表构建 → 分类器训练 → 评估扩展"四步走,你完全可以基于它搭建一个完整的主题分析系统。对于新手来说,这也是理解"带标注对话数据如何使用"的最佳练习场。
【免费下载链接】HundredCV-Chat
相关推荐
Text Generation WebUI 本地部署完整指南:一条脚本装好,本地 LLM 开箱即用
Text Generation WebUI 本地部署完整指南:一条脚本装好,本地 LLM 开箱即用 装本地 LLM 最头疼的,是依赖装不全、环境变量报错、CUD
人工智能大模型本地部署模型推理服务AI 应用桌面应用工具调用用HundredCV-Chat打造角色扮演对话系统:与HundredCVs配合的完整实战教程
用HundredCV Chat打造角色扮演对话系统:与HundredCVs配合的完整实战教程 HundredCV Chat 是一个基于百人简历数据集 Hundr
用 PocketFlow 为聊天机器人构建话题级 Guardrail:Travel Advisor Chat 实战解析
用 PocketFlow 为聊天机器人构建话题级 Guardrail:Travel Advisor Chat 实战解析 导读 本文将围绕 PocketFlow
人工智能AI AgentAgent 框架
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考