更新时间:2024-04-24 GMT+08:00
分享

语种识别

功能介绍

语种识别是为了识别文本所属的语种。对于用户输入的文本,返回识别出的所属语种。

语种识别接口具体Endpoint请参见终端节点

调用华为云NLP服务会产生费用,本API支持使用基础套餐包,购买时请在自然语言处理价格计算器中查看基础套餐包和领域套餐包支持的API范围。

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

调试

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

前提条件

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

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

URI

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

    参数名

    必选

    说明

    project_id

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

请求消息

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

参数名

参数类型

必选

说明

text

String

需要识别语种的文本,具体支持的语种请参见表3

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

表3 语种识别支持的语言列表

语种名称

语言代码

阿拉伯语

ar

爱沙尼亚语

et

保加利亚语

bg

冰岛语

is

波兰语

pl

波斯尼亚语

bs

波斯语

fa

丹麦语

da

德语

de

俄语

ru

法语

fr

芬兰语

fi

高棉语

km

韩语

ko

加泰罗尼亚语

ca

捷克语

cs

克罗地亚语

hr

拉脱维亚语

lv

立陶宛语

lt

罗马尼亚语

ro

马耳他语

mt

马来西亚语

ms

北马其顿语

mk

孟加拉语

bn

缅甸语

my

南非荷兰语

af

挪威语

no

葡萄牙语

pt

日语

ja

瑞典语

sv

塞尔维亚语

sr

斯洛伐克语

sk

斯洛文尼亚语

sl

斯瓦希里语

sw

泰语

th

土耳其语

tr

威尔士语

cy

乌尔都语

ur

乌克兰语

uk

西班牙语

es

希伯来语

he

希腊语

el

匈牙利语

hu

意大利语

it

印地语

hi

印尼语

id

英语

en

越南语

vi

中文

zh

无法识别语种

unk

响应消息

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

参数名

参数类型

说明

detected_language

String

调用成功时表示调用结果,编码格式为UTF-8,语种取值请见表3

当输入文本过短或不明确时,识别结果可能不准确;

当输入文本包含多种语言时,会返回占比最高的语种。

调用失败时无此字段。

error_code

String

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

调用成功时无此字段。

error_msg

String

调用失败时的错误信息。

调用成功时无此字段。

请求示例

  • 请求示例(识别"欢迎使用机器翻译服务"的语种)
    POST https://{endpoint}/v1/{project_id}/machine-translation/language-detection
       
    Request Header:  
        Content-Type:application/json
        X-Auth-Token: MIINRwYJKoZIhvcNAQcCoIINODCCDTQCAQExDTALBglghkgBZQMEAgEwgguVBgkqhkiG...   
    
    Request Body:
        {
            "text": "欢迎使用机器翻译服务"
        }  
  • 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/language-detection'  # endpoint和project_id需替换
        token = '用户对应region的token'
        header = {
            'Content-Type': 'application/json',
            'X-Auth-Token': token
        }
        body = {
            'text': '欢迎使用机器翻译服务'
        }
        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/language-detection");
                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 body = "{\"text\":\"" + text + "\"}";
    
                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();
        }
    }

响应示例

  • 成功响应示例
    {
        "detected_language": "zh"
    }
  • 失败响应示例
    {
        "error_code": "NLP.0101",
        "error_msg": "Authentication failed. Verify the token."
    }

状态码

状态码请参见状态码

错误码

错误码请参见错误码

相关文档