当原文是 PDF 时,「逐字」意味着什么
核对一句 AI 引文是否真的出现在 PDF 里,听起来就像按一下 Ctrl+F。实际上,PDF 里的文字并不是你看到的文字:单词在行末被连字符拆开,段落被分页和页眉切断,像「fi」这样的字母组合被存成一个符号。一个无视这些的引文检查,要么拒绝真实的引文,要么放过改写过的话。把它做对,就是大部分的工作量。
我们说过,MindMax 里的每一句引文都会对照原文核对。这篇文章要讲的是,为什么这句话背后藏着的比它说出来的多——以及你应该对任何作出同样声称的工具抱有什么期待。
PDF 是一幅关于文字的画
PDF 描述的是在页面的什么位置画上哪些字符。总的来说,它并不记录句子或段落。从中读出文字是一次重建,而这种重建有可以预料的接缝:
- 断词连字符。 一行末尾的「infor-」和下一行开头的「mation」。模型读到的句子是「information」;原始文字却是「infor- mation」。
- 连字。 排版里的「fi」「fl」「ffi」常常是单个字形。一个看起来是「efficient」的词,从文件里取出来时,可能和「efficient」逐字母对不上。
- 分页。 一段从第 12 页延续到第 13 页的文字,在文件里是两个片段,中间夹着页码、页眉,也许还有一个脚注。
- 分栏和插图。 中间夹着图注的双栏排版,是阅读顺序最常出错的地方。
- 引号和破折号。 弯引号和直引号、连字符和短破折号。模型总在整理这些。(中文 PDF 也有自己的接缝,比如字与字之间多出的空格、全角和半角标点混用。)
两种出错的方式
引文检查有两种失败方式,而且方向相反。
太严,真实的引文就过不了。模型正确地引用了那句话;检查却因为行末的一个连字符拒绝了它。用户学会了「找不到」不代表任何东西,就不再看那个标记了。
太松,改写过的话就能过。「这种疗法可能降低风险」和「这种疗法会降低风险」足够接近,就溜过去了。而这恰恰是这项检查本该抓住的失败。
要做的是:对页面宽容——连字符、连字、页眉、引号样式——同时对字眼严格。丢掉的一个「可能」,必须过不了。
我们怎么处理
不讲内部机制,下面是你能看到的表现:
- 跨分页重建段落,这样一句引文不会被页面底部切成两半,也不会被上方的页眉污染。
- 引文对照的是文档的字词,而不是它的排版,所以行末连字符和连字不会引起误报。
- 差一点对上的,会换回原文自己的措辞。 如果模型整理了标点或换了一个词,你看到的引用用的是文档的确切文字——你判断的,也正是这段确切的文字。
- 找不到的引文永远不会被显示成已核对。 在回答里,它会在末尾被标出来;引文对不上的 AI 页边批注会被打回重做。
- 引用落在那句话上,在页面上高亮,所以最后那项检查——这句话支持这个说法吗?——看一眼就够。
对任何工具都该抱有的期待
如果你在评估一个 AI 阅读器,试试这个:拿一个回答,挑一句在 PDF 里正好跨行或跨页的引文,点一下。它落得到吗?再问一段你知道带着限定语的文字,看看那个限定在引文里还在不在。这两项检查告诉你的,比任何准确率声称都多。
我们没有声称什么
文字提取并不完美。密集的数学公式、夹着插图的双栏排版,以及识别质量差的扫描页,依然是引文最不可靠的地方,点进原页看那一秒钟是值得的。我们不是说每一句引文都对;我们是说,错的那句会被显示为错。
完整的思路见引文核对;为什么它很要紧,见 AI 为什么会编造引用。阅读器本身见 AI PDF 阅读器。