当前位置:   article > 正文

java调用阿里云NLP自然语言处理模型_java调用nlp模型

java调用nlp模型

由于SDK调用需要收费,所以采用API调用,每天有50万次免费额度,直接复制就能用

一.开通账号服务

1.百度搜索阿里巴巴自然语言处理开放平台

2.登录后页面

 

3.获取AccessKey和Secret,()找到右上角头像后点击AccessKey管理)

4.自行开通需要的版本

二.代码部分

  1. import org.apache.http.client.methods.CloseableHttpResponse;
  2. import org.apache.http.client.methods.HttpGet;
  3. import org.apache.http.client.utils.URIBuilder;
  4. import org.apache.http.impl.client.CloseableHttpClient;
  5. import org.apache.http.impl.client.HttpClients;
  6. import org.apache.http.util.EntityUtils;
  7. import sun.misc.BASE64Encoder;
  8. import javax.crypto.Mac;
  9. import javax.crypto.SecretKey;
  10. import javax.crypto.spec.SecretKeySpec;
  11. import java.net.URI;
  12. import java.net.URLEncoder;
  13. import java.text.DateFormat;
  14. import java.text.SimpleDateFormat;
  15. import java.util.*;
  16. public class TestCloud {
  17. static String key = "xxx"; // 你自己账号对应的AccessKey
  18. static String secret = "xxx"; // 你自己账号对应的secret
  19. static String url = "http://alinlp.cn-hangzhou.aliyuncs.com/?";
  20. public static void main(String[] args) throws Exception {
  21. //根据自己的region更换
  22. String sortStr = buildSortedUrl(null);
  23. String sign = getSign(sortStr);
  24. String targetUrl = url + sortStr + "&" + "Signature=" + sign ;
  25. // 创建Httpclient对象
  26. CloseableHttpClient httpclient = HttpClients.createDefault();
  27. String resultString = "";
  28. CloseableHttpResponse response = null;
  29. URIBuilder builder = new URIBuilder(targetUrl);
  30. URI uri = builder.build();
  31. // 创建http GET请求
  32. HttpGet httpGet = new HttpGet(uri);
  33. // 执行请求
  34. response = httpclient.execute(httpGet);
  35. // 判断返回状态是否为200
  36. if (response.getStatusLine().getStatusCode() == 200) {
  37. resultString = EntityUtils.toString(response.getEntity(), "UTF-8");
  38. }
  39. // JSONObject jsonObject = restTemplate.getForObject(URLDecoder.decode(targetUrl), JSONObject.class);
  40. System.out.println(resultString);
  41. }
  42. public static byte[] HmacSHA1Encrypt(String encryptText, String encryptKey) throws Exception {
  43. String MAC_NAME = "HmacSHA1";
  44. String ENCODING = "UTF-8";
  45. byte[] data=encryptKey.getBytes(ENCODING);
  46. //根据给定的字节数组构造一个密钥,第二参数指定一个密钥算法的名称
  47. SecretKey secretKey = new SecretKeySpec(data, MAC_NAME);
  48. //生成一个指定 Mac 算法 的 Mac 对象
  49. Mac mac = Mac.getInstance(MAC_NAME);
  50. //用给定密钥初始化 Mac 对象
  51. mac.init(secretKey);
  52. byte[] text = encryptText.getBytes(ENCODING);
  53. //完成 Mac 操作
  54. return mac.doFinal(text);
  55. }
  56. public static String encryptBASE64(byte[] key) {
  57. return (new BASE64Encoder()).encodeBuffer(key);
  58. }
  59. public static String getISO8601Timestamp(Date date){
  60. TimeZone tz = TimeZone.getTimeZone("UTC");
  61. DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
  62. df.setTimeZone(tz);
  63. String nowAsISO = df.format(date);
  64. return nowAsISO;
  65. }
  66. public static String getSign(String sortUrl) throws Exception {
  67. String StringToSign = "GET&%2F&" + java.net.URLEncoder.encode(sortUrl);
  68. byte[] rlt = HmacSHA1Encrypt(StringToSign, secret + "&");
  69. String sig = encryptBASE64(rlt);
  70. sig = sig.replace("\r", "").replace("\n", "");
  71. sig = URLEncoder.encode(sig);
  72. return sig;
  73. }
  74. public static String buildSortedUrl(String nextPageToken){
  75. Map<String, String> map = new HashMap<>();
  76. map.put("Format","json");
  77. map.put("Version","2020-06-29");
  78. map.put("AccessKeyId",key);
  79. map.put("SignatureMethod","HMAC-SHA1");
  80. map.put("Timestamp", getISO8601Timestamp(new Date()));
  81. map.put("SignatureVersion", "1.0");
  82. map.put("SignatureNonce", UUID.randomUUID().toString().replace("-",""));
  83. map.put("Text", "深圳洗剪吹");
  84. map.put("TokenizerId", "GENERAL_CHN");
  85. /**
  86. * xxxx替换为你想要的处理方式
  87. * 中文分词: GetWsChGeneral
  88. * 词性标注: GetPosChGeneral
  89. * 命名实体类别: GetNerChEcom
  90. * 情感分析: GetSaChGeneral
  91. * 关键词提取: GetKeywordChEcom
  92. * 文本分类: GetTcChGeneral
  93. */
  94. map.put("Action", "xxxx");
  95. map.put("ServiceCode", "alinlp");
  96. List<String> sortList = new ArrayList<>();
  97. for (String key : map.keySet()) {
  98. sortList.add(key);
  99. }
  100. sortList.sort(Comparator.naturalOrder());
  101. String sortStr = null;
  102. for(String key : sortList){
  103. String temp = URLEncoder.encode(key) + "=" + URLEncoder.encode(map.get(key));
  104. if(sortStr == null){
  105. sortStr = temp;
  106. }else{
  107. sortStr += "&" + temp;
  108. }
  109. }
  110. sortStr.replace("+","%20").replace("*","%2A").replace("%7E","~");
  111. return sortStr;
  112. }
  113. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/爱喝兽奶帝天荒/article/detail/803751?site
推荐阅读
相关标签
  

闽ICP备14008679号