乐于分享
好东西不私藏

100 篇 PDF 丢进去,一张文献矩阵表出来

100 篇 PDF 丢进去,一张文献矩阵表出来
开题、写综述、投稿前补文献,干的都是同一件活:几十上百篇文献,要读,要做成表格横向对比。

手工填,两周。

下面这张表,是自动跑出来的:

文献
研究方法
样本量
置信度
Chen 2021
随机对照 RCT
312
Kumar 2022
横断面问卷
1847
Ortega 2020
半结构化访谈
24
Nakamura 2023
纵向追踪
N/A

表内为演示数据。完整的表还有 9 列:标题、第一作者、年份、期刊、研究问题、样本来源、主要发现、作者自述局限、出处页码。

展开看其中一篇,它提取到的是这些:

字段
提取结果
文件名
Kumar_2022_sleep.pdf
第一作者 / 年份
Kumar, R. / 2022
研究问题
睡眠时长与学业倦怠的关系
研究方法
横断面问卷,MBI-SS 量表
样本 / 来源
1847 名本科生,3 所高校
主要发现
睡眠时长与倦怠呈 U 型关系,拐点约 7 小时
作者自述局限
自报数据,无法确认因果方向
出处页码
p.12;p.14
提取置信度

最后两行是关键。出处页码让每一格都能翻回原文核对,置信度标出它自己没把握的地方。上面那张表最后一行填 N/A 而不是编一个,靠的是说明书里「禁止推断」那条硬约束。

先给结论

1.关键不是「让 AI 读文献」,是让它逐篇提取固定字段、落盘成 CSV。这是两回事。

2.三条硬约束决定成败:每个字段必须带原文出处找不到写 N/A 禁止推断一篇处理完立刻写盘。少一条就废。

3.100 篇的成本是几美元量级,时间一两小时,挂着跑不用盯。

4.「本地」不等于「离线」。如果你要处理的是未发表数据或涉密材料,直接跳到第二节看完再动手。

一、它能干到什么程度

能干的:输出上面那张表 —— 每行一篇文献,字段固定,每格可核查。

不能干的:替你判断哪篇重要,替你写综述。

它做的事是:把 100 篇的信息压成一张你能扫完的表,让你自己决定精读哪 15 篇。这个定位想清楚,后面才不会失望。

二、边界:「本地」不等于「离线」

这一节放在前面,因为它可能决定你该不该做这件事。

「本地」的意思是—— 你的 PDF 不会上传到任何第三方网站,文件始终在你自己电脑的文件夹里。

「本地」不意味着离线—— 提取的时候,PDF 的正文内容会发送到模型服务器。这是它能读懂内容的前提。

所以要分情况:

你的材料
能不能这么跑
已发表文献
可以
自己的实验原始数据
不要,先看单位规定
投稿中、未见刊的稿件
不要
有伦审限制或涉密材料
不要

如果你确实要处理不能外传的材料,唯一的办法是用 Ollama 之类的工具跑完全本地的模型,断网也能用。代价很实在:提取质量比在线模型差一个档次,人工复核量要翻上去。

组里有数据合规要求的,先问导师或者单位管数据的人。这不是客气话 —— 这类事出问题是追溯到个人的。

三、准备三件事

1. 一个文件夹,把 PDF 都放进去。文件名不用整理,表里会记录原文件名。

2. 先筛掉扫描版。判断方法最简单:打开 PDF,试试能不能用鼠标选中文字

选中测试
结论
能选中
有文字层,可以处理
选不中
扫描图片,提不出文本,得先 OCR

不筛这一步,跑到一半会出来一批空行。

3. 装 Claude Code(或者 Codex CLI)。

为什么用这类工具而不是网页版对话:它能自己写脚本、自己执行、自己修报错。你不需要会写代码,也不需要一篇篇往对话框里粘。

四、核心:任务说明书

这是全篇最重要的东西。质量全在这份说明书上,不在你用哪个模型。

在放 PDF 的目录里启动 Claude Code,把下面这段整个粘进去:

