fkiliver / RPGMaker_LLM_Translator

96 stars 9 forks source link

关于Sakura模型在某些特殊段落无限重复同一个字或短语的情况 #2

Closed Phlogist closed 8 months ago

Phlogist commented 8 months ago

如题,这个是老问题了。轻小说翻译机器人应该是在网页端做的优化,没有涉及到模型的改动,所以现在到了rpgmaker这种小短句多的情况就更容易有这个问题了。

可以加一个检测过滤一下这种情况,暂时先返回原文,然后用日志记一下是哪些句子有问题,这样人工也比较好改。

Phlogist commented 8 months ago

(.+?)(?:\1){15,}

这个实践下来基本异常的都能匹配到

fkiliver commented 8 months ago

现在正则匹配到的复读翻译结果行号会记录在log.txt内。我尝试在特殊句前加上一个空格后重新翻译来解决复读问题,但我这遇到的特殊段落太少了,可以的话请提供一些特殊段落方便我测试一下

Phlogist commented 8 months ago

ManualTransFile.json 便利店少女整合版的导出文档,你跑一下就知道了,异常几率相当高,由于我之前的文档已经被我改完了,只能把没翻译的给你了。

Cecropis commented 8 months ago

我建议不加空格而是加一些随机特殊字符,然后不要直接返回而是想办法匹配一下把加上的字符去掉。 只加空格现在很多时候就是在那里死循环。 或者递归超过一定次数跳过也行。

Phlogist commented 8 months ago

确实,这样处理会好一点,只加空格用处不大。

另外有些句子本来就很难翻译好,很多神经网络引擎碰到都容易吃瘪,传统机翻反而效果更好。

fkiliver commented 8 months ago

做了一些调整,目前大体上是三种情况 1.模型发癫,重新翻译\添加字符 可以解决 2.文本中自带重复短语,解决同上 3.文本中自带大量重复特殊字符,目前想法是去除字符后翻译,再加回字符

Phlogist commented 8 months ago

添加随机字符串解决的时候出现了比较神奇的bug:

添加随机字符串重试:zA 提交的文本为:zAっ......ここは、ゴブリンの習性を......上手く利用するしか、ない......っ!」 原文: っ......ここは、ゴブリンの習性を......上手く利用するしか、ない......っ!」 => 翻译: 「Za……现在只能巧妙利用……哥 布林的习性了……!」

这个我没想到什么好的办法。

我用之前版本翻译的记录也发现哪怕字符串长一点也有概率出现类似字母大小写、位置调换这种神奇的bug: はあ゛ぁ、あああ゛あ゛あ゛あ゛あぁ~~~~ッ!!」=> 翻译:「EHJVAJGRXOQVNL啊、啊啊啊、啊、啊、啊、啊啊啊~~~~!」 这种很明显就是发生了未知原因导致随机字符变了,然后没有被识别到。

fkiliver commented 8 months ago

添加随机字符串解决的时候出现了比较神奇的bug:

添加随机字符串重试:zA 提交的文本为:zAっ......ここは、ゴブリンの習性を......上手く利用するしか、ない......っ!」 原文: っ......ここは、ゴブリンの習性を......上手く利用するしか、ない......っ!」 => 翻译: 「Za……现在只能巧妙利用……哥 布林的习性了……!」

这个我没想到什么好的办法。

我用之前版本翻译的记录也发现哪怕字符串长一点也有概率出现类似字母大小写、位置调换这种神奇的bug: はあ゛ぁ、あああ゛あ゛あ゛あ゛あぁ~~~~ッ!!」=> 翻译:「EHJVAJGRXOQVNL啊、啊啊啊、啊、啊、啊、啊啊啊~~~~!」 这种很明显就是发生了未知原因导致随机字符变了,然后没有被识别到。

等有空我去看一下轻小说机翻网是咋处理的

fkiliver commented 8 months ago

通过设置frequency_penalty和尝试0.9模型,复读问题似乎解决了。不过0.9模型似乎偶尔会吞翻译,0.8模型对带符号文本效果似乎要好一些

fkiliver commented 8 months ago

对于0.8模型,给frequency_penalty设为0.2或者直接换用0.9模型