☰
Wenyi实时术语库深度解析:长篇文本翻译术语零冲突的关键
2026/10/2 6:57:18 网站建设 项目流程

Wenyi实时术语库深度解析:长篇文本翻译术语零冲突的关键

【免费下载链接】wenyi将被语言阻隔的作品,带到读者的语言中。Bringing literature into your language.项目地址: https://gitcode.com/BigDawnGhost/wenyi

Wenyi 是一款面向长篇文学作品的开源 AI 翻译工具,其实时术语库(Glossary)机制是保证长篇小说翻译中人名、地名、称谓前后一致、术语零冲突的核心设计。本文将为你解读这套机制的工作原理:从术语如何被自动提取、冲突如何被记录,到你如何一键裁决,帮助你彻底告别"同一角色译成两个名字"的尴尬。

一、长篇文本翻译中,术语冲突为什么难避免?

长篇作品动辄数十万字,同一个角色可能以"林"、"林小姐"、"小林"等多种形式出现。如果每一批翻译都让模型"自由发挥",很容易出现:

  • 人名漂移:前半部分译作"安娜",后半部分变成"安雅";
  • 称谓失配:日语敬语、亲属称谓在中后段突然换了一套说法;
  • 批量翻译放大问题:AI 分批次并行翻译时,后一批"不知道"前一批已经定了译名。

Wenyi 的解法是:让术语库随着翻译进度实时生长——每翻译完一批,就从中提取新术语并回写入库,后续批次自动带上最新的术语快照。整个流水线概览可参考 docs/pipeline.md。

二、实时术语库:两张表撑起"零冲突"

2.1 术语表 + 冲突表的双表结构

Wenyi 术语库底层由两张 SQLite 表构成,定义在 store.py:

表作用
glossary每个源词对应唯一一条已确立的译名,含读音、性别、别名、类型等元数据
term_conflicts记录"已确立译名 vs 新提议译名"的冲突,等待人工裁决

关键原则写在upsert_term的注释里:自动提取永远不能覆盖已确认的映射(见 store.py#L292-L349)。当模型提出不同译法时,Wenyi 不强行替换,而是把旧译名保留、新译名记入冲突表——这是"零冲突"的第一道保险。

2.2 边翻译边提取:术语库实时生长

翻译不是等全书读完才建术语表。在 translation.py 中,每完成一个翻译批次,就会调用术语提取器(extractor.py):

  1. 用轻量模型从"原文-译文"配对中提取人名、地名、组织、称谓、固定表达等;
  2. 与已有术语比对,新术语入库、相同术语合并别名、不同译法进冲突表;
  3. 下一个批次立刻带上最新术语快照继续翻译。

这意味着第 50 章新出场的人物,在下一批翻译时就已经有固定译名,不会等到读者发现不一致才补救。

2.3 首现对齐:优先采用"历史上第一次怎么译"

更有巧思的是"首现对齐"机制(extractor.py#L124-L209):如果一个新术语在当前章节之前已经出现过,Wenyi 会回溯找到它第一次被翻译的位置,以那一版译文为准,而不是采用模型当下"随口"给出的译名。如果历史映射不确定,宁可暂缓入库,也不让一个没把握的译名"污染"后续文本。

三、六类术语分类:称谓和敬语绝不误伤

术语不是"一锅端",Wenyi 将术语细分为person / term / appellation(称谓)/ honorific(敬语)/ speech(口癖)/ fixed_expression(固定表达)六类(见 store.py#L22-L30)。

其中称谓、敬语、口癖、固定表达只按完整原文匹配,不允许别名命中——否则"大小姐"这类带语境的称呼,会因为角色本名的别名被误注入到普通称呼里。匹配时还会做 NFKC 归一化、大小写折叠,并剥离振假名注音标记(store.py#L98-L146),英文等空格分词的脚本则启用词边界匹配,避免 "Ann" 误中 "Anna"。

四、冲突裁决:网页一键处理,命令行亦可

当术语库中出现冲突,网页端会以醒目的琥珀色卡片列出"当前译名 vs AI 建议",你可以一键选择保留当前或接受建议(前端实现在 GlossaryPage.tsx#L391-L437,API 在 glossary.py#L107-L135)。裁决后立即生效:译名更新、状态恢复、所有关联冲突关闭。

偏好命令行的读者,同样可以:

  • glossary list <源文件>—— 查看全部术语及状态;
  • glossary conflicts <源文件>—— 列出未解决冲突;
  • glossary resolve <源文件> <源词> <定译>—— 指定最终译名并关闭冲突。

实现见 resolver.py 与 glossary.py。

五、实战建议:三步养成零冲突术语习惯

  1. 翻译前先导入既有术语。如果你的系列作品已有定译表,可在网页端"导入"上传 CSV/JSON,导入前系统会先检测冲突,逐条让你选择覆盖或跳过,避免污染已有映射;
  2. 定期处理冲突卡片。冲突表是"AI 拿不准、交给你拍板"的清单,建议每翻译完一个卷就清理一次,越早裁决,后续翻译越干净;
  3. 善用导出。术语库支持导出 CSV/JSON(glossary.py#L138-L169),可作为系列续作的"种子术语库",让第二部、第三部从第一章起就沿用同一套译名。

💡 小提示:术语库刻意保持插入顺序而非排序存储(store.py#L374-L383),这是为了维持提示词前缀缓存命中、降低长篇小说翻译成本——你无需关心,但请尽量在开跑前把定译术语导进去。

结语

Wenyi 的实时术语库用"双表结构 + 边译边提取 + 首现对齐 + 人工裁决"四件套,把长篇翻译中最棘手的术语一致性问题拆解成了一条可观测、可干预的流水线:AI 负责发现与提议,你只负责拍板。配合其双语预览与校对工作台,让被语言阻隔的作品真正走进读者的语言。

【免费下载链接】wenyi将被语言阻隔的作品,带到读者的语言中。Bringing literature into your language.项目地址: https://gitcode.com/BigDawnGhost/wenyi

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询