# 任务:批量提取文献信息,输出矩阵表## 输入当前目录下的 papers/ 文件夹,内含若干 PDF 文献。## 输出在当前目录生成 matrix.csv,UTF-8 with BOM 编码(Excel 直接打开不乱码)。列(严格按此顺序):文件名, 标题, 第一作者, 年份, 期刊, 研究问题,研究方法, 样本/数据来源, 样本量, 主要发现,作者自述局限, 出处页码, 提取置信度## 处理方式(必须遵守)1. 逐篇处理。每处理完一篇,立刻把该行 append   写入 matrix.csv,再处理下一篇。不要把所有   PDF 读完再统一写文件。2. 每篇开始前在终端打印   「正在处理 第N篇/共M篇:文件名」。3. 遇到无法提取文本的 PDF(扫描版、加密、损坏),   不要静默跳过:在 matrix.csv 写入该行,内容   字段全填「无法提取」,并把文件名追加到   failed.txt。## 提取规则(必须遵守)1. 「出处页码」列:填写「主要发现」这条信息所在   的页码。多个页码用分号分隔。2. 原文中找不到的字段,填「N/A」。   禁止根据标题、摘要或常识推断任何字段。   禁止使用「文中未明确说明,但可能是……」   这类表述。3. 「作者自述局限」只填作者自己在 Limitations   或 Discussion 里承认的局限,不要填你自己的   评价。4. 「提取置信度」填 高 / 中 / 低:   高 = 能直接对应原文的明确句子   中 = 需要综合文中多处信息   低 = 原文表述模糊,不确定5. 字段用中文填写,但专有名词、方法名、量表名   保留英文原文。6. 「主要发现」控制在 80 字以内,只写结论,   不写研究过程。## 完成后1. 打印统计:成功 N 篇,失败 M 篇。2. 打印所有「置信度=低」的行数和文件名,   提示我优先人工核对这些。

四个设计要点,值得单独说:

「逐篇处理、立刻写盘」—— 这是能跑 100 篇不崩的唯一办法。一次性全读进去,上下文会爆,而且中途出错前面全白干。

「每个字段带出处页码」—— 这一条把「AI 摘要」变成了「可核查数据」。没有出处,你永远不知道哪一格是它编的。这是整份说明书里最关键的一行。

「找不到写 N/A,禁止推断」—— 不写这条,它会用摘要里的信息去填正文该有的字段,看起来很完整,实际是猜的。

「置信度分级」—— 让它自己标出没把握的地方,你的人工复核就有了优先级,不用 100 篇平均用力。

五、跑起来

粘完说明书,回车。然后去干别的。

100 篇大概一两个小时。终端会一篇篇打印进度,不用盯着:

正在处理 第37篇/共100篇:Kumar_2022.pdf  已写入 matrix.csv正在处理 第38篇/共100篇:Ortega_2020.pdf  已写入 matrix.csv正在处理 第39篇/共100篇:Nakamura_2023.pdf  无法提取文本,已记入 failed.txt正在处理 第40篇/共100篇:Silva_2019.pdf

出错的那一篇不会让整批停下,它记进 failed.txt 继续往下跑。

六、校验:这一步不能省

跑完之后,随机抽 5 篇,按出处页码逐字段核对

抽样为什么够用:提取是同一套规则跑了 100 遍,错误是系统性的,不是随机的。5 篇足够暴露规则层面的问题。

抽检结果
怎么办
错误低于 1 成
可用。重点再核对「置信度=低」那几行
超过 1 成
改说明书重跑,不要手工修表

手工修表是最容易踩的坑:改完这一批,下一批还是错。规则的问题要在规则层面解决。

七、成本

给个量级,别被吓到也别以为免费。

一篇英文文献全文大约 1 万到 2 万 token。100 篇的输入量在一两百万 token。按现在主流模型的价格,100 篇跑完是几美元,不是几百美元。

不着急要的话,用批处理接口(Batch API)提交,价格再打五折,代价是等几十分钟到一小时。

省钱的思路:提取用便宜的小模型,最后的汇总分析用贵的大模型。提取是机械活,不需要最强的推理能力。

八、表出来之后

矩阵表本身只是原料。值钱的是接下来这几步:

按方法分组统计—— 哪种方法用得最多,哪种几乎没人用。后者往往就是你的切入点。

让它找出结论互相矛盾的文献对—— 综述里最值钱的段落,也是最难手工找的。表格化之后,一句话就能让它扫出来。

出图—— 每年发表量趋势、方法分布饼图。开题报告直接能用。

领取

上面那份任务说明书,加上一张校验清单(抽样核对该看哪几项),我整理成了纯文本,可以直接粘。

后台回复【矩阵】领取。


下一篇讲怎么让它从这张表里找出互相矛盾的结论—— 综述里最难写、也最能体现你读透了文献的那一段。