商品評價解析服務(本地生活領域)。
商品評價解析服務-本地生活領域使用示例。如當前支持的領域、行業不滿足您的需求,請加釘釘自學習平臺答疑二群(釘釘群號: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 | 歸一化情感詞 |