带有notranslate标记的Google Translation API行为不正确

时间:2018-12-17 08:29:12

标签: google-translate google-translation-api google-cloud-automl

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>

请注意,文本末尾的“翻译”已由非翻译标签代替。 如果我使用替代语法<span translate='no'>而不是<span class='notranslate'>,则会出现此问题。

这是一个已知的错误吗?有明智的解决方法吗?

2 个答案:

答案 0 :(得分:0)

这是一个已知的错误吗?

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

  

span标记中的notranslate类的翻译问题

     

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

     

德语文本:
  QANTARA移民-科恩滕弗赖·埃斯特普吕丰·艾尔·钱森·菲尔·艾尔弗勒格里奇移民德国

     

阿拉伯语翻译:
  QANTARA迁移-QANTARA迁移إلىألمانيا

     

您期望发生的事情:
  正确翻译而无需使用notranslate将跨度加倍-如您所见,这在阿拉伯语翻译中翻了一番

似乎还有其他一些相关的内容,例如https://issuetracker.google.com/issues/74168658https://issuetracker.google.com/issues/35902695

是否有明智的解决方法?

恐怕只有骇客。

最简单的解决方法是将这些部分替换为令牌,例如,唯一数字或url使Translate足够聪明,不会碰触,翻译,然后将原始字符串换回。

一个更通用的解决方案是使用ModelFront之类的方法(完全公开:我在那儿工作)来检测错误,并且仅在那些情况下才做。

答案 1 :(得分:-2)

您似乎已将意大利语指定为输入语言,但是文本中很少有可以翻译的单词(例如“翻译”),并且在源语言中无法识别它们。 这可能会导致翻译算法出现问题,在这里似乎就是这种情况。

一种解决方法是将源语言设置为通过API获取automatically detected并检查confidence value

  

置信度值是介于0到0之间的可选浮点值   1.该值越接近1,语言检测的置信度越高。该成员并非总是有空

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

另一种解决方法是在文本中添加更多单词,以便该算法可以处理更多数据。 I have tested the API,输入内容与您描述的相同,但增加了一些单词。结果输出是预期的。