根据上下文翻译部分句子

Translating parts of sentences based on its context

我正在开发一个需要能够翻译部分句子的应用程序。问题是,如果我将部分发送到翻译 API,例如 Google 翻译,翻译通常在它们出现的上下文中没有意义。示例:

He leaves the building

如果我将 leaves 翻译成任何目标语言,我可能会在 "leaves of a tree" 的上下文中得到结果,这在示例中当然没有意义。因此,翻译需要考虑上下文。如果我将翻译句子扩展为 He leaves,我会得到 He leaves 的正确翻译。然而,leaves的翻译我弄丢了,这正是我要找的词。

有人知道我应该如何处理这个问题吗?请记住 Google 翻译 API 是付费的 API,所以我想尽量减少我从 API.

请求的翻译量

我的想法:

发送"He leaves",并了解哪部分是"he",哪部分是"leaves",与"leaves"的所有可能翻译相交(在本地保留双语词典所有形式的所有单词的所有可能翻译)

你说得对,没有上下文的翻译是没有希望的。

Google Translate API 与 Chrome 集成一样,对 HTML 标签很智能(默认参数包括 format=html)。

因此,一个不错的选择是 将您感兴趣的单词或短语包裹在 HTML 标签

你可以在控制台试试这个:

解析 HTML 标签的内容应该很容易 ,然后你可以进行词形还原。

注1:
面向消费者的独立 Google 翻译 UI 不公开此选项,要尝试它,您必须通过 API 控制台或以编程方式翻译,或使用 Chrome 翻译页面。

注2:
有一些细微差别,因为翻译中的单词本质上不是 1:1。有时一个词变成两个词,有时这个词在目标语言中有空表示。

1:2 示例:
zh: He <span>left</span> the building.
它:Ha <span>lasciato</span> l'edificio.
[可以说 ha 也应该包括在内。]

1:0 示例:
zh: How <span>are</span> you?
汝:Как вы?
[to be 通常在俄语中省略。]
zh: How are <span>you</span>?
它:Come stai?
[代词在意大利语中经常被省略。]

2:1 示例:
zh: He is always <span>screwing</span> things up.
它:Sempre <span>spiegazza</span> le cose.
[英语和其他语言有separable verbs。这里实际输入的是搞砸,而不是搞砸。]

对你来说这是一些工作,但它实际上也是非常有用的信息,无论如何你更容易处理 lasciato 以获得正确的引理 拉斯西亚尔.

有关更多参数文档,请参阅 cloud.google.com/translate/docs/reference/rest

我已经应用了上面找到的建议,但在我的情况下仍然有一些麻烦。我正在将药物活性成分从意大利语翻译成英语。重要的是

  • google 搜索页面翻译器翻译正确
  • API 不是

要翻译的活性成分是“Testosterone Enantato”,我已经将句子充实为“Il principio attivo della medicina è Testosterone Enantato”。这是我得到的

  1. google 研究网页:“药物的有效成分是庚酸睾酮” --> “庚酸睾酮”是正确的。
  2. google 翻译 API: "Testosterone Enantato", 意大利语

有什么想法吗?

这里是 google 网页的截图,翻译正确