赞
踩
由于SDK调用需要收费,所以采用API调用,每天有50万次免费额度,直接复制就能用
1.百度搜索阿里巴巴自然语言处理开放平台
2.登录后页面
3.获取AccessKey和Secret,()找到右上角头像后点击AccessKey管理)
4.自行开通需要的版本
- import org.apache.http.client.methods.CloseableHttpResponse;
- import org.apache.http.client.methods.HttpGet;
- import org.apache.http.client.utils.URIBuilder;
- import org.apache.http.impl.client.CloseableHttpClient;
- import org.apache.http.impl.client.HttpClients;
- import org.apache.http.util.EntityUtils;
- import sun.misc.BASE64Encoder;
- import javax.crypto.Mac;
- import javax.crypto.SecretKey;
- import javax.crypto.spec.SecretKeySpec;
- import java.net.URI;
- import java.net.URLEncoder;
- import java.text.DateFormat;
- import java.text.SimpleDateFormat;
- import java.util.*;
-
- public class TestCloud {
-
- static String key = "xxx"; // 你自己账号对应的AccessKey
- static String secret = "xxx"; // 你自己账号对应的secret
- static String url = "http://alinlp.cn-hangzhou.aliyuncs.com/?";
-
- public static void main(String[] args) throws Exception {
- //根据自己的region更换
- String sortStr = buildSortedUrl(null);
- String sign = getSign(sortStr);
- String targetUrl = url + sortStr + "&" + "Signature=" + sign ;
-
- // 创建Httpclient对象
- CloseableHttpClient httpclient = HttpClients.createDefault();
-
- String resultString = "";
- CloseableHttpResponse response = null;
- URIBuilder builder = new URIBuilder(targetUrl);
- URI uri = builder.build();
-
- // 创建http GET请求
- HttpGet httpGet = new HttpGet(uri);
-
- // 执行请求
- response = httpclient.execute(httpGet);
- // 判断返回状态是否为200
- if (response.getStatusLine().getStatusCode() == 200) {
- resultString = EntityUtils.toString(response.getEntity(), "UTF-8");
- }
- // JSONObject jsonObject = restTemplate.getForObject(URLDecoder.decode(targetUrl), JSONObject.class);
- System.out.println(resultString);
- }
-
- public static byte[] HmacSHA1Encrypt(String encryptText, String encryptKey) throws Exception {
- String MAC_NAME = "HmacSHA1";
- String ENCODING = "UTF-8";
- byte[] data=encryptKey.getBytes(ENCODING);
- //根据给定的字节数组构造一个密钥,第二参数指定一个密钥算法的名称
- SecretKey secretKey = new SecretKeySpec(data, MAC_NAME);
- //生成一个指定 Mac 算法 的 Mac 对象
- Mac mac = Mac.getInstance(MAC_NAME);
- //用给定密钥初始化 Mac 对象
- mac.init(secretKey);
- byte[] text = encryptText.getBytes(ENCODING);
- //完成 Mac 操作
- return mac.doFinal(text);
- }
-
- public static String encryptBASE64(byte[] key) {
- return (new BASE64Encoder()).encodeBuffer(key);
- }
-
-
- public static String getISO8601Timestamp(Date date){
- TimeZone tz = TimeZone.getTimeZone("UTC");
- DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
- df.setTimeZone(tz);
- String nowAsISO = df.format(date);
- return nowAsISO;
- }
-
- public static String getSign(String sortUrl) throws Exception {
- String StringToSign = "GET&%2F&" + java.net.URLEncoder.encode(sortUrl);
- byte[] rlt = HmacSHA1Encrypt(StringToSign, secret + "&");
- String sig = encryptBASE64(rlt);
- sig = sig.replace("\r", "").replace("\n", "");
- sig = URLEncoder.encode(sig);
- return sig;
- }
-
- public static String buildSortedUrl(String nextPageToken){
- Map<String, String> map = new HashMap<>();
- map.put("Format","json");
- map.put("Version","2020-06-29");
- map.put("AccessKeyId",key);
- map.put("SignatureMethod","HMAC-SHA1");
- map.put("Timestamp", getISO8601Timestamp(new Date()));
- map.put("SignatureVersion", "1.0");
- map.put("SignatureNonce", UUID.randomUUID().toString().replace("-",""));
- map.put("Text", "深圳洗剪吹");
- map.put("TokenizerId", "GENERAL_CHN");
- /**
- * xxxx替换为你想要的处理方式
- * 中文分词: GetWsChGeneral
- * 词性标注: GetPosChGeneral
- * 命名实体类别: GetNerChEcom
- * 情感分析: GetSaChGeneral
- * 关键词提取: GetKeywordChEcom
- * 文本分类: GetTcChGeneral
- */
- map.put("Action", "xxxx");
- map.put("ServiceCode", "alinlp");
- List<String> sortList = new ArrayList<>();
- for (String key : map.keySet()) {
- sortList.add(key);
- }
- sortList.sort(Comparator.naturalOrder());
- String sortStr = null;
- for(String key : sortList){
- String temp = URLEncoder.encode(key) + "=" + URLEncoder.encode(map.get(key));
- if(sortStr == null){
- sortStr = temp;
- }else{
- sortStr += "&" + temp;
- }
- }
- sortStr.replace("+","%20").replace("*","%2A").replace("%7E","~");
- return sortStr;
- }
-
- }

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。