章节摘要:十四道练习按基础(六题)、进阶(五题)、思考(三题)三档编排,覆盖第 6 至 11 章全部主题。只给提示不给答案——答案在你自己的机器上。示例对象一律用公开论文、开源文档与自制样张,遵守第 1 章的合规边界。
开始做题前,准备一个干净的练习环境,一次到位能省去中途装依赖的中断:
practice/ ├── sample/ 样张:公开论文 PDF、自制文档、练习站页面 ├── output/ 各题产物:按题号建子目录 ├── eval/ 评测题用:gold 标注与评测配置 └── notes.md 做题笔记:踩坑记录与结论,比答案更值钱
三条准备纪律。样张全部用公开论文、开源文档与自制 PDF,不碰受保护文档(全书一以贯之的边界,第 1 章);依赖按题安装而不是一次装全,感受每个工具的真实依赖体量;每题产物留在 output 对应子目录,思考题的结论写进 notes.md——练习的交付物是笔记与产物,不是「做过」的感觉。
各档完成标志,做完自查:
| 档位 | 完成标志 |
|---|---|
| 基础题 | 每题有可复跑的脚本或命令,产物留在 output |
| 进阶题 | 有对照数据(前后指标、两工具差异),结论写成短段 |
| 思考题 | 有方案文档:选项、取舍、依据,能对着别人讲五分钟 |
一:用 Scrapy 爬取公开练习站 quotes.toscrape.com 全站,把清洗、内容指纹去重、JSONL 落盘三段管道补齐,统计去重命中率。提示:先用重复标签制造同文异址样本,验证指纹去重真的生效。(第 6.1 节)
二:找一篇双栏排版的公开学术论文 PDF,用 PyMuPDF 分别按内部对象顺序与坐标分栏两种方式提取第一页文本,逐句对比差异。提示:挑公式与图表附近的段落,乱序最明显。(第 7.1 节)
三:写一个分流脚本,对一份混合 PDF(部分页原生文本、部分页扫描)逐页输出路由判定,统计两类页数。提示:字符数阈值取 64 起步,再试 32 与 128 观察边界页的归属变化。(第 7.2 节)
四:用 MinerU 解析一份含表格与公式的公开中文论文,对照原文逐项检查标题层级、表格完整性、公式定界、图片引用四要素,把问题记进治理日志。提示:先跑第 8.2 节的两个校验脚本,再看人工项。(第 8.1、8.2 节)
五:用 docling 把同一份 PDF、一份 DOCX、一份 PPTX 转成 Markdown,统计三种输入的节点类型分布差异。提示:iterate_items 的 label 就是类型标签。(第 9.1 节)
六:对任意一份解析产物 Markdown 实现结构切分,输出块的长度分布直方图(手绘或脚本皆可)。提示:看超长块都来自什么内容——多半是表格或长代码。(第 10.2 节)
七:给第 6 章的 LLM 管道加令牌桶限流,做一次「并发 4 与并发 16」的对照:记录吞吐、失败率与模型侧限流报错次数。提示:失败要分类计数,瞬时失败与持久失败的处理路径不同。(第 6.2、11.3 节)
八:构造一份十页自制 PDF(含双栏、三线表、行内行间公式、页眉页脚),作为固定回归样张,分别用 MinerU 两种后端解析并对比差异。提示:LaTeX 自制样张的要素完全可控,最适合回归。(第 8.1、8.3 节)
九:按第 9.2 节方法搭一次小型对照实验:五个样张、两个工具、三维指标齐全,产出一张决策表。提示:先写控制变量清单再开跑,同机同版本同输入。(第 9.2 节)
十:实现「表格不可切」分块保护:预扫描提取全部围栏代码块与表格块占位,切分后回填,验证超长表用表头冗余兜底的效果。提示:占位符要选正文中不可能出现的字符串。(第 10.2 节)
十一:为抽取管线构造五十条规模的评测集(常规四十、疑难十),实现字段级精确率与召回率脚本,然后改一版提示词跑回归对比。提示:疑难层单独成行报告,别让它淹没在总分里。(第 11.1 节)
十二:你的语料是「八成静态新闻页加两成动态数据面板」,全程用无头浏览器渲染划算吗?设计一个分层方案并估算各层成本占比。提示:第 11.2 节的三层模型先算渲染层占比,再谈方案。(第 2、11.2 节)
十三:团队要在闭源产品里集成文档解析能力,又放不下 MinerU 在复杂中文 PDF 上的效果优势,怎么设计架构与法务流程?提示:双引擎结构是否成立取决于部署形态,把「取决于」展开成具体情形。(第 8.3、9.1 节)
十四:检索系统上线三个月后字段召回缓降,列举至少五个候选原因并设计逐层排查的顺序。提示:从第 7.1 节的「错误向下传导」出发,想想每一层会怎么腐蚀。(第 7.1、10.1、11.1 节)
| 档位 | 题量 | 单题参考用时 | 依赖环境 |
|---|---|---|---|
| 基础题 | 六题 | 半小时到一小时 | Scrapy、MinerU、docling 装好即可 |
| 进阶题 | 五题 | 两到三小时 | 需自备样张与评测集 |
| 思考题 | 三题 | 一晚(写方案文档) | 无环境依赖,重在检索与推演 |
用时不含装环境;建议按档推进,基础题全过再碰进阶——进阶题的对照实验依赖基础题攒下的样张与脚本,跳档做题会重复造轮子。
做完十四题,用三个问题验收自己:能不能不看书说出五段解析流水线?能不能为一份新语料设计完整的加工路径?能不能对着交付清单逐项解释为什么?三问皆是,这本书的目标就达成了。
组队做题的变体:两人互换评测集(你标他的语料、他标你的),再互相跑对方的评测脚本。标注分歧本身就是最好的学习材料——每一个分歧点都暴露一处「你以为显然、其实有歧义」的口径,而口径意识正是第 11.1 节想教的核心。
不做题的读法也成立:把附录 A 的术语当索引,每条试着不看正文复述定义,卡壳的条目回到对应章节重读——这是最快的查漏法。
合规提醒:本节内容仅用于合法授权的数据采集场景;请遵守目标站点的服务条款与 robots 协议,涉及个人信息时遵循相关法律法规。