Google 翻译 v3 API 中的词汇表

Glossaries in Google Translate v3 API

通过 Google translate_v3beta1 API 对词汇表的支持到底应该如何工作?我一直在寻找这些信息,但没有找到。词汇表中的术语应该简单地覆盖所有其他可能的翻译,还是它们只是为词汇表中的翻译添加优先级,但引擎仍然可以使用其他翻译,如果它们 "fit better" 根据训练数据?

我已经使用 Python 库创建了一个词汇表(我尝试了两种不同的方法 - 从 tsv 使用 "language_pair" 属性 以及从 csv 使用 "language_codes_set" 属性)。然后我尝试使用词汇表覆盖自定义 MT 模型生成的文本字符串中一个术语的翻译(即,不使用词汇表,引擎以一种方式翻译术语,我尝试使用词汇表强制它对该术语使用其他翻译),但没有成功。

现在我不确定,如果我在创建或使用词汇表时犯了一些错误(目前我不知道我的代码中有任何问题),或者我这边没有错误,但基于在训练数据上,引擎简单地使用了另一种翻译。根据其他自定义机器翻译平台的经验,我知道,其中一些平台使用词汇表来覆盖翻译,而另一些平台仅使用它们来确定词汇表术语的优先级,但不会完全覆盖所有其他可能的翻译。因此我想先澄清这个简单的问题,然后再开始寻找其他可能的原因,为什么我的代码没有按预期工作。

提前谢谢你。

好的,所以我在别处得到了答案。来自词汇表的翻译应该覆盖模型使用的术语。它对我不起作用还有另一个原因(我使用了不正确的响应字段 - “translation”而不是“glossaryTranslation”)。


根据 Suresh 在评论中的要求进行编辑:

有关上述问题的 Google API 响应的详细信息是 here, when using the Python client library see this

使用 Python client library:

的代码示例片段
response = client.translate_text(
    contents = [source_text],
    parent = parent,
    mime_type = 'text/html',
    source_language_code = source_language,
    target_language_code = target_language,
    model = model_id,
    glossary_config = glossary_config,
    timeout = 90
)
google_translation = response.glossary_translations[0].translated_text # Here "glossary_translations" must be used instead of "translations", if you use glossary.