AI 写作工具一次投喂几十篇论文之后生成的综述,最先要怀疑的不是文笔,而是引用编号和它旁边那句话的对应关系。编号连号、格式整齐,只说明生成阶段把参考文献拼齐了,不代表第 7 条文献真的写了第 7 段里的那句论断。核对的目标可以写得很具体:把每条引用还原成「论断句—被引文献—原文位置」的三元组,逐条确认,而不是整体看一眼觉得顺。
适用场景:用写作助手或大模型一次性投喂多篇论文,产出带编号引用的综述草稿,准备提交或发布之前。操作动作:先把引用条目抄成独立清单,再回原文定位被引的那句话,区分支撑型与背景型,最后按可信层级排队修改。验证方式:每条引用都能在原文中找到对应句子,或明确标注为无法定位。风险边界:定位不到、年份对不上、原文摘要与正文不一致时,一律按不可靠处理,不能靠“读起来像”放行。
把生成报告里的引用条目单独抄出来
第一步是脱离上下文。盯着原报告一边读一边核对,很容易被行文带着走,把“读起来通顺”当成“引用正确”。把引用条目单独抄成一份清单,每条记录四个字段,后续所有判断都在这份清单上做。
- 论断句:引用编号所在的那一整句,去掉修饰语后真正在主张什么。
- 被引作者:参考文献列表中该编号对应的第一作者或通讯作者。
- 年份:以参考文献列表里的年份为准,不要按正文口吻推断。
- 出现位置:段落序号加章节名,便于最后回写时定位。
可以先手工抄十条,确认字段够用之后再用脚本批量抽。下面是一段通用的切分骨架,按你自己报告的引用风格改正则即可:
import re
CITE = re.compile(r'\[(\d+)\]') # 形如 [7];若用 (Author, 2023) 需换正则
for para_no, para in enumerate(report_text.split('\n'), start=1):
for s in re.split(r'(?<=[。!?])', para):
for m in CITE.finditer(s):
print(para_no, m.group(1), s.strip())
把输出落成一张固定表头的表,方便逐行处理:
claim_id,citation_no,claim_sentence,cited_authors,cited_year,location
验证方式很直接:清单条数应当等于报告里引用标记的总数,多一条少一条都说明抽取漏了。风险边界是先不要在这一步判断对错,只做抽取;边抄边改会让原始生成内容和你自己的修改混在一起,后面分不清哪句该回原文查。
回到原文定位被引用的那句话
拿到清单后逐条回原文。定位顺序建议固定下来:先用标题或 DOI 打开被引文献,再把论断句里的核心术语翻成原文语言,用术语在正文里搜,不要搜论断句的中文整句。中文综述里的一句话,在被引英文原文里往往只是一组术语和条件。
pdftotext -layout paper.pdf paper.txt
grep -n -i -E 'term-a|term-b|term-c' paper.txt | head -20
命中之后要做的对比是三件事:原文讲的是不是同一件事;原文的限定条件有没有被丢掉;原文是实验结论,还是引言里在复述别人的工作。第三件尤其容易被漏掉,很多写着“研究表明”的句子,在原文里其实出现在相关工作段落。
找不到对应句时,按下面的顺序处置,不要直接删:
- 换同义术语、缩写全称、上下位词再搜一轮,有些原文用的是更窄的表述。
- 检查摘要、结论、图表标题和补充材料,论断有可能来自这些位置。
- 确认被引的是不是一篇综述,论断可能出自它提到的原始研究,此时应改引原始研究。
- 以上都试过仍定位不到,标记为“无法定位”,保留编号但降级,不要凭印象写“大致相符”。
风险边界:只找到主题相同、没找到句子对应的,等同于没验证通过。同一作者同年的多篇文献要特别小心,年份或标题对不上,先按不可靠处理,等回到参考文献列表核实后再改判。
区分支撑型引用与背景型引用
两类引用的区别不在文献质量,而在原文那句话与报告论断的关系。判断口径可以先问三个问题:被引句子出现在原文的哪个章节;这句话是原文自己的结论,还是原文在介绍别人的观点;去掉这条引用之后,报告里的论断是否还成立。
- 支撑型:出现在原文的结论段、结果段或摘要末句,直接给出方向、机制或具体条件,能对上报告论断。允许的表述强度是“某研究在某条件下观察到……”这类带条件的陈述。
- 背景型:出现在原文引言、相关工作或综述开篇,用来交代领域现状。允许的表述强度只到“已有研究关注到……”“该方向存在若干讨论”,不能写成“研究证明了”“结果优于基线”。
最常见的错位是:报告把背景型引用放在句尾,读起来像在支撑前面那句结论。识别方法把引用编号拿掉再读一遍,如果句子依然像个结论,说明它原本就需要一条支撑型引用,此时要么找到能支撑的原文,要么把措辞降到背景级。判断依据落在具体动作上,落到具体句子上,不要用“整段感觉”来定。
风险边界:同一编号在不同段落可能承担不同角色,清单要按论断句标记,而不是按编号标记,一条文献允许同时出现在两类里。
给每条引用打上可信层级标记
标记的作用是排出修改顺序,先把不可靠的处理掉,避免在无关紧要的措辞上耗时间。建议分五级,级别只描述当前核对状态,不代表文献本身的水平。
- A:已定位,且为支撑型,措辞可以保留。
- B:已定位,但为背景型,需要改弱措辞。
- C:文献存在,但在原文中定位不到对应句,需要降级或替换。
- D:作者、年份、标题对不上,或链接与 DOI 打不开,需要回到参考文献列表修正。
- E:疑似生成,检索不到该文献,需要删除。
标记写进同一张清单表,一个论断一行,便于按级别排序处理:
{
'claim_id': 'c-013',
'citation_no': 7,
'level': 'C',
'evidence_sentence': '在原文正文中未定位到对应句,仅摘要主题相近',
'action': '改为背景型表述,或替换为可定位文献'
}
处理动作按级别固定,不逐条临场决定:A 保留原文不动;B 只改论断句的措辞强度,编号不动;C 先尝试换一条能定位的文献,换不到就降为背景或删除;D 修正参考文献条目后回到前一节重新定位;E 直接删除,同时检查同一段落里是否还有别的论断依赖这条引用。
验证方式:标记完成后抽查三条 A 级条目,确认回原文仍能对上;再确认所有 C 级条目都已给出替换或降级的明确去向。风险边界:不要因为一条引用来自知名期刊就跳过定位,级别只看能否回原文,不看刊物名。
把核对结果写回报告草稿
核对结果必须落回草稿,否则清单过期就失去意义。改写位置有四处:论断句本身、引用编号、参考文献条目,以及无法定位时需要新增的脚注说明。四处要一起改,只改其中一处,读者看到的仍是前后不一致的稿子。
改写前后对照示例:
改写前:已有研究表明,X 方法在 Y 条件下显著优于基线[7]。
改写后:围绕 X 方法,已有若干工作讨论了其在 Y 条件下的表现[7];
X 方法是否优于基线,本文不据此作结论。
需要补写的说明文字分两类。第一类是限定语,B 级引用所在句子把“证明、显著、优于”换成“讨论、关注、存在”这类词。第二类是透明说明,C 级引用如果暂时保留,建议在脚注里写明:该引用未能在被引文献正文中定位,仅作背景参考。脚注比悄悄删掉更可追溯,也方便后续有人复查时知道这里曾经有过什么问题。
最后在草稿头部留一段版本记录,写清改了哪些、还剩哪些没定:
版本:v2-引用核对后
改动:c-013 引用[7] 由支撑型改为背景型
c-021 引用[12] 删除,替换为 [19]
未决:c-034 引用[14] 仍无法定位,已加脚注说明
做到这一步,报告里每条论断都能说明依据来自哪篇文献、原文哪一句,哪些地方是作者自己的判断而非文献结论。如果时间只够做一轮,优先做回原文定位和打可信层级标记这两步,它们的产出最直接决定这份综述能不能拿出去。