将阿拉伯语音译成拉丁字符

时间:2018-05-07 08:00:56

标签: google-api google-translate

因为

  

截至5月,Google Transliterate API已被正式弃用   它将继续按照我们的弃用政策运作。

我正在使用Google Translate API将阿拉伯语名称音译为拉丁字符,并使用“英语”作为目标语言。

这适用于像“رياض”这样的名字,它们变成了“riad”。

问题是一些阿拉伯名字有意义,

e.g。 “كامل”变成“完整”而不是“kamel”

有趣的是,这并不总是适用。例如,我的名字“شادي”被翻译成“阴暗”而不是“歌手”。即使在诸如“أناشاديالألحان”这样的语境中,它可以被翻译成“我是旋律的歌手”,它也变成了“我是阴暗的曲调”

  • 我是否还缺少任何可以实现此目的的其他API?
  • 或者是否有一个选项可以传递给Translate API以告诉它只是音译?
  • 或者source language可能是arabic names而不是arabic

编辑:python代码以举例说明

from google.cloud import translate
import os
os.environ["GOOGLE_APPLICATION_CREDENTIALS"] = "path/to/gcp/key.json"
translate_client = translate.Client()
my_trans = lambda text: translate_client.translate(text, target_language='en')['translatedText']

list(map(my_trans, ["رياض", "شادي",  "كامل"]))

输出

['Riad', 'Shady', 'Full']

1 个答案:

答案 0 :(得分:1)

通过反复试验,将阿拉伯语传递给“我的名字是”kamel akiki“'

my_trans('أَنا إِسمي "كامل عَقيقي"')

会在没有将含义翻译为

的情况下给出名称
'My name is "Kamel Akiki"'

然后我可以提取引号之间的任何内容