Files
YG_TDgenerator/README.md

4.5 KiB
Raw Permalink Blame History

YG_TDGenerator - 数据元素问答生成工具

一款用于企业数据治理领域的问答训练数据生成工具。基于远光数据架构表(逻辑模型表、物理模型表、元素治理模板表)生成标准化的问答对,用于训练领域专用问答系统。

功能特点

  • 三表合并:自动合并逻辑模型表、物理模型表、元素治理模板表
  • 多种问答类型:支持字段属性查询、定义查询、模型关联查询
  • 双版本输出:同时生成训练集和验证集(表达方式不同但语义相同)
  • 一体化流程CSV转换→JSON合并→随机抽取→QA生成一条命令完成

目录结构

YG_TDGenerator/
├── csv2json.py          # 主程序:数据处理一体化工具
├── qa_generator.py      # QA问答对生成器
├── config.py            # 配置文件
├── requirements.txt     # Python依赖
├── Data/                # Excel源数据目录可选
├── Data_Export_CSV/     # CSV导出数据目录
├── Data_Export_Json/    # JSON中间数据目录
└── Data_QA_Outputs/     # QA生成结果目录

安装

pip install -r requirements.txt

依赖说明

  • pandas: 数据处理
  • xlwings: Excel文件读取可选用于复杂Excel格式
  • openpyxl: Excel文件读取pandas依赖

使用方法

1. 准备数据

将以下三个CSV文件放入 Data_Export_CSV/ 目录:

  • 远光数据架构逻辑模型表.csv
  • 远光数据架构物理模型表.csv
  • 远光数据架构元素治理模板表.csv

2. 数据处理流程

运行主程序执行完整的数据处理流程:

python csv2json.py

该命令会执行以下三个步骤:

  1. CSV/Excel转JSON将源数据转换为JSON格式
  2. JSON合并:根据字段英文名合并三张表,生成 final.json
  3. 随机抽取从合并结果中随机抽取3000条记录生成 selected.json

3. 生成问答对

python qa_generator.py

生成的文件位于 Data_QA_Outputs/ 目录:

文件 说明
selected_QA.json 训练集问答对
selected_QA_验证集.json 验证集问答对
QA生成报告.json 训练集生成报告
QA生成报告_验证集.json 验证集生成报告

问答类型说明

1. 字段属性查询

根据字段中文名或英文名查询其他属性值:

Q: 请告诉我字段中文名为'客户编号'的字段英文名是什么?
A: 该字段的字段英文名为customer_id。

2. 字段定义查询

根据字段名查询完整定义(所有属性):

Q: 字段中文名为'客户编号'的定义是什么?
A: 客户编号的定义为字段英文名customer_id数据类型varchar长度32...

3. 模型关联查询

根据逻辑模型或物理模型查询关联字段仅对字段数≥3的模型生成

Q: 逻辑模型中文名为'客户信息模型'包含哪些字段?
A: 逻辑模型中文名为'客户信息模型'包含以下字段:客户编号、客户名称、联系方式...

配置选项

编辑 config.py 文件可修改以下配置:

class QAConfig:
    INPUT_FILE = "selected.json"      # 输入文件名
    INPUT_DIR = "Data_Export_Json"    # 输入目录
    OUTPUT_DIR = "Data_QA_Outputs"    # 输出目录
    RANDOM_SEED = 42                  # 随机种子
    SHUFFLE_OUTPUT = False            # 是否打乱输出顺序

输出格式

训练集/验证集格式

[
  {
    "问题": "请告诉我字段中文名为'客户编号'的字段英文名是什么?",
    "回答": "该字段的字段英文名为customer_id。"
  }
]

训练集 vs 验证集区别

特性 训练集 验证集
问句风格 "请告诉我"、"查询" "请问"、"想咨询一下"
答句风格 "该字段的"、"查询结果:" "根据查询,"、"经核实,"
语义 相同 相同
表达 基础正式 正式但有差异

完整工作流程示例

# 步骤1数据处理CSV转JSON + 合并 + 抽取)
python csv2json.py

# 步骤2生成问答对训练集 + 验证集)
python qa_generator.py

注意事项

  1. 确保源数据文件编码为UTF-8或GBK
  2. 字段英文名会自动转换为小写
  3. 模型关联查询仅对字段数≥3的模型生成避免产生过多低价值问答
  4. 训练集和验证集使用不同的表达模板,但语义完全相同
  5. 随机种子固定为42保证结果可复现

许可证

MIT License