【问题标题】:google transliterate vs translate api谷歌音译与翻译 api
【发布时间】:2018-08-20 03:29:00
【问题描述】:

我们希望使用谷歌云服务或任何其他类似/规模化的平台将句子从英语音译为印地语。

目前我们开始使用谷歌翻译,因为它的音译 API 现在已弃用。

但问题是,它的翻译是基于我们不想要的实际情绪:

例子:

English (Lemon Tree) ---google translate in hindi--- नींबू का पेड़

我们的用例打算是:

English (Lemon Tree) ---google translate in hindi--- लेमन ट्री

在当前的翻译 api 中是否有任何解决方法来获得音译或任何更好/稳定、类似成本的 api,我们可以用来解决这个用例。

API 来源:

目前正在使用:https://cloud.google.com/translate/

已弃用但运行良好:https://developers.google.com/transliterate/

【问题讨论】:

    标签: google-cloud-platform google-translate


    【解决方案1】:

    要在 Python 中使用 Google Transliterate API,请先执行:
    pip install google-transliteration-api

    要音译的示例脚本:

    from google.transliteration import transliterate_text
    result = transliterate_text('Lemon Tree', lang_code='hi')
    print(result) # Output: 'लेमन ट्री'
    

    更多详情,请查看documentation here。

    【讨论】:

      【解决方案2】:

      如果您想使用谷歌云翻译 api,一个简单的解决方法是通过:
      (My name is "YOUR_TEXT_HERE")
      作为 google Cloud Translation API 的输入,这将在双引号“...”内为您提供所需的 transliterated 文本。然后你可以提取出你的音译是在“ ”内。

      在您的示例中:
      通过输入:(My name is "Lemon Tree")
      输出:(मेरा नाम "लेमन ट्री" है)

      注意:这将不必要地增加您的字符数,从而增加您的服务费用。

      【讨论】:

        【解决方案3】:

        pip 安装 googletrans

        代码 -

          from googletrans import Translator 
        
          my_input= ("I am very happy to be here with you today to receive the Nobel Prize 
          for Peace.")
        
          print(my_input)
        
          translator = Translator()
        
          translated_txt=translator.translate(my_input, dest='hi').text
          print(translated_txt)
        
          transliterated_txt=translator.translate(translated_txt, dest='hi').pronunciation
          print(transliterated_txt)
        

        以下代码将产生此输出-

        我很高兴今天能在这里与您一起接受诺贝尔和平奖。

        शांतिशांतिकेलिएनोबेलपुरस्कारकरनेकेकेलिएआजआपकेसाथयहांआकरबहुतखुशखुशshaanti ke lie nobel puraskaar praapt karane ke lie main aaj aapake saath yahaan aakar bahut khush hoon。

        所以你仍然可以使用谷歌发音音译印地语文本成英文,不知道音译反过来,可能你可以玩googletrans来获得也这样做了

        【讨论】:

        • 您的示例是 Translation 而不是 Transliteration 。音译不改变句子结构,也不考虑上下文,它只是用目标语言字母集中最接近的字母替换字母。示例“मेरा नाम अंकित हे”音译为英语是“mera naam ankit he”而不是“我的名字是 Ankit”,这应该是翻译。
        【解决方案4】:

        直译基本上是翻译单词的意思,而不是整个短语。因此,您可以通过逐字翻译然后将它们连接在一起来实现这一目标。因此,如果您先翻译“lemon”,然后再翻译“tree”,然后将结果相加,您应该会得到想要的结果。

        使用谷歌翻译,我发现“柠檬”这个词是नींबू,“树”这个词是पेड़。

        因此,逐字逐句翻译将是 नींबू पेड़ 。

        此外,如果您愿意,仍然可以使用已弃用的 API,请先阅读 deprecation policy。同时,您还可以向 Google 的 Public Issue Tracker 提交feature request,以在 Google Translate API 中获取此功能。

        【讨论】:

        • 最初的计划是只有@Ying,我们也尝试这样做。但这不是我们期望的工作方式。它就像我在问题中提到的那样工作,即使在拆分之后也是如此。
        • 真的吗?但这不意味着翻译是正确的吗?我看不出将单词拆分会如何导致上下文翻译而不是字面翻译。如果我简单地告诉 Translate API 翻译“cool”,它会给出温度参考……只有在说“cool person”的上下文中,它才会使用不同的含义。每个单词的翻译都应该是字面意思,没有上下文。
        • 我的意思是,即使你将工作柠檬和树分开并独立翻译,它们仍然会变成柠檬-> नींबू 而对于 Tree,它应该是 पेड़...理想情况下应该是 लेमन柠檬和ट्री树
        • 我明白你的意思了。不幸的是,谷歌翻译不是这样工作的(它只翻译意思而不是发音)。正如我所提到的,您需要使用已弃用的 API 或提交功能请求才能在 Google 翻译中获取此功能。
        【解决方案5】:

        我不知道有任何替代 API 可用于已弃用的音译。您可以使用谷歌翻译模式,这可能会提高短语的翻译质量。例如:

        https://translation.googleapis.com/language/translate/v2/?q=lemon%20tree&source=en&target=hi&model=base&key=YOUR_API_KEY_HERE
        

        model=base 部分表示您要使用基于短语的机器翻译 (PBMT) 模型。

        【讨论】:

        • 感谢@Caner 的回复,我用谷歌支持的所有模型都试过了,它仍然可以这样工作。
        猜你喜欢
        • 2011-12-26
        • 2011-08-18
        • 2010-10-10
        • 1970-01-01
        • 2016-11-18
        • 1970-01-01
        • 2013-02-15
        相关资源
        最近更新 更多