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

分词

功能介绍

对文本进行分词和词性标注处理。

具体Endpoint请参见终端节点

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

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

调试

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

前提条件

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

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

URI

  • URI格式
    POST /v1/{project_id}/nlp-fundamental/segment
  • 参数说明
    表1 URI参数说明

    参数名

    必选

    说明

    project_id

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

请求消息

请求参数如表2所示。

表2 请求Body参数

参数名

参数类型

必选

说明

text

String

待分词文本,中文长度为1~512,英文长度为1~2000,文本编码为UTF-8。

pos_switch

Integer

是否开启词性标注功能,1为开启,0为关闭,默认为关闭。

lang

String

支持的文本语言类型,目前支持中文(zh)和英文(en),默认为中文。

criterion

String

支持的分词规范。

中文分词标准目前支持PKU(北大分词标准)、CTB(宾州中文树库标准),默认为PKU。

英文分词标准默认为Penn TreeBank(宾州树库标准),不需要传入该参数。

响应消息

响应参数如表3所示。

表3 响应参数

参数名

参数类型

说明

words

Array of words

分词结果,请参见表4

error_code

String

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

调用成功时无此字段。

error_msg

String

调用失败时的错误信息。

调用成功时无此字段。

表4 Word字段数据结构说明

参数名

参数类型

说明

content

String

词汇文本。

pos

String

词汇对应的词性。详细说明请参见表5表6表 (Penn TreeBank) 词性说明

表5 PKU词性说明

一类词性

二类词性

三类词性

n:名词

nr:人名

  • nr1:汉语姓氏
  • nr2:汉语名字
  • nrj:日语人名
  • nrf:音译人名

ns:地名

nsf:音译地名

nt:机构团体名

-

nz:其它专名

-

nl:名词性惯用语

-

ng:名词性语素

-

t:时间词

tg:时间词性语素

-

s:处所词

-

-

f:方位词

-

-

v:动词

vd:副动词

-

vn:名动词

-

vshi:动词“是”

-

vyou:动词“有”

-

vf:趋向动词

-

vx:形式动词

-

vi:不及物动词(内动词)

-

vl:动词性惯用语

-

vg:动词性语素

-

a:形容词

ad:副形词

-

an:名形词

-

ag:形容词性语素

-

al:形容词性惯用语

-

b:区别词

bl:区别词性惯用语

-

z:状态词

-

-

r:代词

rr:人称代词

-

rz:指示代词

  • rzt:时间指示代词
  • rzs:处所指示代词
  • rzv:谓词性指示代词

ry:疑问代词

  • ryt:时间疑问代词
  • rys:处所疑问代词
  • ryv:谓词性疑问代词

rg:代词性语素

-

m:数词

mq:数量词

-

mg:甲、乙、丙、丁、戊、己、庚、辛、壬、癸

-

q:量词

qv:动量词

-

qt:时量词

-

d:副词

-

-

p:介词

pba:介词“把”

-

pbei:介词“被”

-

c:连词

cc:并列连词

-

u:助词

uzhe:着

-

ule:了、喽

-

uguo:过

-

ude1:的、底

-

ude2:地

-

ude3:得

-

usuo:所

-

udeng:等、等等、云云

-

uyy:一样、一般似的、般

-

udh:的话

-

uls:来讲、来说而言、说来

-

uzhi:之

-

ulian:连 (“连小学生都会”)

-

e:叹词

-

-

y:语气词(delete yg)

-

-

o:拟声词

-

-

h:前缀

-

-

k:后缀

-

-

x:字符串

xe:Email字符串

-

xs:微博会话分隔符

-

xm:表情符号

-

xu:网址URL

-

w:标点符号

