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

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

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 "";
        }
        
        
    }

}

返回示例

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

返回参数说明

猜你喜欢

转载自blog.csdn.net/weixin_37545129/article/details/88663833