您的位置:首页 > 大数据 > 人工智能

调用百度AI开放平台的接口实现自然语言情感分析

2019-03-19 15:39 706 查看

为了实现对评论内容的分析,筛选出好评与差评,调研百度AI自然语言的情感倾向分析接口

[code]package com.Takeaway.tools;

import java.util.HashMap;

import com.baidu.aip.nlp.AipNlp;
import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;

/**
* 对评论进行情感分析
*
* @author Waitforyou
*
*/
public class Sentimentanalysis {

public static final String APP_ID = "*****";
public static final String API_KEY = "********";
public static final String SECRET_KEY = "**********";
private static AipNlp instance = null;
public static synchronized AipNlp getInstance() {
if (instance == null) {
instance = new AipNlp(APP_ID, API_KEY, SECRET_KEY);
}
return instance;
}

public static String  Startanalysis(String Analysis) {
// 新建一个AipNlp,初始化完成后建议单例使用,避免重复获取access_token:
// AipNlp client = new AipNlp(APP_ID, API_KEY, SECRET_KEY);
AipNlp client = getInstance();
AipNlp client2 = getInstance();

System.out.println("" + client.equals(client2)); // 检验单例使用

// 可选:设置网络连接参数
client.setConnectionTimeoutInMillis(2000);
client.setSocketTimeoutInMillis(60000);

// 可选:设置代理服务器地址, http和socket二选一,或者均不设置
// client.setHttpProxy("proxy_host", proxy_port); // 设置http代理
// client.setSocketProxy("proxy_host", proxy_port); // 设置socket代理

// 可选:设置log4j日志输出格式,若不设置,则使用默认配置
// 也可以直接通过jvm启动参数设置此环境变量
// System.setProperty("aip.log4j.conf",
// "path/to/your/log4j.properties");
// 传入可选参数调用接口
HashMap<String, Object> options = new HashMap<String, Object>();
// 情感倾向分析
org.json.JSONObject res = client.sentimentClassify(Analysis, options);

System.out.println(res.toString(2));

JsonParser parser = new JsonParser();
JsonObject object = (JsonObject)parser.parse(res.toString());
JsonArray array = object.get("items").getAsJsonArray();
JsonObject suJsonObject = array.get(0).getAsJsonObject();

if(Integer.parseInt(suJsonObject.get("sentiment").getAsString())==0){
return "差评";
}else if(Integer.parseInt(suJsonObject.get("sentiment").getAsString())==1){
return "一般";
}else if(Integer.parseInt(suJsonObject.get("sentiment").getAsString())==2){
return "好评";
}else{
return "";
}

}

}

返回示例

[code]{
"text":"苹果是一家伟大的公司",
"items":[
{
"sentiment":2,    //表示情感极性分类结果
"confidence":0.40, //表示分类的置信度
"positive_prob":0.73, //表示属于积极类别的概率
"negative_prob":0.27  //表示属于消极类别的概率
}
]
}

返回参数说明

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: