谷歌翻译API

1 模型训练

相关参考资源:

1.1 谷歌翻译简介

谷歌翻译有两个API产品:

  • Cloud Translation API:是Google 久经考验的预训练模型(通用型)。

  • AutoML Translation:使用对你最重要的字词、短语和习语,在 Google 强大的 Translation API 基础上进行构建(定制型),无需机器学习经验。

我们这里考虑使用后者。

1.2 V3模型训练

(1)前提条件:谷歌账号、翻译API接口打开、信用卡账单。

(2)自定义的对照词典表:以.tsv文件格式维护并上传。

(3)模型训练:根据词典表的大小,需要耗时若干小时。关键是要注意信用卡扣费情况。

2 Python准备

相关参考资源:

2.1 安装python及常用工具

(1)安装chocolatey https://chocolatey.org/installscoop是另一个同类工具,但Windows用户还是更推荐chocolatey

(2)命令行安装python

$ choco install python

(3)安装和升级pip

$ python -m pip install -U pip

确认上述安装

$ python --version
$ pip --version

(4)安装虚拟环境工具virtualenv

$ pip install virtualenv
$ virtualenv --version

2.2 虚拟环境管理

进入工作项目文件夹根目录,并设定虚拟环境

(1)为项目生成虚拟环境,会产生一个文件夹venv/,默认情况下该文件夹会自动添加到.gitignore列表而不会进入托管系统(github)

$ cd project_folder
$ virtualenv venv

(2)激活项目虚拟环境(每次都要如此操作)

$ source venv/Scripts/activate

(3)此时可以安装自己想要的python包

$ pip install requests

(4)如果虚拟环境下的工作已经完成,则可以解除环境激活

$ deactivate

(5)冻结备份虚拟环境下的python包列表(freeze),以便后面复现使用install。该冻结列表文件.txt应该被托管系统(github)记录和保存。

$ pip freeze > py/requirements.txt
$ pip install -r py/requirements.txt

3 谷歌本地验证

Google Cloud CLI 是一套用于创建和管理 Google Cloud 资源的工具。借助这些工具,您可以通过命令行或通过脚本和其他自动化功能执行许多常见的平台任务。

如果您使用的是 Cloud Shell,则 gcloud CLI 自动可用,您无需安装。否则,请下载并安装 gcloud CLI,然后initialize它。

主要过程如下:

  • 下载 gcloud CLI官网链接

  • 安装 gcloud CLI:默认安装即可。如果出现HTTP无服务的报错,可以尝试把网络代理取消掉。

  • 初始化。按照引导进行初始化配置。注意在验证项目选择中,识别并选中自己的训练模型id。

4 API调用

相关参考资源:

4.1 python包准备

需要安装一个新的python库libcst

pip install google-cloud-translate libcst

4.2 python代码更新

旧代码

from google.cloud import translate

client = translate.TranslationServiceClient()
parent = client.location_path("<PROJECT_ID>", "<LOCATION>")
text = "Good morning!"

response = client.translate_text(
    parent=parent,
    contents=[text],
    mime_type="text/plain",
    source_language_code="en-US",
    target_language_code="fr",
)

新代码

from google.cloud import translate

client = translate.TranslationServiceClient()
parent = "projects/<PROJECT_ID>/locations/<LOCATION>"
text = "Good morning!"

response = client.translate_text(
    request={
        "parent": parent,
        "contents": [text],
        "mime_type": "text/plain",
        "source_language_code": "en-US",
        "target_language_code": "fr"
    }
)

4.3 python翻译

具体代码参看项目hansenEM/MLtrain/predictv3.py,其中最关键的是三个参数:

  • project_id = '10xxxxxxxxxx2x'。你个人谷歌项目的代码。

  • location = 'us-central1'。对于个人训练模型,这个是硬编码,不能更改!因为这个原因,在调用翻译接口时,你的网络必须要开(漂亮国)全局代理

  • model。个人定制化的训练模型的id。

登录你自己的Google Cloud Translation API(网址),点开已经训练好的模型,里面会提供一段python示例代码。

但是因为上述python代码更新的原因,这段示例代码实际上是无法运行的。