商品评价解析服务(本地生活领域)。
商品评价解析服务-本地生活领域使用示例。如当前支持的领域、行业不满足您的需求,请加钉钉自学习平台答疑二群(钉钉群号:44619071),进一步咨询合作。
本服务由NLP自学习平台提供,直接调用API即可使用。
服务开通与资源包购买
使用前,请确认是否已经开通服务,开通后可购买资源包。
服务调用与调试
模型调用文档参考:模型调用
SDK示例文档参考:SDK示例
调试
您可以在OpenAPI开发者门户中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI开发者门户可以自动生成SDK代码示例。
通过环境变量配置访问凭证(AKSK)
说明:
阿里云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维,请登录RAM控制台创建RAM用户。
强烈建议不要把AccessKey和AccessKeySecret保存到代码里,会存在密钥泄漏风险,在此提供通过配置环境变量的方式来保存和访问aksk
Linux和macOS系统配置方法
export NLP_AK_ENV=<access_key_id> export NLP_SK_ENV=<access_key_secret>
其中<access_key_id>替换为已准备好的AccessKey ID,<access_key_secret>替换为AccessKey Secret,AccessKey ID和AccessKey Secret的获取方式见步骤二:获取账号的AccessKey
Windows系统配置方法
新建环境变量文件,添加环境变量
NLP_AK_ENV
和NLP_SK_ENV
,并写入已准备好的AccessKey ID和AccessKey Secret。重启Windows系统。
调用商品评价解析服务-本地生活领域,ServiceName需要传入:ABSA-LOCAL-LIFE。
Java代码示例
/**
* 阿里云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维,请登录RAM控制台创建RAM用户。
* 此处以把AccessKey和AccessKeySecret保存在环境变量为例说明。您也可以根据业务需要,保存到配置文件里。
* 强烈建议不要把AccessKey和AccessKeySecret保存到代码里,会存在密钥泄漏风险
*/
String accessKeyId = System.getenv("NLP_AK_ENV");
String accessKeySecret = System.getenv("NLP_SK_ENV");
DefaultProfile defaultProfile = DefaultProfile.getProfile("cn-hangzhou",accessKeyId,accessKeySecret);
IAcsClient client = new DefaultAcsClient(defaultProfile);
Map<String, Object> input = new HashMap();
input.put("content","服务态度不错 ,技术也还行 ,新开的店子,支持一下,有机会下次还来!");
input.put("domain","barber");
input.put("entity",true);
Map<String, Object> map = new HashMap<>();
map.put("input", input);
RunPreTrainServiceRequest request = new RunPreTrainServiceRequest();
request.setServiceName("ABSA-LOCAL-LIFE");
request.setPredictContent(JSON.toJSONString(map));
RunPreTrainServiceResponse response = client.getAcsResponse(request);
System.out.println(response.getPredictResult());
Python代码示例
# 安装依赖
pip install aliyun-python-sdk-core
pip install aliyun-python-sdk-nlp-automl
/**
* 阿里云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维,请登录RAM控制台创建RAM用户。
* 此处以把AccessKey和AccessKeySecret保存在环境变量为例说明。您也可以根据业务需要,保存到配置文件里。
* 强烈建议不要把AccessKey和AccessKeySecret保存到代码里,会存在密钥泄漏风险
*/# -*- coding: utf8 -*-
import json
import os
from aliyunsdkcore.client import AcsClient
from aliyunsdkcore.acs_exception.exceptions import ClientException
from aliyunsdkcore.acs_exception.exceptions import ServerException
from aliyunsdknlp_automl.request.v20191111 import RunPreTrainServiceRequest
/**
* 阿里云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维,请登录RAM控制台创建RAM用户。
* 此处以把AccessKey和AccessKeySecret保存在环境变量为例说明。您也可以根据业务需要,保存到配置文件里。
* 强烈建议不要把AccessKey和AccessKeySecret保存到代码里,会存在密钥泄漏风险
*/
access_key_id = os.environ['NLP_AK_ENV']
access_key_secret = os.environ['NLP_SK_ENV']
# Initialize AcsClient instance
client = AcsClient(
access_key_id,
access_key_secret,
"cn-hangzhou"
);
content = '服务态度不错 ,技术也还行 ,新开的店子,支持一下,有机会下次还来!'
domain = 'barber'
input_params = {
"input": {
"content": content,
"domain": domain,
"entity": True
}
}
# Initialize a request and set parameters
request = RunPreTrainServiceRequest.RunPreTrainServiceRequest()
request.set_ServiceName('ABSA-LOCAL-LIFE')
request.set_PredictContent(json.dumps(input_params))
# Print response
response = client.do_action_with_exception(request)
resp_obj = json.loads(response)
predict_result = json.loads(resp_obj['PredictResult'])
print(json.dumps(predict_result['data']))
PredictContent内容示例
PredictContent参数为JSON字符串传入,JSON字符串包含内容参考下面举例。
{
"input": {
"content": "服务态度不错 ,技术也还行 ,新开的店子,支持一下,有机会下次还来! ",
"domain": "barber",
"entity": true
}
}
入参说明
参数 | 说明 |
content | 需要预测的文本内容,最长支持500字。 |
domain | 支持商品类目。参考下一章节的类目支持表格。 |
entity | 值为true时返回结果包含属性情感词抽取结果,否则不包含 |
商品类目支持表
类目 | 类目code | 一级属性 | 二级属性 |
美容美甲美发 | barber | 产品 | 品质、效果,其他 |
价格 | 性价比、折扣力度、其他 | ||
位置 | 交通、寻找、距离商圈远近、其他 | ||
品牌 | |||
技术 | 洗发、烫染、理发、美容、美甲、其他 | ||
整体 | 再次消费的意愿、向他人推荐意愿、本地消费感受 | ||
服务 | 服务人员态度、时效、停车、意外伤害、排队等待时间、推销、提供小吃、支付相关、营业时间、额外收费、其他 | ||
环境 | 卫生情况、嘈杂情况、店内空间、其他 | ||
赠送 | |||
其他 | |||
餐饮美食 | restaurant | 价格 | 性价比、折扣力度、其他 |
位置 | 交通、寻找、距离商圈远近、其他 | ||
品牌 | |||
整体 | 再次消费的意愿、向他人推荐意愿、本次消费感受 | ||
服务 | 停车、排队等候时间、支付相关、服务人员态度、点菜/上菜速度、营业时间、其他 | ||
环境 | 卫生情况、嘈杂情况、就餐空间、装修情况、设施情况、其他 | ||
菜品 | 份量、口感、品质、外观、异物、新鲜度、气味、生熟度、种类、其他 | ||
赠送 | |||
其他 |
PredictResult内容示例
PredictResult是JSON字符串,需要反序列化之后进行解析。
算法返回结果中,一级属性和二级属性合并在一起返回,请参考返回结果示例。
{
"code": 1000,
"data": {
"cost": "42.752ms",
"textProb": 0.9987,
"aspectItem": [
{
"clause": "支持一下",
"clauseIndex": "21,25",
"aspectPolarity": "正",
"terms": [
{
"aspectTerm": "",
"opinionTerm": "有机会下次还来",
"normedAspectTerm": "",
"normedOpinionTerm": "有机会下次还来"
},
{
"aspectTerm": "",
"opinionTerm": "支持一下",
"normedAspectTerm": "",
"normedOpinionTerm": "支持一下"
}
],
"positiveProb": 0.999,
"aspectCategory": "整体^再次消费的意愿",
"negativeProb": 0.001
},
{
"clause": "服务态度不错 ",
"clauseIndex": "0,7",
"aspectPolarity": "正",
"terms": [
{
"aspectTerm": "服务态度",
"opinionTerm": "不错",
"normedAspectTerm": "服务态度",
"normedOpinionTerm": "不错"
}
],
"positiveProb": 0.998,
"aspectCategory": "服务^服务人员态度",
"negativeProb": 0.001
},
{
"clause": "技术也还行 ",
"clauseIndex": "8,14",
"aspectPolarity": "正",
"terms": [
{
"aspectTerm": "技术",
"opinionTerm": "还行",
"normedAspectTerm": "技术",
"normedOpinionTerm": "还行"
}
],
"positiveProb": 0.999,
"aspectCategory": "技术^其他",
"negativeProb": 0.001
}
],
"textPolarity": "正"
},
"message": "SUCCESS",
"tracerId": "1617087370.344171"
}
出参说明
字段 | 说明 |
textPolarity | 整条文本情感极性:正、中、负 |
textProb | 整条文本情感极性置信度(取值范围[0,1],越大代表整条文本为textPolarity对应情感极性的概率越高) |
aspectItem | 属性情感列表,每个元素是一个JSON字段 |
aspectCategory | 属性类别 |
aspectPolarity | 属性片段极性(正、中、负) |
clause | 情感子句 |
clauseIndex | 情感子句所在的起始位置,终结位置 |
positiveProb | 情感正向置信度(取值范围[0,1],越大代表情感正向概率越高) |
negativeProb | 情感负向置信度(取值范围[0,1],越大代表情感负向概率越高) |
terms | 抽取的属性情感词列表,每个元素是一个JSON字段 |
aspectTerm | 属性词 |
opinionTerm | 情感词 |
normedAspectTerm | 归一化属性词 |
normedOpinionTerm | 归一化情感词 |