用途:处理超长文档(约 200 页以上),在保留结构的前提下解析文本,并把文本切分为语义连贯的片段,用于 AI 训练数据或 RAG 检索。
主要能力:支持 DOCX(python-docx)、PDF(PyMuPDF,导入为 fitz)、EPUB(ebooklib 与 NWTEpubParser)、纯文本/CSV。核心组件包括顶层流水线 LargeDocumentProcessor、结构感知解析器 AdvancedDocumentParser、带进度显示的流式 OCR 处理器 EnhancedOCRProcessor、分块器 IntelligentTextChunker,以及训练数据生成器 AITrainingDataGenerator;安装辅助脚本为 scripts/setup_large_document_processing.py。
分块策略:语义分块(适用于 AI 训练,尊重主题与段落边界)、结构分块(文档有清晰标题/章节时)、固定大小(RAG 需要可预测块大小)、滑动窗口(QA 需要上下文重叠)。也支持面向 Chuukese 的分句处理,其句末标点与英文相同。
使用方式:EPUB 示例可用 from src.utils.nwt_epub_parser import NWTEpubParser,再通过 parser.get_verse(book_num, chapter, verse) 获取经文;NWT EPUB 解析器仅暴露 get_verse,没有 get_chapter/get_book。PDF/DOCX 用 fitz.open 后逐页 page.get_text() 处理。若输入可能含圣经引用,分块调用需用 src/utils/scripture_parser.py 的 protect_scripture_references / restore_scripture_references 包裹。源数据位于 config/data/(不是顶层 data/),输出目录为 output/processed_document/。
内存效率:大 PDF 逐页处理,不加载完整 DOM;EPUB 按章节流式读取;分块结果增量写入 JSONL,不在内存中累积。
输出格式:JSONL(每行一个 JSON 对象,适合大型训练数据集)、JSON 数组(较小批次,供前端使用)、纯文本(便于检查提取文本)。
依赖:PyMuPDF==1.23.8(不要添加 fitz==0.0.1.dev2)、python-docx>=1.2.0、ebooklib>=0.18、beautifulsoup4>=4.12.0。
限制:资料未提供收费、价格、平台或效果信息;JW 出版物提取脚本为 scripts/extract_jwpub.py。