【问题标题】:Microsoft Translator API in PythonPython 中的 Microsoft 翻译 API
【发布时间】:2012-08-14 14:43:42
【问题描述】:

我在 python 中编写了一个小脚本来将单词从英语翻译成俄语。它使用 Microsoft-Translator-Python-API 连接到 Microsoft Translator API。但是,有一个延迟问题 - 调用 API 并获得翻译最多需要三秒钟。 如果可能的话,有人知道如何让它更快地工作吗? 我会放一段我的代码,只是为了展示我在这里做什么:

translator   = Translator('My-User-Id',
                            'My-Client-Secret')

current_word = subprocess.check_output(["xsel", "-o"])
translation  = translator.translate(current_word, "ru")

【问题讨论】:

  • 库使用 http 请求来获取翻译。因此,加快速度的唯一选择是获得更快的互联网连接。
  • Microsoft 服务器可能会被故意延迟,例如,阻止将其用作没有广告内容的服务。如果是这样,您将无法加快速度。
  • 好的,看来我的代码没有犯任何错误,延迟仅取决于服务器端。谢谢你的回答,对我帮助很大。

标签: python microsoft-translator


【解决方案1】:

有趣的是,您实际上可以这样做:

import json
import requests
import urllib
args = {
        'client_id': '',#your client id here
        'client_secret': '',#your azure secret here
        'scope': 'http://api.microsofttranslator.com',
        'grant_type': 'client_credentials'
    }
oauth_url = 'https://datamarket.accesscontrol.windows.net/v2/OAuth2-13'
oauth_junk = json.loads(requests.post(oauth_url,data=urllib.urlencode(args)).content)
translation_args = {
        'text': "hello",
        'to': 'ru',
        'from': 'en'
        }
headers={'Authorization': 'Bearer '+oauth_junk['access_token']}
translation_url = 'http://api.microsofttranslator.com/V2/Ajax.svc/Translate?'
translation_result = requests.get(translation_url+urllib.urlencode(translation_args),headers=headers)
print translation_result.content

并在减速之前获得多次立即响应(在减速之前立即响应 6-7 次)。我没有太多使用 Azure,所以我不确定他们的速率限制是如何工作的,但我相信你可以支付更高的速率。

(注意:我从那个 microsoft 库中抓取了上述代码的一部分。只是想看看单独的逻辑表现如何)

【讨论】:

  • datamarket 现已关闭并由 Azure 门户取代。此解决方案不再起作用
【解决方案2】:

无耻的插头。

我创建了一个 python 模块(它的 beer-ware :)),以使这个过程更简单。

使用起来很简单:

import azure_translate_api

client = azure_translate_api.MicrosoftTranslatorClient('client_id', 'client_secret')
print client.TranslateText('Hello World!', 'en', 'fr')

要了解有关从何处下载此模块以及如何使用它的更多详细信息,请访问my github repo

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多