IDL封装百度翻译API实现自动翻译和语种识别
本文仅提供封装后的IDL接口,不提供IDL源代码。
调用IDL接口时,需要输入开发者信息(APP ID、密钥),因为每个账号每个月都有免费额度,所以不能公开我的信息。大家可以到百度翻译API官网申请自己的账号:https://api.fanyi.baidu.com/
封装后的IDL接口提供2个函数,功能分别为文本翻译和语种识别。其中,文本翻译包含通用文本翻译和领域翻译。如果希望调用功能,需要申请开通对应的服务(https://api.fanyi.baidu.com/choose)。如下图为我个人账号开通的服务。
下载接口
下载baidu_fanyi.sav文件,链接:https://pan.baidu.com/s/1HMXE2phC2H8lKHIgfQWN4w?pwd=envi
文本翻译
接口说明
包含通用文本翻译和领域翻译。
语法格式
result = baidu_fanyi(input, output [, from=string], to=string, appid=string, key=string [, domain=string] [, timeout=value] [, /gb2312])
返回值
-
- result:返回0或1。0表示翻译失败,1表示翻译成功。
参数
-
- input:输入文本(字符串),支持输入数组。
- output:输出翻译结果(如果翻译失败,则输出错误消息)
关键字
关键字 |
数据类型 |
是否必填 |
说明 |
备注 |
from |
字符串 |
否 |
源语言。默认为auto,即自动检测 |
见下图“常见语种列表” |
to |
字符串 |
是 |
翻译目标语言 |
|
appid |
字符串 |
是 |
APPID。需在官网申请开发者账号 |
可在官网“管理控制台”查看 |
key |
字符串 |
是 |
密钥。需在官网申请开发者账号 |
|
domain |
字符串 |
否 |
领域翻译。若不输入,则进行通用文本翻译 |
见下图“domain领域支持范围” |
timeout |
整型值 |
否 |
超时时间。单位秒,默认为10 |
|
gb2312 |
布尔型 |
否 |
返回编码为GB2312的翻译结果。仅支持Windows系统 |
默认为UTF-8 |
图:常见语种列表(用于设置from和to关键字)
图:domain领域支持范围(用于设置domain关键字)
调用示例
将下载的baidu_fanyi.sav文件存放在英文路径中,比如C:\temp。
通用文本翻译(英译中)
;导入接口 IDL> restore, 'C:\temp\baidu_fanyi.sav'
;通用文本翻译(英译中) IDL> result = baidu_fanyi(['hello','world'], output, to='zh', appid='输入自己的APPID', key='输入自己的密钥')
;打印翻译结果 IDL> print, result 1 IDL> print, output, /implied_print 你好 世界 |
通用文本翻译(中译英)
;导入接口 IDL> restore, 'C:\temp\baidu_fanyi.sav'
;待翻译文本 IDL> input = ['7月哈尔滨站培训班正在报名中,', '欢迎大家来参加。']
;通用文本翻译(中译英) IDL> result = baidu_fanyi(input, output, to='en', appid='输入自己的APPID', key='输入自己的密钥')
;打印翻译结果 IDL> print, result 1 IDL> print, output, /implied_print The training class for Harbin Station in July is currently being registered, Welcome everyone to participate. |
领域翻译(英译中,设置domain关键字)
;导入接口 IDL> restore, 'C:\temp\baidu_fanyi.sav'
;待翻译文本 IDL> input = ['ENVI Deep Learning is a separate add-on module for ENVI.', 'Its purpose is to train deep learning models using TensorFlow to identify features in an image based on their spatial and spectral properties.']
;领域翻译(英译中,domain=it表示信息技术领域) IDL> result = baidu_fanyi(input, output, to='zh', appid='输入自己的APPID', key='输入自己的密钥', domain='it')
;打印翻译结果 IDL> print, result 1 IDL> print, output, /implied_print ENVI深度学习是ENVI的一个单独的附加模块。 其目的是使用TensorFlow训练深度学习模型,以基于图像的空间和光谱特性来识别图像中的特征。 |
语种识别
接口说明
语法格式
result = baidu_language(input, output, appid=string, key=string [, timeout=value])
返回值
-
- result:返回0或1。0表示识别失败,1表示识别成功。
参数
-
- input:输入文本(字符串),支持输入数组。
- output:输出识别结果(如果识别失败,则输出错误消息)。
关键字
关键字 |
数据类型 |
是否必填 |
说明 |
备注 |
appid |
字符串 |
是 |
APPID。需在官网申请开发者账号 |
可在官网“管理控制台”查看 |
key |
字符串 |
是 |
密钥。需在官网申请开发者账号 |
|
timeout |
整型值 |
否 |
超时时间。单位秒,默认为10 |
|
调用示例
将下载的baidu_fanyi.sav文件存放在英文路径中,比如C:\temp。
语种识别
;导入接口 IDL> restore, 'C:\temp\baidu_fanyi.sav'
;语种识别(识别英语) IDL> result = baidu_language(['hello','world'], output, appid='输入自己的APPID', key='输入自己的密钥')
;打印识别结果 IDL> print, result 1 IDL> print, output en |