带有非translate标签的Google翻译API的错误行为



Google Translate API允许指示不应使用翻译的文本块

<span translate='no'>Skip this text while translating</span>

在某些情况下,非翻译标签存在错误行为,导致翻译API省略其中一个单词并复制非翻译标签。API翻译输入:

0c40152c asdasd alsdls3 ec3f297a <span translate="no">AAAAA123AAAA</span> Nov 30 translate

从意大利语翻译成英语时(不确定语言是否重要(,返回以下结果:

0c40152c asdasd alsdls3 ec3f297a <span translate="no">AAAAA123AAAA</span> Nov 30 <span translate="no">AAAAA123AAAA</span>

请注意,文本末尾的"translate"替换为非translate标记。如果我使用替代语法<span class='notranslate'>而不是<span translate='no'>,则会出现此问题。

这是一个已知的bug吗?它有合理的变通办法吗?

这是一个已知的错误吗

是:https://issuetracker.google.com/issues/121076288

span标记中notranslate类的翻译问题

您遇到的问题:
翻译API给出了从德语翻译成阿拉伯语的错误结果

德语文本:
QANTARA移民-Kostenfreie Erstprüfung Ihrer Chancen für die erfolgreiche移民局德国

阿拉伯语翻译:
QANTARA移民

您期望发生的事情:
正确的翻译,而不是使用notranslate将跨度加倍-正如您所看到的,这在阿拉伯语翻译中是加倍的

还有一些似乎是相关的,比如https://issuetracker.google.com/issues/74168658和https://issuetracker.google.com/issues/35902695.

它有合理的变通办法吗

恐怕只有那些很粗糙的。

最简单的解决方法就是用一个令牌替换这些部分,比如一个唯一的数字或url,Translate足够聪明,不会触摸、翻译,然后将原始字符串交换回来。

一个更通用的解决方案是使用类似ModelFront的东西(完全公开:我在那里工作(来检测错误,并只在这些情况下做一些事情。

您似乎已将意大利语指定为输入语言,但文本中很少有单词可以翻译(例如"translate"(,而且这些单词在源语言中无法识别。这可以从翻译算法的问题中得出,这里似乎就是这样。

解决方法是将源语言设置为API自动检测,并检查置信度值:

置信度值是介于0和之间的可选浮点值1.该值越接近1,语言检测的置信水平就越高。此成员并非总是可用

如果置信度值足够高以满足您的需求,它将尝试检测要翻译的适当源语言。

另一种解决方法可能是在文本中添加更多的单词,这样算法就可以处理更多的数据。我已经用与您描述的相同的输入测试了API,但添加了更多的单词。结果输出是预期的。

相关内容

最新更新