多粒度分词
功能介绍
给定一个句子输入,输出不同粒度的所有单词的层次结构。
以“华为技术有限公司的总部”为例,多粒度分词得到的层次结构如下图所示。其中白色圆形节点为字符单元,蓝色圆角矩阵节点为词汇单元。
![](https://support.huaweicloud.com/api-nlp/zh-cn_image_0217021426.png)
本API免费调用,调用限制为2次/秒。
调试
您可以在API Explorer中调试该接口。
前提条件
在使用本API之前,需要您完成服务申请和认证鉴权,具体操作流程请参见申请服务和认证鉴权章节。
![](https://support.huaweicloud.com/api-nlp/public_sys-resources/note_3.0-zh-cn.png)
用户首次使用需要先申请开通。服务只需要开通一次即可,后面使用时无需再次申请。如未开通服务,调用服务时会提示ModelArts.4204报错,请在调用服务前先进入控制台开通服务,并注意开通服务区域与调用服务的区域保持一致。
URI
- URI格式
POST /v1/{project_id}/nlp-fundamental/multi-grained-segment
- 参数说明
表1 URI参数说明 参数名
必选
说明
project_id
是
项目ID。获取方法请参见获取项目ID。
请求消息
请求参数如表 请求参数所示。
响应消息
响应参数如表3所示。
参数名 |
参数类型 |
说明 |
---|---|---|
result |
Array of node objects 或 Array of strings |
分词结果。默认返回全部粒度分词树结果,如果选择了分词粒度,则返回对应粒度的词汇列表结果。 |
error_code |
String |
调用失败时的错误码。具体参见错误码。 调用成功时无此字段。 |
error_msg |
String |
调用失败时的错误信息。 调用成功时无此字段。 |
参数名 |
参数类型 |
说明 |
---|---|---|
content |
String |
该节点对应的文本内容,并基于文本的unicode编码,做归一化处理。 例如:中文标点","会映射到英文标点“,”。 |
type |
String |
节点类型,包括 WORD-词汇类型,CHAR-字符类型。 |
sub_contents |
Array of node objects |
子节点列表。 |
请求示例
- 请求示例1(多粒度分词,分词粒度为最粗粒度)
POST https://{endpoint}/v1/{project_id}/nlp-fundamental/multi-grained-segment Request Header: Content-Type: application/json X-Auth-Token: MIINRwYJKoZIhvcNAQcCoIINODCCDTQCAQExDTALBglghkgBZQMEAgEwgguVBgkqhkiG... Request Body: { "text": "华为技术有限公司的总部", "lang":"zh", "granularity":2 }
- Python3语言请求代码示例(多粒度分词,分词粒度为最细粒度)
# -*- coding: utf-8 -*- # 此demo仅供测试使用,建议使用sdk。需提前安装requests,执行pip install requests import requests import json def nlp_demo(): url = 'https://{endpoint}/v1/{project_id}/nlp-fundamental/multi-grained-segment' # endpoint和project_id需替换 token = '用户对应region的token' header = { 'Content-Type': 'application/json', 'X-Auth-Token': token } body = { 'text': '华为技术有限公司的总部', 'granularity': 1 } resp = requests.post(url, data=json.dumps(body), headers=header) print(resp.json()) if __name__ == '__main__': nlp_demo()
- Java语言请求代码示例(多粒度分词,分词粒度为最细粒度)
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}/nlp-fundamental/multi-grained-segment"); 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 = "华为技术有限公司的总部"; String body = "{\"text\":\"" + text + "\",\"granularity\":1}"; 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(); } }
- 请求示例2(多粒度分词)
POST https://{endpoint}/v1/{project_id}/nlp-fundamental/multi-grained-segment Request Header: Content-Type: application/json X-Auth-Token: MIINRwYJKoZIhvcNAQcCoIINODCCDTQCAQExDTALBglghkgBZQMEAgEwgguVBgkqhkiG... Request Body: { "text": "华为技术有限公司的总部", "lang":"zh" }
响应示例
- 成功响应示例1
{ "result": [ "华为技术有限公司", "的", "总部" ] }
- 成功响应示例2
{ "result": [ { "content": "华为技术有限公司", "sub_contents": [ { "content": "华为", "sub_contents": [ { "content": "华", "type": "CHAR" }, { "content": "为", "type": "CHAR" } ], "type": "WORD" }, { "content": "技术", "sub_contents": [ { "content": "技", "type": "CHAR" }, { "content": "术", "type": "CHAR" } ], "type": "WORD" }, { "content": "有限公司", "sub_contents": [ { "content": "有限", "sub_contents": [ { "content": "有", "type": "CHAR" }, { "content": "限", "type": "CHAR" } ], "type": "WORD" }, { "content": "公司", "sub_contents": [ { "content": "公", "type": "CHAR" }, { "content": "司", "type": "CHAR" } ], "type": "WORD" } ], "type": "WORD" } ], "type": "WORD" }, { "content": "的", "sub_contents": [ { "content": "的", "type": "CHAR" } ], "type": "WORD" }, { "content": "总部", "sub_contents": [ { "content": "总", "type": "CHAR" }, { "content": "部", "type": "CHAR" } ], "type": "WORD" } ] }
- 失败响应示例
{ "error_code": "NLP.0301", "error_msg": "the length of the text must between 1-64" }
状态码
状态码请参见状态码。
错误码
错误码请参见错误码。