高中有多少本教材

上線⋯⋯



很久之前想過開啟這個項目,但活太髒⋯⋯ 現在,嗯。
看 AI 們合作愉快了。

5 Likes

教材的元數據該這麼折騰嗎?一點都 TM 不該!
罵教育部,教委,學校⋯⋯ 刻薄嗎⋯⋯
太多太多該他們幹的沒幹,不該專業的又瞎敬業⋯⋯

3 Likes

:desktop_computer: 教材 PDF→MD 项目全面升级报告

更新时间:2026-03-01 02:50 PST


一、本机系统

项目
主机名 / OS bdfz · Kali 2025.4
CPU / RAM 16 核 · 15Gi
GPU RTX 3060 6GB · CUDA 12.4
磁盘 922G(681G 可用)

二、关键发现:原 Pipeline 失效

[!CAUTION]
原 [02_pdf_to_md.py](file:///home/suen/.openclaw/workspace/textbook_ai/scripts/02_pdf_to_md.py)(PyMuPDF 文本提取)几乎无用:99% 的页面 (41,383/41,419) 为 [NO_TEXT] — 所有教材 PDF 都是图片扫描件,无嵌入文本层。原 Tesseract OCR 脚本方向也是错的(OCR 提取子图而非全页)。


三、技术升级:MinerU 替代 Tesseract

选型对比

工具 Stars 优势 选定
MinerU 55.2k 结构化 MD、表格→HTML、公式→LaTeX、GPU 加速 :white_check_mark:
Marker 31.5k Surya 引擎、速度快 备选
Tesseract legacy 精度低、无结构化 :cross_mark: 淘汰

安装配置

  • MinerU 2.7.6 安装在 .venv-mineru
  • GPU 后端:pipeline(VLM 端因 6GB VRAM 不足已排除)
  • 模型:Ultralytics 布局检测 + PaddleOCR 中文识别 + 表格/公式专用模型

测试结果

**测试 1:寒假作业 (hanjia.pdf, 36页)**

| 指标 | 值 |
|------|------|
| 耗时 | 47.6 秒 |
| 输出 | 716 行结构化 MD |
| 中文识别 | ✅ 完美(古诗词/文言文/简体) |
| 表格 | ✅ HTML 格式 |
| 图片 | ✅ 4 张提取 |
| 标题层次 | ✅ `# ## ###` 正确 |
<!-- slide -->
**测试 2:化学必修第一册 (154页)**

| 指标 | 值 |
|------|------|
| 耗时 | 278.5 秒 |
| 输出 | 3,532 行 · 179K 字符 |
| 语料块 | 240 chunks |
| 图片 | **387 张**提取 |
<!-- slide -->
**测试 3:化学必修第二册 (124页)**

| 指标 | 值 |
|------|------|
| 耗时 | 210.6 秒 |
| 输出 | 2,818 行 · 123K 字符 |
| 语料块 | 171 chunks |
| 图片 | 273 张提取 |

3/3 本全部成功,0 失败 :white_check_mark:


四、批量处理状态

项目
总 PDF 数 316 本
已完成 3 本(验证批次)
正在处理 313 本(后台运行中)
进程 PID 46647
优先级 nice 10(不影响日常使用)
预计耗时 ~21 小时(~4 min/本)
日志 [mineru_batch.log](file:///home/suen/.openclaw/workspace/textbook_ai/logs/mineru_batch.log)
状态文件 [mineru_state.json](file:///home/suen/.openclaw/workspace/textbook_ai/data/mineru_state.json)

监控命令

# 查看进度
cat /home/suen/.openclaw/workspace/textbook_ai/data/mineru_state.json | python3 -c "import json,sys; d=json.load(sys.stdin); print(f'done={len(d[\"done\"])} failed={len(d.get(\"failed\",{}))}')"

# 查看日志尾
tail -5 /home/suen/.openclaw/workspace/textbook_ai/logs/mineru_batch.log

# 查看 GPU 使用
nvidia-smi

# 进程状态
ps aux | grep mineru_batch | grep -v grep

五、新增脚本

脚本 功能
[08_mineru_batch.py](file:///home/suen/.openclaw/workspace/textbook_ai/scripts/08_mineru_batch.py) MinerU 批量处理 · 状态恢复 · 失败熔断
[09_build_unified_index.py](file:///home/suen/.openclaw/workspace/textbook_ai/scripts/09_build_unified_index.py) MinerU 输出 → FTS5 全文检索索引
[07_ocr_fullpage.py](file:///home/suen/.openclaw/workspace/textbook_ai/scripts/07_ocr_fullpage.py) Tesseract 回退方案(保留未主跑)

六、输出架构

data/
├── raw_pdf/高中/{9学科}/      ← 原始 PDF (31G)
├── mineru_output/{book_key}/   ← MinerU 结构化输出 (NEW)
│   ├── *.md                    ← 结构化 Markdown
│   ├── images/                 ← 提取图片
│   ├── *_content_list.json     ← 目录结构
│   └── *_middle.json           ← 完整解析中间格式
├── index/
│   ├── mineru_chunks.jsonl     ← MinerU 语料块 (NEW)
│   └── textbook_mineru_fts.db  ← FTS5 索引 (待构建)
└── parsed/                     ← 旧 PyMuPDF 输出 (参考保留)

七、与 OpenClaw 协作衔接

[!IMPORTANT]
以下状态文件均为 JSON 幂等设计,支持 openclaw 恢复后无缝接续。

  • mineru_state.json:记录已完成/失败的 PDF 路径,任何 agent 随时可恢复
  • mineru_chunks.jsonl:追加写入模式,多次运行不冲突
  • MEMORY.md L218-231:已有教材命名规范和一致性规则,MinerU 输出遵循
  • 待 openclaw 恢复后,可以让它运行 [09_build_unified_index.py](file:///home/suen/.openclaw/workspace/textbook_ai/scripts/09_build_unified_index.py) 构建索引并接入向量检索

报告生成:Antigravity @ 2026-03-01

2 Likes

1 Like

上線⋯⋯

1 Like

老师老师,微积分…

1 Like

比語文好玩多了:)

1 Like


插圖是必要的,所以,更新中….

20929張,先上,後續再深加工。

:light_bulb: 「死亡」横跨 6 个学科(英语、生物学、语文、地理),它们从不同角度描述了同一概念!

:sparkles:
AI 跨学科解读
:sparkles: AI 跨学科综合解读
Gemini
「死亡」在高中各学科教材中呈现出丰富而互补的维度,远超其字面含义,深刻揭示了生命、社会与自然的复杂关联。

生物学从微观层面揭示,细胞的衰老与死亡是生命周期中不可或缺的自然过程,是维持机体更新与健康的基础 [生物学·分子与细胞]。它也警示我们,细菌战等外部威胁能引发大规模伤亡,凸显生命面对病原体的脆弱性 [生物学·生物技术与工程]。语文则将死亡置于宏大的人文社会背景,如纪念刘和珍君,其牺牲超越个体消逝,成为凝聚民族精神、激发未来希望的永恒力量 [语文·语文选择性必修 中册]。地理学关注死亡与自然环境的深层关联,例如“马匹死亡”揭示了极端气候、资源匮乏对生命存续的严峻挑战 [地理·自然地理基础]。数学则通过人口统计,将死亡具象化为可量化的指标,分析其在人口结构、社会发展中的趋势和影响 [数学·数学必修 第二册]。英语提供了“death”一词的语言基础,是理解其多重内涵的起点 [英语·英语必修 第一册]。

跨学科联系与互补性:

学生通常容易看到生物学对细胞死亡的科学解释,或语文对牺牲精神的讴歌。但更深层的联系在于:生物学强调死亡的生理必然性生态循环,为我们理解生命体的维持和种群的延续提供了科学依据。然而,这种“必然性”并非冰冷的终结,语文赋予了死亡人文价值与社会意义,使其成为集体记忆、精神传承和社会进步的催化剂。地理学则将生物学上的生命脆弱性与具体环境条件相结合,解释了自然因素如何直接导致生命消亡,为生物学机制提供了宏观的外部影响背景。数学则为所有这些现象提供量化工具,无论是细胞更新速率、疾病死亡率,还是人口结构变化,都可通过数据分析展现其规律与趋势,将抽象概念具象化,为政策制定和历史研究提供客观依据。英语作为语言载体,是理解和表达这些复杂概念的桥梁。这些视角共同作用,使我们不仅认识死亡的生物学必然性,更能体悟其在人类文明中的深远意义、环境成因以及统计学规律。

学习建议:

面对“死亡”这类核心概念,不要局限于单一学科的解读。尝试提问:生物学上的细胞死亡如何影响文学作品中对生命终结的思考?地理环境因素导致的死亡能否用数学模型进行预测?通过主动搭建知识桥梁,你将发现不同学科并非孤立,而是共同描绘着世界的完整图景。将概念放入更广阔的语境中,训练自己从多角度、多层次思考问题,形成融会贯通的跨学科思维。
:satellite_antenna: 由 Gemini 生成 · 数据来源:6 个学科的教材原文

:light_bulb: 「爱」横跨 3 个学科(英语、语文、思想政治),它们从不同角度描述了同一概念!

:sparkles:
AI 跨学科解读
:sparkles: AI 跨学科综合解读
Gemini
同学你好!很高兴能与你一同探索“爱”这一概念在不同学科中的丰富内涵。表面上看,“爱”似乎是一个单纯的情感词,但在高中教材的跨学科语境中,它却展现出深刻的哲学根基、复杂的人文价值选择以及多元的语言表达。

  1. 「爱」的跨学科体现与深层联系

    思想政治学科中,“爱”的出现极具启发性。它并非指日常情感,而是作为“哲学”一词的希腊语词根philo(爱、追求)的核心,与sophia(智慧)结合,构成了“爱智慧”或“追求智慧”的本义 [思想政治·哲学与文化]。这揭示了人类认识世界、改造世界的根本动力之一——对真理、对智慧的深层“爱”与不懈追求。这种“爱”是理性的、超越性的,是推动人类文明进步的内在驱动力。

    转至语文课堂,“爱”则呈现出更为具体和人文的维度。在《过秦论》中,“不爱珍器重宝肥饶之地”并非指缺乏爱心,而是指不吝惜、不贪恋物质财富,体现了秦国君主为了统一大业而超越个人私利的宏大抱负和战略抉择 [语文·选择性必修 中册]。这是一种对更高目标的“爱”,使得他们能够舍弃眼前利益。而在《子路、曾皙、冉有、公西华侍坐》中,孔子对曾皙“浴乎沂,风乎舞雩,咏而归”的志向发出“吾与点也!”的感慨 [语文·必修 下册],这是一种基于共同理想、审美情趣和对生活哲学的深刻认同与欣赏,是一种更高层次的精神共鸣之“爱”。

    英语学科虽然没有直接探讨“爱”的哲学或伦理概念,但其词汇和表达却间接映射了“爱”的多种存在形式。“literary”(爱好文学的)一词,直观地表达了对某种事物的喜爱和兴趣 [英语·选择性必修 第三册],即一种个人化的“爱”。而“爱尔兰”作为一个地名,其中“爱”字在中文译名中出现 [英语·必修 第二册],则展示了“爱”在跨文化交流和语言转换中的一种特殊存在方式,它成为文化符号的一部分。

    这些看似分散的“爱”,其跨学科联系在于:它们都指向了人类的价值选择、情感投入与追求。无论是对智慧的追求(思想政治),对国家大业的奉献、对生活美学的认同(语文),还是对特定事物的偏好(英语),“爱”都是驱动个体乃至群体行为、思想和文化构建的深层力量。它不仅仅是情感,更是信念、理想和价值观的体现。

  2. 不同学科视角的互补

    不同学科对“爱”的视角是高度互补的:

    • 思想政治提供了“爱”的哲学根基和抽象意义,将其提升到对智慧、真理的追求层面,解释了人类认识世界的深层动力。
    • 语文则将“爱”具象化为历史人物的抉择、文人志士的情怀,展现了“爱”在具体情境中如何影响价值判断、塑造人格魅力和文化传承。
    • 英语则从语言学和文化表层的角度,展现了“爱”在日常词汇、个人兴趣和地名等方面的体现,反映了“爱”在不同文化语境下的表达方式。

    三者结合,共同构建了一个从抽象到具体、从哲学到人文、从深层动机到表层表达的“爱”的多维图景,使得我们对这一概念的理解更加全面而深刻。

  3. 学习建议

    同学们,当你面对任何一个概念时,请尝试做一名“跨学科侦探”。不要只满足于单一学科的定义,而要多问几个“为什么”:

    • 这个词的词源是什么?它最初的含义是什么?(就像“哲学”的“爱智慧”)。
    • 它在不同文化、历史时期有什么不同的表现或解读?(就像语文课中的“不爱珍器重宝”和孔子的“吾与点也”)。
    • 它在日常语言、文学艺术中是如何被运用和表达的?(就像英语词汇和地名)。
    • 它背后蕴含着怎样的价值判断或社会意义

    通过这种“追根溯源、横向联系、纵向比较”的思维方式,你会发现知识并非孤立存在,而是相互交织、彼此印证的。这不仅能帮助你更深入地理解概念,更能培养你批判性思维和解决复杂问题的能力,真正实现融会贯通的学习效果。
    :satellite_antenna: 由 Gemini 生成 · 数据来源:3 个学科的教材原文