更新时间:2024-05-14 GMT+08:00
分享

文本翻译

功能介绍

文本翻译是为了实现语种间的转换。对于用户输入原始语种的文本,转换为目标语种的文本。本接口不支持对文档进行翻译,文档翻译请见文档翻译任务创建

文本翻译支持一次性提交多个任务,服务会根据资源排队处理。

文本翻译接口具体Endpoint请参见终端节点

调用华为云NLP服务会产生费用,本API按字符数阶梯计费,文本翻译不支持套餐包抵扣,用户可以在自然语言处理价格计算器价格详情页了解具体计费说明。

本API调用限制为20次/秒。

调试

您可以在API Explorer中调试该接口。

前提条件

在使用本API之前,需要您完成服务申请和认证鉴权,具体操作流程请参见申请服务认证鉴权章节。

用户首次使用需要先申请开通。服务只需要开通一次即可,后面使用时无需再次申请。如未开通服务,调用服务时会提示ModelArts.4204报错,请在调用服务前先进入控制台开通服务,并注意开通服务区域与调用服务的区域保持一致。

URI

  • URI格式
    POST /v1/{project_id}/machine-translation/text-translation
  • 参数说明
    表1 URI参数说明

    参数名

    必选

    说明

    project_id

    项目ID。获取方法请参见获取项目ID

请求消息

请求参数说明请参见表2
表2 请求参数说明

参数名

参数类型

必选

说明

text

String

待翻译文本,仅支持utf-8编码,长度不超过2000字符。一个汉字、英文字母、标点符号等,均计为一个字符。

from

String

翻译原语言,具体取值见表3

to

String

翻译目标语言,具体取值见表3

scene

String

默认为“common”,当前只有通用场景。

表3 文本翻译支持的语言列表

语种名称

语言代码

阿拉伯语

ar

德语

de

俄语

ru

法语

fr

韩语

ko

葡萄牙语

pt

日语

ja

泰语

th

土耳其语

tr

西班牙语

es

英语

en

越南语

vi

中文(简体)

zh

自动检测输入语种并翻译成目标语种,您需要指定目标语种。

auto

响应消息

响应参数说明请参见表4
表4 响应参数说明

参数名

参数类型

说明

src_text

String

调用成功时表示翻译原文,编码格式为UTF-8。

调用失败时无此字段。

translated_text

String

调用成功时表示翻译译文,编码格式为UTF-8。

调用失败时无此字段。

from

String

调用成功时表示源语种(源语种输入为auto时,显示语种识别结果),编码格式为UTF-8。

调用失败时无此字段。

to

String

调用成功时表示目标语种,编码格式为UTF-8。

调用失败时无此字段。

error_code

String

调用失败时的错误码,具体请参见错误码

调用成功时无此字段。

error_msg

String

调用失败时的错误信息。

调用成功时无此字段。

请求示例

  • 请求示例(文本翻译)
    POST https://{endpoint}/v1/{project_id}/machine-translation/text-translation
    
    Request Header:  
        Content-Type:application/json
        X-Auth-Token: MIINRwYJKoZIhvcNAQcCoIINODCCDTQCAQExDTALBglghkgBZQMEAgEwgguVBgkqhkiG...   
    
    Request Body:
        {
            "text": "欢迎使用机器翻译服务",
            "from": "zh",
            "to": "en",
            "scene":"common"
        }  
  • Python3语言请求代码示例(翻译中文"欢迎使用机器翻译服务"为英文)
    # -*- coding: utf-8 -*-
    # 此demo仅供测试使用,建议使用sdk。需提前安装requests,执行pip install requests
    import requests
    import json
    
    def nlp_demo():
        url = 'https://{endpoint}/v1/{project_id}/machine-translation/text-translation'  # endpoint和project_id需替换
        token = '用户对应region的token'
        header = {
            'Content-Type': 'application/json',
            'X-Auth-Token': token
        }
        body = {
            'text': '欢迎使用机器翻译服务',
            'from': 'zh',
            'to': 'en',
            'scene': 'common'
        }
        resp = requests.post(url, data=json.dumps(body), headers=header)
        print(resp.json())
    
    if __name__ == '__main__':
        nlp_demo()
  • Java语言请求代码示例(翻译英文"It is a good day"为中文)
    import java.io.BufferedReader;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.io.OutputStreamWriter;
    import java.net.HttpURLConnection;
    import java.net.URL;
    
    /**
     * 此demo仅供测试使用,建议使用sdk
     */
    public class NLPDemo {
        public void nlpDemo() {
            try {
                //endpoint和projectId需要替换成实际信息。
                URL url = new URL("https://{endpoint}/v1/{project_id}/machine-translation/text-translation");
                String token = "对应region的token";
                HttpURLConnection connection = (HttpURLConnection) url.openConnection();
                connection.setRequestMethod("POST");
                connection.setDoInput(true);
                connection.setDoOutput(true);
                connection.addRequestProperty("Content-Type", "application/json");
                connection.addRequestProperty("X-Auth-Token", token);
    
                //输入参数
                String text = "It is a good day";
                String from = "en";
                String to = "zh";
                String body = "{\"text\":\"" + text + "\" ,\"from\":\"" + from + "\" ,\"to\":\"" + to + "\" ,\"scene\":\"common\"}";
    
                OutputStreamWriter osw = new OutputStreamWriter(connection.getOutputStream(), "UTF-8");
                osw.append(body);
                osw.flush();
                InputStream is = connection.getInputStream();
                BufferedReader br = new BufferedReader(new InputStreamReader(is, "UTF-8"));
                while (br.ready()) {
                    System.out.println(br.readLine());
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    
        public static void main(String[] args) {
            NLPDemo nlpDemo = new NLPDemo();
            nlpDemo.nlpDemo();
        }
    }

响应示例

  • 成功响应示例
    {
        "src_text": "欢迎使用机器翻译服务",
        "translated_text": "Welcome to use machine translation services",
        "from": "zh",
        "to": "en"
    }
  • 失败响应示例
    {
        "error_code": "NLP.0101",
        "error_msg": "Authentication failed. Verify the token."
    }

状态码

状态码请参见状态码

错误码

错误码请参见错误码

相关文档