wkz:左括号,全角:( 〔 [ { 《 【 〖 〈 半角:( [ { <

-

wky:右括号,全角:) 〕 ] }》 】 〗〉 半角: ) ] { >

-

wyz:左引号,全角:“ ‘ 『

-

wyy:右引号,全角:” ’ 』

-

wj:句号,全角:。

-

ww:问号,全角:? 半角:?

-

wt:叹号,全角:! 半角:!

-

wd:逗号,全角:, 半角:,

-

wf:分号,全角:; 半角: ;

-

wn:顿号,全角:、

-

wm:冒号,全角:: 半角: :

-

ws:省略号,全角:…… …

-

wp:破折号,全角:—— -- ——- 半角:--- ----

-

wb:百分号千分号,全角:% ‰ 半角:%

-

wh:单位符号,全角:¥ $ > ° ℃ 半角:$

-

表6 CTB词性说明

词性

名称

示例

AD

副词

不 也 就

AS

动态助词

了 著 过

BA

把字结构

将 把

CC

并列连接词

和 与

CD

限定数量词

一 两 三

CS

从属连接词

虽然 如果 如果

DEC

补语或名词化

的 之

DEG

关联或所有格

的 之

DER

补语短语“得”

DEV

方式“地”

DT

限定词

这 各 全

ETC

等等

等 等等

FW

外来词

A E B

IJ

感叹词

唉呀 哈拉

JJ

名词修饰词

大 新 小

LB

长“被”结构

被 为 受

LC

方位词

中 上 时

M

量词

个 年 美元

MSP

其他助词

所 而 来

NN

名词

经济 企业 人

NR

专有名词

有限 公司

NT

时间名词

目前 去年

OD

数词

第一 第二 首

ON

拟声词

O

P

介词

在 对 以

PN

代词

他 我 自己

PU

标点符号

, 。

SB

短“被”结构

被 遭

SP

句末助词

了 的 吗

VA

谓词性形容词

大 多 好

VC

系动词

是 为 非

VE

主要动词“有”

有 没有 无

VV

动词

说 要 会

表7 Penn TreeBank词性说明

词性

名称

示例

CC

并列连接词

and, but, or

CD

基数

one, two

DT

限定词

a, the

EX

存在型there

there

FW

外文单词

mea, culpa

IN

介词/从属,连接词

of, in, by

JJ

形容词

yellow

JJR

形容词,比较级

bigger

JJS

形容词,最高级

wildest

LS

列表项标记

1, 2, One

MD

情态动词

can, could, might

NN

名词,可数或不可数

llama

NNS

名词,复数

llamas

NNP

专有名词,单数

IBM

NNPS

专有名词,复数

Carolinas

PDT

前位限定词

all, both

POS

所有格结束词

's

PRP

人称代名词

I, me, you,

PRP$

物主代词,所有格代名词

my, your, yours

RB

副词

quickly

RBR

副词,比较级

faster

RBS

副词,最高级

fastest

RP

小品词

up, off

SYM

符号(数学或科学)

+, % ,&

TO

to

to

UH

感叹词

ah, oops

VB

动词,基本形态

eat

VBD

动词,过去式

ate

VBG

动词,动名词/现在分词

eating

VBN

动词,过去分词

eaten

VBP

动词,非第三人称单数现在式

eat

VBZ

动词,第三人称单数现在式

eats

WDT

wh-限定词

which, that

WP

wh-代词

what, who

WP$

所有格wh-代词

whose

WRB

wh-副词

how, where

PU

标点符号

, . :

请求示例

  • 请求示例(开启词性标注功能进行分词,支持PKU分词规范)

    “endpoint”“project_id”“token”等请求参数获取方式可参考快速入门,参数详情请见构造请求

    Request Header:
        Content-Type: application/json
        X-Auth-Token: MIINRwYJKoZIhvcNAQcCoIINODCCDTQCAQExDTALBglghkgBZQMEAgEwgguVBgkqhkiG...
    
    Request Body:
        {
            "text":"今天天气真好",
            "pos_switch":1,
            "lang":"zh",
            "criterion":"PKU"
        }
  • Python3语言请求代码示例(开启词性标注功能进行分词,支持PKU分词规范)
    # -*- coding: utf-8 -*-
    # 此demo仅供测试使用,建议使用sdk。需提前安装requests,执行pip install requests
    import requests
    import json
    
    def nlp_demo():
        url = 'https://{endpoint}/v1/{project_id}/nlp-fundamental/segment'  # endpoint和project_id需替换
        token = '用户对应region的token'
        header = {
            'Content-Type': 'application/json',
            'X-Auth-Token': token
        }
        body = {
            'text': '今天天气真好',
            'pos_switch': 1,
            'lang': 'zh',
            'criterion': 'PKU'
        }
        resp = requests.post(url, data=json.dumps(body), headers=header)
        print(resp.json())
    
    if __name__ == '__main__':
        nlp_demo()
  • Java语言请求代码示例(开启词性标注功能进行分词,支持PKU分词规范)
    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/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 + "\",\"pos_switch\":1 ,\"lang\":\"zh\",\"criterion\":\"PKU\"}";
    
                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();
        }
    }

响应示例

  • 成功响应示例
    {
        "words": [
            {
                "content": "今天",
                "pos": "t"
            },
            {
                "content": "天气",,
                "pos": "n"
            },
            {
                "content": "真",
                "pos": "d"
            },
            {
                "content": "好",
                "pos": "a"
            }
        ]
    }
  • 失败响应示例
    {
        "error_code": "NLP.0301",
        "error_msg": "The length of text should be in the range of 1-512"
    }

状态码

状态码请参见状态码

错误码

错误码请参见错误码

相关文档