【问题标题】:Best way of using google translation by Python [closed]Python使用谷歌翻译的最佳方式[关闭]
【发布时间】:2014-04-30 11:41:53
【问题描述】:

我正在尝试将大量文本文件从英语翻译成其他几种语言。我们在项目中使用了 Python,我们尝试使用谷歌翻译服务先翻译它们,然后我们会手动纠正错误。

我想出了两种翻译方法:

  1. 使用 Python 谷歌翻译 API。这里:goslate 1.1.2: Python Package

  2. 尝试用谷歌翻译页面编程,即输入我们要翻译的文本,模拟HTTP请求并处理响应。 Google Translation

有人有更好的报价吗?

【问题讨论】:

标签: python translation


【解决方案1】:

Google 实际上有一个带有 REST 接口的官方翻译 API。您可以查看here。请注意,它是一个付费 API,没有免费配额。

【讨论】:

  • 是的,它仅作为付费服务提供。使用 Google Translate API 的任何其他方法都可能不合法。
  • 那么您如何看待谷歌翻译 API goslate?违法吗?
  • 很可能它不完全是道德/道德的——我只是看了一下他们的来源,看起来 goslate 正在伪造用户代理字符串以抓取页面结果。默认情况下,Google 会阻止 python 用户代理访问端点。
  • 我选择了你的答案。只是最后一个问题,我尝试了 goslate 并且它可以工作,你的意思是 goslate 可能会因为被 Google 屏蔽而无法工作吗?
  • 谷歌,在要求全世界通过提供翻译来改善其翻译服务之后,现在它把它卖回来了!去谷歌!!
【解决方案2】:

我为 python 制作了自己的谷歌翻译功能;) 试试看https://github.com/mouuff/Google-Translate-API

【讨论】:

  • 谢谢,穆。如果我需要,下次我会尝试你的解决方案。
  • 不错的小技巧,只是不要太受欢迎,否则 Google 会更改 HTML 来破坏您的模块。
  • 整洁。如果您更改 base_link = "translate.google.com/m?tl=%s&sl=%s&q=%s&hl=%s" 并将 from_language 值设置为 sl 和 hl 仍然有效
  • 嗨,这也有语言检测吗?谢谢和最好的问候
  • @MichaelSchroter 是的 :)
【解决方案3】:

自从这篇文章发表以来,连接到谷歌翻译 API 变得容易多了。话虽如此,我仍然建议直接连接到 Google Translate API,但现在通过它是 RapidAPI page here.

您可以了解如何获取 API 密钥here. 只需将 API 密钥输入到API's function page on Rapid API 并单击 TEST Function。例如,这就是基本的英语到德语翻译的样子:

请注意,de 是德语的语言代码。 RapidAPI 将为您生成一个代码 sn-p,因此您可以将 API 调用直接复制并粘贴到您的项目中。

【讨论】:

  • 巨大的安全漏洞。切勿与第三方服务共享您的 API 密钥
【解决方案4】:

最简单的方法之一是使用 Selenium 获取单词和短语的翻译。

这是一段获取英语单词并返回波斯语(波斯语)翻译的代码。一切都在 Github 上的自述文件中进行了解释:

https://github.com/mnosrati/Google-Translate-Farsi

【讨论】:

    【解决方案5】:

    尝试使用googletrans 模块。例如:

    from googletrans import Translator
    
    
    translator = Translator()  # initalize the Translator object
    translations = translator.translate(['see if this helps', 'tarun'], dest='hi')  # translate two phrases to Hindi
    for translation in translations:  # print every translation
        print(translation.text)
    
    # Output:
    # देखें कि इस मदद करता है
    # तरुण
    

    支持的语言 (106) 及其 ISO639-1 代码的字典:

    import googletrans
    
    
    print(googletrans.LANGCODES)  # {language name: iso639-1 language code}
    # or
    print(googletrans.LANGUAGES)  # {iso639-1 language code: language name}
    

    请参阅docs 了解更多信息。

    【讨论】:

    • googletrans 有时不起作用。我不确定它是否适合批量翻译。这个问题甚至在网站上也提到过。 pypi.org/project/googletrans 谢谢和最好的问候
    • +1 上面所说的内容。我尝试使用 googletrans 进行批量翻译。大约 800 次翻译后,返回的字符串没有实际翻译,并引发警告或异常。这可能是谷歌的一项安全措施(如避免滥用免费翻译数量),但我实际上并不知道
    【解决方案6】:

    使用这个 此代码使用免费使用的google trans模块。

    通过此代码,您可以将任何语言转换为任何语言并获得它的发音。

    from googletrans import Translator, LANGUAGES
    from googletrans.models import Translated
    
    lang = list(LANGUAGES.values())
    print("Welcome to Py_Guy Translate")
    input_text = input("Please Enter Your Text in english:\n")
    out_lang = input("Please enter output language name (ex.-hindi,gujarati,japanese:\n 
    ").lower()
    if out_lang not in lang:
        print("Sorry This Language is not available to translate")
    else:
        translator = Translator()
        translated = translator.translate(text=input_text, src="english",dest=out_lang)
        translated = str(translated).split(", ")
        converted = translated[2]
        pro = translated[3]
        print(converted)
        print(pro)
    

    【讨论】:

    • 最好在答案本身的代码中添加描述。
    【解决方案7】:
    def translate_text(target, text):
        """Translates text into the target language.
    
        Target must be an ISO 639-1 language code.
        See https://g.co/cloud/translate/v2/translate-reference#supported_languages
        """
    
        os.environ["GOOGLE_APPLICATION_CREDENTIALS"] = "secret.json"
    
        translate_client = translate.Client()
    
        if isinstance(text, six.binary_type):
            text = text.decode("utf-8")
    
        # Text can also be a sequence of strings, in which case this method
        # will return a sequence of results for each text.
        result = translate_client.translate(text, target_language=target)
    
        return result["translatedText"]
    

    查看使用 google api 进行翻译的完整代码:

    https://neculaifantanaru.com/en/example-google-translate-api-key-python-code-beautifulsoup.html

    【讨论】:

      猜你喜欢
      • 2010-12-07
      • 1970-01-01
      • 2023-03-04
      • 2012-03-16
      • 1970-01-01
      • 2023-03-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多