目录
1. 前言
AI最近太火了,火得让我产生了危机感,让我这个IT女感觉马上就要失业了。为了适应AI的变化,近期用了多个AI工具来辅助软件的开发,包括文心一言,ChatBox , Cursor 。
最近在做的客户端软件中,需要做多语言的切换。于是做了xml文件,进行中文到多语言的映射,那么准确地翻译为我需要的语言,成了我要处理的一项重要内容。
如果让AI或者任意的一个工具,来将一两句简单的中文,翻译为某种其他的语言,毫无疑问地说,它一定可以胜任,但是在实践中,我却经历了山路十八弯的曲折,因此来记录一下我的处理过程。
2. 需求描述
我之所以遇到问题,主要是我的语言映射文件中,不只有一两行,而是大约有660行(我觉得对于软件来说,即使这个数量也是极少的),XML文档中的内容格式大致是这样的:
<string cat="common" chinit="返回">返回</string>
<string cat="common" chinit="返回上一页">返回上一页</string>
<string cat="common" chinit="返回主页">返回主页</string>
<string cat="common" chinit="方向">方向</string>
<string cat="common" chinit="非法授权使用">非法授权使用</string>
<string cat="common" chinit="复制成功">复制成功</string>
<string cat="common" chinit="副本">副本</string>
上图中,我希望AI将节点内部的值翻译为我预期的目标语言,我理所当然的认为这是一项非常简单的工作,就像处理每一行那样简单。
3. 格式化的长文本
3.1 Cursor
我先用我近期使用最多的Cursor来进行处理,模型为claude-3.5-sonnet 。
Cursor在处理较长内容的时候有个缺点,它会把过内容截断,导致返回的内容不全,因此在它处理之前,我需要告诉它这个注意事项。因此我的我对它的需求描述为:
上图中看到,它正在非常有计划地、分批次地 处理。如果它能持续地这样处理完成,我认为是非常成功并且逻辑清晰的,而且将会是非常棒的处理结果。
但是接下来,出问题了:
上图中看到,它在第三次给出的结果中,出现了奇怪的死循环,并且不停地输出相同的依据,无法停止。分批处理已经比较麻烦了,现在它竟然出现这样的问题,我觉得作为一个“智能”工具,不应该花费我过多的时间,我现在已经没有耐心和它周旋了。
接下来换另外一种工具。
3.2 ChatBox
我默认选择的模型为o1-preview-2024-09-12,以下是我对它的需求描述:
上图中以看到,我向它输入了文件,而且它看起来非常明白我的需求,并且正在有序的处理。这是一个非常令人高兴的开始。
然而:
上图中,诡异并且令人气愤的一幕出现了,它仅仅输出了105行内容,就告诉我它已经处理完成了,而且输出的结果中,竟然出现了不在我文档中的内容。比如 “紫外相纸” “默认透明度” 这些奇怪的中文不知道从哪里来的?被插入到了我的任务中。 如此看来,它明目张胆地对我进行欺骗,明明没有完成,却告诉我完成了,而且内容还弄虚作假,简直让人气愤。
那么也许我可以再给它一次机会呢?会不会,如果它能够输出足够长的内容,可以一次性处理正确呢?于是我把ChatBox中的模型切换为更长内容的模型 gpt-3.5-turbo-16k,
然后, 它竟然也开始生气了。因为它已经在罢工了:
于是我对ChatBox的耐心也没了。
那接下来试一试我觉得最笨的 :
3.3 文心一言
虽然我说它最笨,但是它是这里面反应最快的,所以在处理简单任务的时候,我一般优先考虑它,急性子的我,不喜欢等。也说不定它能够在这方面处理的比较好,于是:
同样地,也是一个逻辑清晰且友好的开始,它成功地给出了69行的有效翻译。但是,请看第二批给出的结果:
上图中,可以看出来,它非常的清楚地知道我需要的内容是连贯的、不中断的、完整的 ,但是它给出的14行数据,却并没有接续上文的内容;而且,明知道自己没有翻译完成,并告知我他会尽量完成剩余的处理,然后就是遥遥无期的没有后文了。于是我又不抱希望了。
接下来,我开始考虑使用专业的翻译工具 :
3.4 DeepL
作为一个翻译工具,它的处理就没有那么智能了,只能通篇文件全翻译,但是我此时的预期已经降低,只要它能够保证完整就可以,然后我可以使用代码进行简单的处理,也是可以接受的。
于是注册了DeepL 账号(注册后才能使用文件上传功能),以翻译为日文为例子:
上图中可以看到,它翻译的非常完整,无遗漏。但是我用账号是免费版,下载下来的文件是只读的文字,完全不能拷贝出来使用的,所以是不符合预期的。对于更多文件类型的支持,是需要付费后才能使用的,因此也暂时放弃了这个方案。
接下来又如何尝试呢?我突然记起了word是有翻译功能的。
3.5 Word
于是我把整个xml文件的内容,拷贝到word文档中,使用它的翻译功能:
点击 翻译 按钮之后,它大概用了不到5秒钟,将整个文档翻译完成:
但是很遗憾,它选择性地进行了部分翻译,部分不翻译。我一开始甚至怀疑日本语里面,这些文字是不是就长成这个样子?我还傻傻的去百度了,发现自己太幼稚了。文档中遗漏的部分非常多,导致整体性的不可用。
但是我对word这种方式仍然抱有希望, 会不会我给它的格式复杂,导致它解析混乱的?于是,我将节点中的值,也就是我需要翻译的部分,单独的提取出来,以简化的格式,每行一条,来让它进行翻译处理:
非常可喜的是,它全部完成了翻译。接下来,我只需要再写几行代码,把它与原有的文本拼接到一起,就可以满足我的需求。
但是,它的翻译有明显的缺点:不太智能,有点傻,因为它破坏了我原有的格式:
原格式:
【拍照】状态相机正常
【预览】状态相机正常
翻译后:
[写真を撮る]状態:カメラは正常です
プレビューステータス:カメラは正常です
上图中看到,原有的一些关键的符号丢失了,并且前后两句的翻译,竟然还具有不一致性,所以虽然翻译是完成了,但是翻译质量堪忧。
3.6 DeepSeek
该部分内容是后续补充进来的(于2025年1月28号补充进来 ).。
这两天突然大火的DeepDeek, 让我来也尝试一下本文遇到的任务。
我把大约600行的翻译任务发送给它,让它把节点内的值翻译为日文 , 但是不管是否 启用 “深度思考” 或者 “联网搜索”,我连续尝试了 8 次,都无法得到任何结果,截图如下:
哎,是不是盛名之下,其实难附呢,很失望。
那么换个角度,如果我把简单格式的文本,给AI工具来处理,它们是否也能够胜任呢?
4. 简单的长文本
首先看反应最快的:
4.1 文心一言
它好像心情不太好,又罢工了, 果然是AI工具里面最笨的。
4.2 Cursor
Cursor在处理长文本的时候, 仍然会有截断, 或者是分批次返回的问题,因此暂时不考虑了,我对它的分批次处理质量非常担心。
4.3 ChatBox
ChatBox是可以支持上传文件的,并且对于我提取后的简单的纯文本的翻译任务,本次成功地完成了处理,并且没有遗漏。而且非常好的一点是,因为它本身具有智能性,因此在格式的保留上做的非常好,翻译的质量比word要好很多:
4.4 DeepSeek
该部分内容是后续补充进来的(于2025年1月28号补充进来 ).。
同样的我把简单翻译任务,以附件的方式交它他处理,附件内容截图:
对话截图:
哎,连续又 尝试了 5 次,都没有任何结果。于是,有点不看好它。
5. 最终方案
经过以上的各种尝试,我最终选择的方案是:
先将我需要翻译的内容,处理为简单的文本,而不是xml格式的节点符号数据,然后把它作为一个完整的任务文件,交给ChatBox来处理,因此一次性得到完整的翻译结果。目前来看,这是对于我来说比较理想的。
Cursor 和 ChatBox 目前我都是使用的付费版本。
如果对翻译的精准度要求更高的话,需要考虑使用付费版的专业翻译软件。
6. 结论
关于AI工具的使用,我初步得出了以下结论:
- AI在处理长文本任务上,整体的表现是偏差的;
- 如果对一项任务的处理,质量要求较高,那么一定要尽量给它简化的需求,与AI在沟通时尽量在较少的次数内讲明白一个问题,因为来回沟通的次数越多,它越容易处理混乱。
- AI工具的智能性是非常具有优势的,比传统的一些工具表现的更“聪明”。
我觉得AI像是一个大杂烩,什么都会,什么都懂,但是可能什么都不太专业。专业的翻译软件或者其他的专业类的软件,它们一定有自己存在的道理,一定有一些很深入的、Ai无法匹及的方便。AI虽然发展的非常快,但是在变得专业和有深度上,还有很长的路要走,我们需要怀抱开放的心态,多学习和尝试。