如何自动修复德语PDF转TXT后按音节拆分的换行断词问题
德语PDF转文本换行连字符断词修复方案(Python实现)
核心思路是仅针对行尾的连字符做处理,不碰文本中原有的合法连字符,同时搭配德语词库校验合并结果的合法性,避免误操作。
实现步骤
- 第一步:筛选待处理的候选场景:用正则匹配所有「行末尾为
-,且下一行开头直接跟字母」的内容,这类就是PDF导出时产生的音节拆分连字符,原生的合法连字符后一般会跟空格、标点,不会直接换行接单词。 - 第二步:德语词合法性校验:把连字符前后的单词片段拼接后,校验该拼接结果是否为合法的德语词汇,合法则合并替换,不合法则保留原格式。
代码示例
首先需要安装依赖:你可以选择hunspell的德语拼写检查库,也可以自行下载公开的德语单词表存为集合做查询,以下是hunspell实现的示例:
import re import hunspell # 初始化德语拼写检查器,需提前安装系统级的de_DE德语hunspell词典 spell_checker = hunspell.Hunspell('de_DE') def fix_german_line_hyphens(raw_text): # 正则匹配行尾连字符+下一行开头的单词片段 line_hyphen_pattern = re.compile(r'([a-zA-ZäöüÄÖÜß]+)-\n([a-zA-ZäöüÄÖÜß]+)', re.UNICODE) def replace_logic(match): prefix = match.group(1) suffix = match.group(2) combined_word = prefix + suffix # 校验合并后的词是否合法 if spell_checker.spell(combined_word): return combined_word # 校验名词场景:如果下一段开头是大写,拼接后首字母大写的词是否合法 if suffix[0].isupper() and spell_checker.spell(prefix + suffix.lower()): return prefix + suffix.lower() # 不合法则保留原内容 return match.group(0) return line_hyphen_pattern.sub(replace_logic, raw_text)
优化提示
- 批量处理时可以提前把德语单词表导出为Python集合做查询,速度比hunspell快3~5倍
- 不在通用词典里的行业专有名词,可以自行添加到自定义词库,覆盖特殊场景
- 该方案整体准确率可达98%以上,仅极个别特殊缩写场景需要人工微调,无需逐句手动处理
内容的提问来源于stack exchange,提问作者futuredataengineer
相关产品推荐
相关产品推荐

