识别本身通常只成功了一半。另一半在整理:一句话被拆成三行、每页顶上的单位名重复出现二十次、段落之间夹着空行。手工删这些最费时间,也最容易删错。
先认清要处理的三种脏数据,它们的解法不一样。
第一种:句中被拆的断行
扫描件和长句截图最常见。识别按视觉行输出,一行到纸边就换,于是完整的一句话被切成两三段。
中文好办一些 —— 中文句内没有空格,且上一行末尾不是句号、逗号时,多半应该和下一行接起来。手工做就是找每个「断在半个词上」的位置,效率极低。
可执行的做法是用 TXT 文本处理 的正则替换:启用正则后把「行尾非句末标点 + 换行」替换成空,一次性把整篇的断行接回去。句末标点该保留的(句号、问号、叹号、引号收尾)不会被误接。
第二种:每页重复的页眉页脚
一份十几页的扫描件,页眉的单位名称、页脚的页码会被识别成十几行重复内容。
正确顺序是先删重,别先排序:用删除重复行功能,它保留每个内容首次出现的位置、不打乱原有顺序,所以正文不会被你搞乱。页眉一般出现在每页开头,删重后剩一行,手工删掉即可;页脚带页码的行内容各不相同、删重删不掉,用查找替换按数字模式处理。
第三种:多余空行
段落之间空两行、连续好几个空行,是逐行拼接留下的副产品。用删除空行一次搞定 —— 只含空格的行也算空行,会被一起删掉。
建议的固定顺序
接断行 → 删重复 → 删空行 → 通读抽查。
顺序不能反。先删空行再接断行,会让你失去判断段落边界的依据;先排序再删重,页眉会和正文混在一起,删重就没法安全使用。
排序只在纯列表型内容(名单、编号、条目)上做,段落型的正文一排序就废了。需要按中文拼音排的时候,TXT 文本处理 提供拼音排序且具备数字感知,abc2 会排在 abc10 前面,这点和浏览器的默认码位排序不同,处理编号名单时很关键。
顺手能做的两件清理
- 全角半角与空格:识别常把英文和数字混成全角。用查找替换逐项替换,比手工改快
- 首尾空格:删除行首尾空格,后续贴进 Excel 时不会错列
如果最终目标是 Excel 或 Word
别在文本阶段硬撑。 原图里有表格线的,直接用 表格识别转Excel 输出 .xlsx,行列由结构识别重建,比「识别成文字再手工分列」省一大半时间。想在 Word 里编辑、需要保留分页的,用 扫描件PDF转Word,它每页之间留分页符,翻页位置还能对得上。
最后提醒:清理脚本会批量改字符,改完必须通读一遍。金额、编号、人名这三处如果在这一步被误删或被接错行,比识别出错更难发现。