1. 接口说明

以哈工大社会计算与信息检索研究中心研发的 “语言技术平台(LTP)” 为基础,为用户提供针对中文(简体)文本的情感分析服务。情感分析(Sentiment Analysis) 是文本分类的一个分支,是对带有情感色彩(褒义贬义/正向负向)的主观性文本进行分析,以确定该文本的观点、喜好、情感倾向。

2. 接口地址

POST http://ltpapi.xfyun.cn/v1/sa HTTP/1.1
Content-Type:application/x-www-form-urlencoded; charset=utf-8

3. 请求参数

在 Http Request Header 中配置授权认证参数,见【接口描述-授权认证】。 其中 X-Param 为各配置参数组成的JSON串经BASE64编码之后的字符串,原始JSON串各字段说明如下:

参数 类型 必填 说明 示例
type string 服务类型,调用情感分析功能固定为dependent dependent

X-Param生成示例:

原始JSON串:
{
    "type": "dependent"
}
BASE64编码(即X-Param):
ew0KICAgICJ0eXBlIjogImRlcGVuZGVudCINCn0=

在 Http Request Body 中配置以下参数:

参数 类型 必须 说明 示例
text string 待分析文本(中文简体),长度限制为500字节 今天天气不错!

4. 返回值

返回值为json串,各字段如下:

参数 类型 说明
code string 结果码(具体见错误码)
data json对象 情感分析结果
desc string 错误描述,会话成功为success
sid string 会话ID,用来唯一标识本次会话,如会话报错无法解决,可以通过工单提供 sid 给讯飞技术人员分析解决。

data各字段说明如下:

标记 说明
negative_prob 贬义概率
neutral_prob 中性概率
positive_prob 褒义概率
sentiment 情感极性分类结果,0:代表中性,1:代表褒义,2:代表贬义

备注:negative_prob、neutral_prob、positive_prob三者累加等于1,三者得分最高的结果决定sentiment值。

结果示例如下:

失败结果:

{
    "code": "10105",
    "desc": "illegal access|invalid X-Appid",
    "data": {},
    "sid": "ltp0000a744@ch78290eb1e128000100"
}

成功结果:

{
    "code": "0",
    "data": {
        "sa": [
            {
                "negative_prob": 0.015691879079758858,
                "neutral_prob": 0.03726633179759517,
                "positive_prob": 0.9470417891226458,
                "sentiment": 1
            }
        ]
    },
    "desc": "success",
    "sid": "ltp00000002@dx381d0efd452f000100"
}

5. 调用示例

python脚本示例(python3)

说明:将脚本中TEXT, API_KEY, APPID, 换成相应的待分析文本,讯飞开放平台提供的apiKey,讯飞开放平台应用的appid即可,运行脚本可打印相应结果。

#!/usr/bin/python
# -*- coding: UTF-8 -*-
import time
import urllib.request
import urllib.parse
import json
import hashlib
import base64


def main():
    body = urllib.parse.urlencode({'text': 'TEXT'}).encode('utf-8')

    url = 'http://ltpapi.xfyun.cn/v1/sa'
    api_key = 'API_KEY'
    param = {"type": "dependent"}

    x_appid = 'APPID'
    x_param = base64.b64encode(json.dumps(param).replace(' ', '').encode('utf-8'))
    x_time = int(int(round(time.time() * 1000)) / 1000)
    x_checksum = hashlib.md5(api_key.encode('utf-8') + str(x_time).encode('utf-8') + x_param).hexdigest()
    x_header = {'X-Appid': x_appid,
                'X-CurTime': x_time,
                'X-Param': x_param,
                'X-CheckSum': x_checksum}
    req = urllib.request.Request(url, body, x_header)
    result = urllib.request.urlopen(req)
    result = result.read()
    print(result.decode('utf-8'))
    return


if __name__ == '__main__':
    main()
Copyright © iflytek.com 2018 all right reserved,powered by Gitbook该文件修订时间: 2018-11-03 10:26:45

results matching ""

    No results matching ""