问题出现得很突然,日志倒是留得挺全。用常见库解析 PDF 后文本里到处是硬换行,一句话被切成三四行,检索时按句匹配完全命中不了。

刚开始盯着「页眉页脚被当成正文混进段落」,折腾了半个多小时,排掉了。

把日志和配置对完,能解释这个现象的基本就这几处。解析库按坐标逐行输出,保留了排版换行。少数情况下是双栏排版被按行交错拼接,语序错乱。

另外,连字符断词没有合并。

第一件事是按段落规则合并软换行

python -c "import re;print(re.sub(r'(?<=[^。!?\n])\n','',text))"

随后按版面区块抽取而不是纯文本流

python parse_pdf.py --mode blocks --input a.pdf

过滤重复出现的页眉页脚

python -c "print(collections.Counter(lines).most_common(3))"

修复行尾连字符造成的断词

python -c "print(text.replace('-\n',''))"

改完先别撤,确认这几项。合并后段落完整,一句话不再被拆散,检索命中率提升,摘要也更连贯。

补一句。双栏论文用纯文本流解析几乎必然错序,这类文档要按块坐标排序后再拼接,否则语义会完全乱掉。改动前把原配置备份一份,出问题能马上回滚,这比任何技巧都实用。

作者 9823189