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> 子节点列表。