• 沒有找到結果。

4.2.1 初始化 Client

NlpfClient是访问自然语言处理基础的工具类,通过构造认证信息类和选择认证方式去 初始化NlpfClient,然后用对应实例去访问接口。初始化支持AK/SK认证和Token认证 两种方式。

AK/SK 认证方式

////参考AK/SK认证方式章节获取ak/sk,参考获取SDK章节获取region、参考获取项目ID章节获取projectId //例如用户的ak值为{ak},sk值为{sk},region值为{region},projectId值为{projectId},则构造Client如下 //AuthInfo authInfo = new AuthInfo("{ak}","{sk}","{region}","{projectId}");

////构造完AuthInfo,初始化对应的Client,此时构造方法第一个参数要选择AuthMode.AKSK //NlpfClient client = new NlpfClient(AuthMode.AKSK,authInfo);

////支持对客户端设置网络代理进行访问,参数proxyHost表示域名,8080表示端口,username表示用户名,

password表示密码。如果不需要代理,不用设置

//client.setProxyWithAuth("proxyHost",8080,"username","password");

Token 认证方式

////参考获取SDK章节获取region、参考获取项目ID章节获取projectId

//例如用户的用户名为{userName},密码值为{pwd},所属帐号为{domainName},region值为{region},projectId值为 {projectId},则构造Client如下

//一个帐号下可以有多个用户,如果用户使用帐号本身登录,那么userName和domainName 值相等,都传帐号 名即可//

AuthInfo authInfo = new AuthInfo("{userName}","{pwd}","{domainName}","{region}","{projectId}");

////构造完AuthInfo,初始化对应的Client,此时构造方法第一个参数要选择AuthMode.TOKEN

//NlpfClient client = new NlpfClient(AuthMode.TOKEN,authInfo);

////支持对客户端设置网络代理进行访问,参数proxyHost表示域名,8080表示端口,username表示用户名,

password表示密码。如果不需要代理,不用设置

//client.setProxyWithAuth("proxyHost",8080,"username","password");

4.2.2 分词

● 请求示例

//按照初始化Client章节选择认证方式构造client,同一个认证Client建议以单例形式构造使用,避免频繁创 建对象。以AKSK方式为例

NlpfClient client = new NlpfClient(AuthMode.AKSK,authInfo);

SegmentReq req = new SegmentReq();

req.setText("今天天气真好");

//选填,SegmentConstant.POS_SWITCH_ON 开启词性标注 SegmentConstant.POS_SWITCH_OFF不开启 req.setPosSwitch(SegmentConstant.POS_SWITCH_ON);

SegmentResp resp = nlpfClient.segment(req);

} catch (NlpException e) {

//失败统一以异常形式抛出,见异常类说明。客户端自行处理异

常 }

● SegmentReq 类参数说明见表4-1。

4-1 SegmentReq 类参数说明

参数名称 是否必选 类型 说明

text 是 String 待分词文本,长

度为1~512,文本 编码为UTF-8。

pos_switch 否 Integer 是否开启词性标

注功能,1为开

criterion 否 String 支持的分词规

范,目前支持PKU

(北大分词标 准)、CTB(宾州 树库标准),默 认为PKU。

● SegmentResp 类参数说明见表4-2。

4-2 SegmentResp 类参数说明

参数名称 类型 说明

words List<Word> 分词识别结果列表。

● Word字段数据结构说明见表4-3

4-3 Word 字段数据结构说明

参数名称 类型 说明

content String 词汇文本。

pos String 词汇词性,具体含义见分词API-响应消息的响应消息 部分。

4.2.3 命名实体识别(基础版)

● 请求示例

//按照初始化Client章节选择认证方式构造client,同一个认证Client建议以单例形式构造使用,避免频繁创 建对象。以AKSK方式为例

NlpfClient client = new NlpfClient(AuthMode.AKSK,authInfo);

NerReq req = new NerReq();

//text为识别文本,必填 req.setText("张三买电脑");

//选填,zh表示中文 req.setLang("zh");

try {

NerResp resp = client.ner(req);

} catch (NlpException e) {

//失败统一以异常形式抛出,见异常类说明。客户端自行处理异

常 }

● NerReq 类参数说明见表4-4。

4-4 NerReq 类参数说明

参数名称 是否必选 类型 说明

text 是 String 待识别文本。

lang 否 String 识别语言,默认

为中文zh,目前 只支持中文。

参数名称 是否必选 类型 说明

