一、准备工作:在百度智能云登录账号后,搜索【文本纠错】,进入控制台
二、在springboot项目中加入依赖
<!--百度云文本纠错-->
<dependency>
<groupId>com.baidu.aip</groupId>
<artifactId>java-sdk</artifactId>
<version>4.16.13</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- jdk版本1.8,请在maven中加入alpn-boot的支持,否则无法开启http2.0支持-->
<dependency>
<groupId>org.mortbay.jetty.alpn</groupId>
<artifactId>alpn-boot</artifactId>
<version>8.1.13.v20181017</version>
</dependency>
<!-- alibaba fastjson-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.51</version>
</dependency>
三、根据文档返回的数据结构,新建VecFragment类
返回的数据结构:
VecFragment类详情:
import lombok.Data;
/**
* @author wangghua
* @ClassName VecFragment
* @描述: 替换片段信息
* @datetime 2023年 01月 04日 13:34
*/
@Data
public class VecFragment {
/**
* 原片段
*/
private String oriFrag;
/**
* 替换片段
*/
private String correctFrag;
/**
* 起始(长度单位)
*/
private Integer beginPos;
/**
* 结尾(长度单位)
*/
private Integer endPos;
}
新建BaiduMain类:
import com.alibaba.fastjson.JSON;
import com.baidu.aip.nlp.AipNlp;
import org.json.JSONArray;
import org.json.JSONObject;
import java.util.HashMap;
import java.util.List;
/**
* @author wangghua
* @ClassName BaiduMain
* @描述:
* @datetime 2023年 01月 04日 9:55
*/
public class BaiduMain {
//设置APPID/AK/SK,在第一步的准备工作那里获取
public static final String APP_ID = "你的APPID";
public static final String API_KEY = "你的API_KEY";
public static final String SECRET_KEY = "你的SECRET_KEY";
/**
* main方法
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception{
// 初始化一个AipNlp
AipNlp client = new AipNlp(APP_ID, API_KEY, SECRET_KEY);
String text = "白度一下今天的问踢";
// 传入可选参数调用接口
HashMap<String, Object> options = new HashMap<String, Object>();
// 文本纠错
JSONObject res = client.ecnet(text, options);
JSONObject resultJson = res.getJSONObject("item");
String resultOriginal = resultJson.getString("correct_query");
JSONArray listQuery = resultJson.getJSONArray("vec_fragment");//获取到的结果是一个纠错的词汇JSONArray集合
String strArray = JSONObject.valueToString(listQuery);//将词汇集合转为字符串
List<VecFragment> vecFragmentList = JSON.parseArray(strArray, VecFragment.class);//将转为的字符串重新转为List集合
if (vecFragmentList.size() > 0 ){
for (VecFragment fragment:vecFragmentList) {
System.out.println("错误词汇 = " + fragment.getOriFrag());
System.out.println("替换词汇 = " + fragment.getCorrectFrag());
}
}else {
System.out.println("没有需要替换的词汇");
}
System.out.println("替换前文本:"+text);
System.out.println("替换后文本:"+resultOriginal);
System.out.println(res.toString(2));//这是返回的所有数据结构打印
}
}
运行结果:
参考官方文档:https://cloud.baidu.com/doc/NLP/s/Nk6z52ci5