商品评价解析服务-本地生活领域

商品评价解析服务(本地生活领域)。

商品评价解析服务-本地生活领域使用示例。如当前支持的领域、行业不满足您的需求,请加钉钉自学习平台答疑二群(钉钉群号:44619071),进一步咨询合作。

说明

本服务由NLP自学习平台提供,直接调用API即可使用。

服务开通与资源包购买

使用前,请确认是否已经开通服务,开通后可购买资源包。

服务调用与调试

模型调用文档参考:模型调用

SDK示例文档参考:SDK示例

调试

您可以在OpenAPI开发者门户中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI开发者门户可以自动生成SDK代码示例。

通过环境变量配置访问凭证(AKSK)

  1. 说明:

    1. 阿里云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维,请登录RAM控制台创建RAM用户。

    2. 强烈建议不要把AccessKey和AccessKeySecret保存到代码里,会存在密钥泄漏风险,在此提供通过配置环境变量的方式来保存和访问aksk

  2. 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

  3. Windows系统配置方法

    1. 新建环境变量文件,添加环境变量NLP_AK_ENVNLP_SK_ENV,并写入已准备好的AccessKey ID和AccessKey Secret。

    2. 重启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

归一化情感词