domain 否 String 支持的领域类

型,目前只支持 通用领域,默认 为general。基础 版接口不用填。

● NerResp 类参数说明见表4-5。

4-5 NerResp 类参数说明

参数名称 类型 说明

namedEntities List<NamedEntity> 命名实体识别结果列 表。

● NamedEntity字段数据结构说明见表4-6。

4-6 NamedEntity 字段数据结构说明

参数名称 类型 说明

word String 实体文本。

tag String 实体类型,枚举类型,支持人名nr,地名ns,机构名 nt,时间点tpt,日期day,百分比pct,货币额度 mny,序数词ord,计量规格词qtt,民族race,职业 job,邮箱email。

offset Integer 实体文本在待分析本文中的起始位置。

len Integer 实体文本长度。

4.2.4 命名实体识别(领域版)

● 请求示例

//按照初始化Client章节选择认证方式构造client,同一个认证Client建议以单例形式构造使用,避免频繁创 建对象。以AKSK方式为例

NlpfClient client = new NlpfClient(AuthMode.AKSK,authInfo);

NerReq req = new NerReq();

//text为识别文本,必填 req.setText("张三买电脑");

//选填,zh表示中文 req.setLang("zh");

try {

NerResp resp = client.domainNer(req);

} catch (NlpException e) {

//失败统一以异常形式抛出,详情见异常类说明。客户端自行处理异常 }

● NerReq 类参数说明见表4-7。

domain 否 String 支持的领域类

型,目前只支持 通用领域,默认 为general。领域 版接口才需要。

● NerResp 类参数说明见表4-8。

4-8 NerResp 类参数说明

参数名称 类型 说明

namedEntities List<NamedEntity> 命名实体识别结果列 表。

● NamedEntity字段数据结构说明见表4-9。

4-9 NamedEntity 字段数据结构说明

参数名称 类型 说明

word String 实体文本。

tag String 实体类型,枚举类型,支持人名nr,地名ns,机构名 nt,时间点tpt,日期day,百分比pct,货币额度 mny,序数词ord,计量规格词qtt,民族race,职业 job,邮箱email。

offset Integer 实体文本在待分析本文中的起始位置。

len Integer 实体文本长度。

4.2.5 文本相似度(基础版)

● 请求示例

//按照初始化Client章节选择认证方式构造client,同一个认证Client建议以单例形式构造使用,避免频繁创 建对象。以AKSK方式为例

NlpfClient client = new NlpfClient(AuthMode.AKSK,authInfo);

TextSimilarityReq req = new TextSimilarityReq();

//相似度对比的两个文本

req.setText1("今天天气晴朗");

req.setText2("今天天气晴");

//支持的文本语言类型,zh表示中文,目前只支持中文 req.setLang("zh");

try {

TextSimilarityResp resp = client.getTextSimilarity(req);

} catch (NlpException e) {

//失败统一以异常形式抛出,详情见异常类说明。客户端自行处理异常 }

● TextSimilarityReq 类参数说明见表4-10。

4-10 TextSimilarityReq 类参数说明

参数名称 是否必选 类型 说明

text1 是 String 待计算文本1,长

度1~512,文本编 码为UTF-8。

text2 是 String 待计算文本2,长

度1~512,文本编

● TextSimilarityResp 类参数说明见表4-11。

4-11 TextSimilarityResp 类参数说明

参数名称 类型 说明

similarity Double 相似度得分,范围在0~1,默认小数点后保留 8位。

4.2.6 句向量

● 请求示例

//按照初始化Client章节选择认证方式构造client,同一个认证Client建议以单例形式构造使用,避免频繁创 建对象。以AKSK方式为例

NlpfClient client = new NlpfClient(AuthMode.AKSK,authInfo);

SentenceVectorsReq req = new SentenceVectorsReq();

//构造需要获得句向量的句子

List<String> sentences = new ArrayList<String>();

sentences.add("今天张三来北京了");

SentenceVectorsResp resp = client.getSentenceVectors(req);

} catch (NlpException e) {

//失败统一以异常形式抛出,详情见异常类说明。客户端自行处理异常 }

● SentenceVectorsReq 类参数说明见表4-12。

4-12 SentenceVectorsReq 类参数说明 参数名

es 是 List<Stri

ng> 文本列表,文本长度为1~512,列表大小为 1~1000,文本编码为UTF-8。

domain 否 String 计算句向量时使用的模型名,目前只支持 general,默认为general。

● SentenceVectorsResp 类参数说明见表4-13。

4-13 SentenceVectorsResp 类参数说明

参数名称 类型 说明

vectors List<List<Dou

ble>> 句向量结果列表,按输入句子顺序返回句向 量。

4.2.7 实体链接

● 请求示例

//按照初始化Client章节选择认证方式构造client,同一个认证Client建议以单例形式构造使用,避免频繁创 建对象。以AKSK方式为例

NlpfClient client = new NlpfClient(AuthMode.AKSK,authInfo);

EntityLinkingReq req = new EntityLinkingReq();

req.setText("李娜唱的青藏高原真好听");

req.setLang("zh");

try {

EntityLinkingResp resp = client.getEntityLinking(req);

} catch (NlpException e) {

//失败统一以异常形式抛出,详情见异常类说明。客户端自行处理异常 }

● EntityLinkingReq 类参数说明见表4-14

4-14 EntityLinkingReq 类参数说明 参数名

称 是否必

选 类型 说明

text 是 String 待分析文本,长度为1~50,文本编码为 UTF-8。

lang 否 String 支持的文本语言类型,目前只支持中文,默认 为zh。

● EntityLinkingResp 类参数说明见表4-15

4-15 EntityLinkingResp 类参数说明

参数名称 类型 说明

entities List<Entity> 实体链接结果类集合。

● Entity 类参数说明见表4-16

4-16 Entity 类参数说明

参数名称 类型 说明

mention String 实体指称。

offset Integer 偏移量。

entityTitle String 指称链接到的实体名。

4.2.8 关键词抽取

● 请求示例

//按照初始化Client章节选择认证方式构造client,同一个认证Client建议以单例形式构造使用,避免频繁创 建对象。以AKSK方式为例

NlpfClient client = new NlpfClient(AuthMode.AKSK,authInfo);

KeywordExtractionReq req = new KeywordExtractionReq();

req.setText("华为技术有限公司成立于1987年,总部位于广东省深圳市龙岗区。华为是全球领先的信息与

KeywordExtractionResp resp = client.extractKeyword(req);

} catch (NlpException e) {

//失败统一以异常形式抛出,详情见异常类说明。客户端自行处理异常 }

● KeywordExtractionReq 类参数说明见表4-17

4-17 KeywordExtractionReq 类参数说明 参数名

是否必 选

类型 说明

text 是 String 待分析文本,长度为1~512,文本编码为 UTF-8。

limit 否 Integer 返回关键词的最大数量,默认为5。

如果请求文本的词汇数量小于该值,则返回实 际词汇数量。

如果词汇数量为浮点数,则limit取该浮点数向 下取整的结果。

参数名

● KeywordExtractionResp 类参数说明见表4-18

4-18 KeywordExtractionResp 类参数说明

参数名称 类型 说明

words List<String> 关键词列表。

4.2.9 多粒度分词

● 请求示例

//按照初始化Client章节选择认证方式构造client,同一个认证Client建议以单例形式构造使用,避免频繁创 建对象。以AKSK方式为例

NlpfClient client = new NlpfClient(AuthMode.AKSK,authInfo);

MultiGrainedSegmentReq req = new MultiGrainedSegmentReq();

req.setText("华为技术有限公司的总部");

req.setLang("zh");

try {

MultiGrainedSegmentResp resp = client.multiGrainedSegment(req);

} catch (NlpException e) {

//失败统一以异常形式抛出,详情见异常类说明。客户端自行处理异常 }

● MultiGrainedSegmentReq 类参数说明见表4-19

4-19 MultiGrainedSegmentReq 类参数说明 参数名

是否必 选

类型 说明

text 是 String 待分析文本,长度为1~64,文本编码为 UTF-8。

lang 否 String 支持的文本语言类型,目前只支持中文,默认 为zh。

● MultiGrainedSegmentResp 类参数说明见表4-20

4-20 MultiGrainedSegmentResp 类参数说明

参数名称 类型 说明

result List<Segment

SubContents> 分词结果列表。

● SegmentSubContents 类参数说明见表4-21

4-21 SegmentSubContents 类参数说明

参数名称 类型 说明

content String 该节点对应的文本内容,并基于文本的 unicode编码,做归一化处理。

例如:中文标点","会映射到英文标点

“,”。

type String 节点类型,包括 WORD-词汇类型,CHAR-字符类型。

subContents List<Segment

SubContents> 子节点列表。

相關文件