You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为Falcon-7b/40b模型创建数据集?docx转JSON批量方法咨询

批量将DOCX数据转换为Falcon微调所需的JSON格式

步骤1:提取DOCX文件内容

用Python的python-docx库可快速提取docx中的纯文本,先安装依赖:

pip install python-docx

提取单文件内容的代码示例:

from docx import Document

def extract_docx_text(docx_path):
    doc = Document(docx_path)
    full_text = []
    for para in doc.paragraphs:
        if para.text.strip():  # 跳过空段落
            full_text.append(para.text.strip())
    return "\n".join(full_text)

步骤2:适配Falcon微调的JSON结构

Falcon微调常用两种JSON格式,根据你的任务场景选择:

  • 指令-响应型(对话/任务类微调):适用于问答、指令执行任务,结构示例:

    {"instruction": "用户指令/问题", "response": "模型输出/回答"}
    

    若docx中是成对的指令与响应,需按实际格式拆分内容(比如固定分隔符、标题标识)后生成对应结构。

  • 单文本型(预训练/续写类微调):适用于纯文本续写、领域知识增强,结构示例:

    {"text": "提取出的DOCX文本片段"}
    

以指令-响应型为例,假设docx中用"---"分隔不同样本,代码可写为:

def convert_to_falcon_json(raw_text):
    samples = []
    split_samples = raw_text.split("---")
    for sample in split_samples:
        if not sample.strip():
            continue
        # 按每行拆分指令和响应(需根据你的docx实际格式调整逻辑)
        parts = sample.strip().split("\n", 1)
        if len(parts) == 2:
            instruction, response = parts[0].strip(), parts[1].strip()
            samples.append({"instruction": instruction, "response": response})
    return samples

步骤3:批量处理并保存JSON文件

如果有多个docx文件,可遍历文件夹批量转换:

import os
import json

def batch_convert(docx_dir, output_json_path):
    all_samples = []
    for filename in os.listdir(docx_dir):
        if filename.endswith(".docx"):
            docx_path = os.path.join(docx_dir, filename)
            text = extract_docx_text(docx_path)
            samples = convert_to_falcon_json(text)
            all_samples.extend(samples)
    # 保存为JSONL格式(Falcon微调常用行分隔JSON)
    with open(output_json_path, "w", encoding="utf-8") as f:
        for sample in all_samples:
            json.dump(sample, f, ensure_ascii=False)
            f.write("\n")

# 调用示例
batch_convert("你的docx文件夹路径", "falcon_train_data.jsonl")

注意事项

  • 文本清理:若docx含页眉、页脚或表格,需额外处理表格内容(通过doc.tables遍历单元格),过滤冗余格式标记。
  • 样本拆分:若docx结构复杂,可依据标题关键词(如"问题:""回答:")调整拆分逻辑,确保样本划分准确。
  • 格式验证:转换后检查JSONL文件,确保无语法错误,字段名与Falcon微调要求匹配,避免特殊字符导致解析失败。

内容的提问来源于stack exchange,提问作者cetusian

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 04:07:23