SuperAPI AI 工具集

doc-to-vector-dataset-generator

数据与分析

查看项目

更新于 10-15 09:27

技能介绍

用途

Doc-to-Vector Dataset Generator 用于把文档转换为高质量的向量检索数据集。它面向需要为嵌入模型和向量搜索准备训练或索引数据的场景,将原始文档处理成干净、分块、带元数据、去重后的 JSONL 文件。

主要能力

该技能描述了一条完整的处理流水线,包含以下步骤:

  1. 从多种格式提取文本(PDF、DOCX、HTML)
  2. 清洗文本(去除噪声、归一化)
  3. 按语义边界进行策略性分块
  4. 添加元数据(来源、时间戳、分类)
  5. 去重(近重复检测)
  6. 质量检查(长度、内容验证)
  7. 导出 JSONL(每行一个分块)

文本提取

资料提供了 PDF 提取示例,使用 pymupdf 逐页读取文本;以及 Markdown 提取示例,直接读取文件内容。

文本清洗

使用正则表达式去除多余空白、页码、可选去除 URL,并进行 Unicode 归一化。

语义分块

按段落优先切分,在不超过最大分块大小(默认 1000)的前提下合并段落,尽量保持语义边界。

元数据提取

为每个分块生成元数据,包括来源文件路径、分块 ID、分块索引、字符数、词数、创建时间,以及内容分类标记(是否含代码、是否含表格、语言检测)。

去重

使用 scikit-learn 的 TfidfVectorizer 计算 TF-IDF 向量,再通过余弦相似度矩阵找出相似度超过阈值(默认 0.95)的近重复分块并移除。

质量检查

校验分块的最小长度(50)、最大长度(5000)、字母字符占比(不低于 0.5),并检查语言是否为英语。

JSONL 导出

将分块列表逐行写入 JSONL 文件,每行一个 JSON 对象,包含 text 和 metadata 字段。

完整流水线

资料提供了一个 process_documents 函数示例,遍历输入目录下的 Markdown 文件,依次执行提取、清洗、分块、元数据添加、质量检查、去重和导出,并打印处理的分块数量。

使用方式

资料以 Python 代码示例的形式展示各步骤实现,包括函数定义和完整流水线。使用者可参考这些代码构建自己的文档处理流程。资料未提供安装命令、依赖清单或命令行调用方式。

适用场景

适用于需要为向量数据库或嵌入模型准备文档数据集的场景,例如构建检索增强生成(RAG)系统的知识库、准备语义搜索索引数据等。

限制

资料中的质量检查示例将语言限制为英语(language != "en" 则丢弃),因此非英语内容可能被过滤。分块大小、去重阈值、质量检查阈值均为示例默认值,可根据需要调整。资料未说明支持的具体文件格式完整列表、性能表现或与其他工具的集成方式。