google-api - 将阿拉伯名字音译为拉丁字符
问题描述
因为
Google Transliterate API已于 2011年5 月 26 日正式弃用。它将继续按照我们的弃用政策工作。
我正在使用Google Translate API将阿拉伯名称音译成拉丁字符,使用“英语”作为目标语言。
这适用于像“رياض”这样变成“riad”的名字。
问题是一些阿拉伯名字是有含义的,
例如“كامل”变成“full”而不是“kamel”
有趣的是,这并不总是适用。例如,我的名字“شادي”被翻译成“shady”而不是“singer”。即使在诸如“أَنا شادي الأَلحان”这样可以翻译成“我是旋律歌手”的语境中,它也会变成“我是阴暗的曲调”
- 是否有任何其他我缺少的 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']
解决方案
通过反复试验,将阿拉伯语传递给“我的名字是“kamel akiki””
my_trans('أَنا إِسمي "كامل عَقيقي"')
会给出名称而不将含义翻译为
'My name is "Kamel Akiki"'
然后我可以提取引号之间的任何内容