├── .gitignore ├── Readme.md ├── pom.xml └── src ├── main ├── java │ └── com │ │ └── xiaowei │ │ └── aiproject │ │ ├── AiProjectApplication.java │ │ ├── controller │ │ ├── AiController.java │ │ └── HelloController.java │ │ ├── service │ │ ├── AiService.java │ │ └── impl │ │ │ └── AiServiceImpl.java │ │ └── utiles │ │ ├── AdvancedGeneral.java │ │ ├── Aiutils.java │ │ ├── NLPDemo.java │ │ └── TestUtils.java └── resources │ ├── application.properties │ └── templates │ └── index.html └── test └── java └── com └── xiaowei └── aiproject └── AiProjectApplicationTests.java /.gitignore: -------------------------------------------------------------------------------- 1 | HELP.md 2 | target/ 3 | !.mvn/wrapper/maven-wrapper.jar 4 | !**/src/main/**/target/ 5 | !**/src/test/**/target/ 6 | 7 | ### STS ### 8 | .apt_generated 9 | .classpath 10 | .factorypath 11 | .project 12 | .settings 13 | .springBeans 14 | .sts4-cache 15 | 16 | ### IntelliJ IDEA ### 17 | .idea 18 | *.iws 19 | *.iml 20 | *.ipr 21 | 22 | ### NetBeans ### 23 | /nbproject/private/ 24 | /nbbuild/ 25 | /dist/ 26 | /nbdist/ 27 | /.nb-gradle/ 28 | build/ 29 | !**/src/main/**/build/ 30 | !**/src/test/**/build/ 31 | 32 | ### VS Code ### 33 | .vscode/ 34 | /.mvn/ 35 | /mvnw 36 | /mvnw.cmd 37 | -------------------------------------------------------------------------------- /Readme.md: -------------------------------------------------------------------------------- 1 | #研究生复试AI项目 2 | 3 | 视频教程地址:https://www.bilibili.com/video/BV1UR4y1u74J 4 | 5 | 项目前端地址:https://github.com/xiaoweix/ai-project-web 6 | 7 | 文本处理控制台:https://console.bce.baidu.com/ai/#/ai/ocr/overview/index 8 | 9 | 人工智能学习平台:https://www.paddlepaddle.org.cn/tutorials/projectdetail/1990733 10 | 11 | 前端ElementUI组件地址:https://element.eleme.io/#/zh-CN/component/installation 12 | 13 | 运行前需要做的事情: 14 | 修改`com.xiaowei.aiproject.utiles`包下的APPID相关信息 15 | 16 | 17 | -------------------------------------------------------------------------------- /pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 4.0.0 5 | 6 | org.springframework.boot 7 | spring-boot-starter-parent 8 | 2.6.2 9 | 10 | 11 | com.xiaowei 12 | ai-project 13 | 0.0.1-SNAPSHOT 14 | ai-project 15 | Demo project for Spring Boot 16 | 17 | 1.8 18 | 19 | 20 | 21 | org.springframework.boot 22 | spring-boot-starter 23 | 24 | 25 | org.springframework.boot 26 | spring-boot-starter-web 27 | 28 | 29 | org.springframework.boot 30 | spring-boot-starter-test 31 | test 32 | 33 | 34 | org.springframework.boot 35 | spring-boot-starter-thymeleaf 36 | 37 | 38 | com.baidu.aip 39 | java-sdk 40 | 4.15.8 41 | 42 | 43 | 44 | 45 | 46 | 47 | org.springframework.boot 48 | spring-boot-maven-plugin 49 | 50 | 51 | 52 | 53 | 54 | -------------------------------------------------------------------------------- /src/main/java/com/xiaowei/aiproject/AiProjectApplication.java: -------------------------------------------------------------------------------- 1 | package com.xiaowei.aiproject; 2 | 3 | import org.springframework.boot.SpringApplication; 4 | import org.springframework.boot.autoconfigure.SpringBootApplication; 5 | 6 | @SpringBootApplication 7 | public class AiProjectApplication { 8 | 9 | public static void main(String[] args) { 10 | SpringApplication.run(AiProjectApplication.class, args); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/com/xiaowei/aiproject/controller/AiController.java: -------------------------------------------------------------------------------- 1 | package com.xiaowei.aiproject.controller; 2 | 3 | import com.xiaowei.aiproject.utiles.Aiutils; 4 | import org.springframework.web.bind.annotation.*; 5 | import org.springframework.web.multipart.MultipartFile; 6 | 7 | import java.io.IOException; 8 | 9 | @RestController 10 | @CrossOrigin 11 | public class AiController { 12 | 13 | @RequestMapping(value = "/picToWord", method = RequestMethod.POST) 14 | @ResponseBody 15 | public String picToWord(@RequestParam("file") MultipartFile file) throws IOException { 16 | System.out.println(file.getOriginalFilename()); 17 | String s = Aiutils.picToWord(file.getBytes()); 18 | return s; 19 | } 20 | @RequestMapping(value = "/imgRecognition", method = RequestMethod.POST) 21 | @ResponseBody 22 | public String imgRecognition(@RequestParam("file") MultipartFile file) throws IOException { 23 | System.out.println(file.getOriginalFilename()); 24 | String s = Aiutils.imgRecognition(file.getBytes()); 25 | return s; 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /src/main/java/com/xiaowei/aiproject/controller/HelloController.java: -------------------------------------------------------------------------------- 1 | package com.xiaowei.aiproject.controller; 2 | 3 | import org.springframework.web.bind.annotation.*; 4 | 5 | @RestController 6 | @CrossOrigin 7 | public class HelloController { 8 | 9 | 10 | @RequestMapping(value = "/hello", method = RequestMethod.GET) 11 | @ResponseBody 12 | public String helloWorld(){ 13 | return "Hello World!"; 14 | } 15 | 16 | 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/com/xiaowei/aiproject/service/AiService.java: -------------------------------------------------------------------------------- 1 | package com.xiaowei.aiproject.service; 2 | 3 | import org.springframework.web.multipart.MultipartFile; 4 | 5 | public interface AiService { 6 | String picToWord(MultipartFile file); 7 | } 8 | -------------------------------------------------------------------------------- /src/main/java/com/xiaowei/aiproject/service/impl/AiServiceImpl.java: -------------------------------------------------------------------------------- 1 | package com.xiaowei.aiproject.service.impl; 2 | 3 | import com.xiaowei.aiproject.service.AiService; 4 | import org.springframework.web.multipart.MultipartFile; 5 | 6 | public class AiServiceImpl implements AiService { 7 | 8 | @Override 9 | public String picToWord(MultipartFile file) { 10 | return null; 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/com/xiaowei/aiproject/utiles/AdvancedGeneral.java: -------------------------------------------------------------------------------- 1 | package com.xiaowei.aiproject.utiles; 2 | 3 | import com.baidu.aip.imageclassify.AipImageClassify; 4 | import org.json.JSONObject; 5 | 6 | import java.util.HashMap; 7 | 8 | public class AdvancedGeneral { 9 | //设置APPID/AK/SK 10 | public static final String APP_ID = "25485009"; 11 | public static final String API_KEY = "btbi28Qg1sh7NUXxkExeoki2"; 12 | public static final String SECRET_KEY = "ZS5CKPVzLwvj8fNVQHOKwpC3x4PvhaOL"; 13 | 14 | public static void main(String[] args) { 15 | // 初始化一个AipImageClassify 16 | AipImageClassify client = new AipImageClassify(APP_ID, API_KEY, SECRET_KEY); 17 | 18 | // 可选:设置网络连接参数 19 | client.setConnectionTimeoutInMillis(2000); 20 | client.setSocketTimeoutInMillis(60000); 21 | 22 | // 可选:设置代理服务器地址, http和socket二选一,或者均不设置 23 | // client.setHttpProxy("proxy_host", proxy_port); // 设置http代理 24 | // client.setSocketProxy("proxy_host", proxy_port); // 设置socket代理 25 | 26 | // 调用接口 27 | String path = "/Users/xxw/Desktop/ai-test/dog.png"; 28 | // String path = "/Users/xxw/Desktop/ai-test/cat.png"; 29 | JSONObject res = client.objectDetect(path, new HashMap()); 30 | System.out.println(res.toString(2)); 31 | 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /src/main/java/com/xiaowei/aiproject/utiles/Aiutils.java: -------------------------------------------------------------------------------- 1 | package com.xiaowei.aiproject.utiles; 2 | 3 | import com.baidu.aip.imageclassify.AipImageClassify; 4 | import com.baidu.aip.ocr.AipOcr; 5 | import org.json.JSONArray; 6 | import org.json.JSONObject; 7 | 8 | import java.util.ArrayList; 9 | import java.util.HashMap; 10 | import java.util.List; 11 | 12 | public class Aiutils { 13 | //设置APPID/AK/SK 14 | public static final String APP_ID = "你的APPID"; 15 | public static final String API_KEY = "你的API_KEY"; 16 | public static final String SECRET_KEY = "你的SECRET_KEY"; 17 | 18 | //设置APPID/AK/SK 19 | public static final String APP_ID_IMG = "你的APPID"; 20 | public static final String API_KEY_IMG = "你的API_KEY"; 21 | public static final String SECRET_KEY_IMG = "你的SECRET_KEY"; 22 | 23 | public static String picToWord(byte[] file){ 24 | // 初始化一个AipOcr 25 | AipOcr client = new AipOcr(APP_ID, API_KEY, SECRET_KEY); 26 | 27 | // 可选:设置网络连接参数 28 | client.setConnectionTimeoutInMillis(2000); 29 | client.setSocketTimeoutInMillis(60000); 30 | // 调用接口 31 | JSONObject res = client.basicGeneral(file, new HashMap()); 32 | String wordsData = ""; 33 | JSONArray words_result = res.getJSONArray("words_result"); 34 | for (int i = 0; i < words_result.length(); i++) { 35 | Object data = words_result.getJSONObject(i).get("words"); 36 | String word = (String)data; 37 | wordsData += word + " "; 38 | } 39 | return wordsData; 40 | } 41 | public static String imgRecognition(byte[] file) { 42 | // 初始化一个AipImageClassify 43 | AipImageClassify client = new AipImageClassify(APP_ID_IMG, API_KEY_IMG, SECRET_KEY_IMG); 44 | 45 | // 调用接口 46 | JSONObject res = client.advancedGeneral(file, new HashMap()); 47 | return res.toString(2); 48 | } 49 | public static void main(String[] args) { 50 | 51 | 52 | // 可选:设置代理服务器地址, http和socket二选一,或者均不设置 53 | // client.setHttpProxy("proxy_host", proxy_port); // 设置http代理 54 | // client.setSocketProxy("proxy_host", proxy_port); // 设置socket代理 55 | 56 | // 可选:设置log4j日志输出格式,若不设置,则使用默认配置 57 | // 也可以直接通过jvm启动参数设置此环境变量 58 | // System.setProperty("aip.log4j.conf", "path/to/your/log4j.properties"); 59 | // 可选:设置网络连接参数 60 | AipOcr client = new AipOcr(APP_ID, API_KEY, SECRET_KEY); 61 | client.setConnectionTimeoutInMillis(2000); 62 | client.setSocketTimeoutInMillis(60000); 63 | // 调用接口 64 | String path = "/Users/xxw/Downloads/QQ20211205-223308@2x.png"; 65 | JSONObject res = client.basicGeneral(path, new HashMap()); 66 | JSONArray words_result = res.getJSONArray("words_result"); 67 | String wordsData = ""; 68 | for (int i = 0; i < words_result.length(); i++) { 69 | Object data = words_result.getJSONObject(i).get("words"); 70 | String word = (String)data; 71 | wordsData += word + " "; 72 | } 73 | System.out.println(wordsData); 74 | } 75 | } 76 | -------------------------------------------------------------------------------- /src/main/java/com/xiaowei/aiproject/utiles/NLPDemo.java: -------------------------------------------------------------------------------- 1 | package com.xiaowei.aiproject.utiles; 2 | 3 | import com.baidu.aip.nlp.AipNlp; 4 | import com.baidu.aip.nlp.ESimnetType; 5 | import org.json.JSONObject; 6 | 7 | import java.util.HashMap; 8 | 9 | public class NLPDemo { 10 | 11 | //设置APPID/AK/SK 12 | public static final String APP_ID = "16396119"; 13 | public static final String API_KEY = "kEkYG8blkggDcAv7MIqzpEbs"; 14 | public static final String SECRET_KEY = "KVbD6nBlBPp4GFMdSS8LurRuLVGr3KgV"; 15 | 16 | public static void main(String[] args) { 17 | // 初始化一个AipNlp 18 | AipNlp client = new AipNlp(APP_ID, API_KEY, SECRET_KEY); 19 | 20 | // 可选:设置网络连接参数 21 | client.setConnectionTimeoutInMillis(2000); 22 | client.setSocketTimeoutInMillis(60000); 23 | 24 | // 可选:设置代理服务器地址, http和socket二选一,或者均不设置 25 | // client.setHttpProxy("proxy_host", proxy_port); // 设置http代理 26 | // client.setSocketProxy("proxy_host", proxy_port); // 设置socket代理 27 | 28 | // 调用接口 29 | /** 30 | * 1、词法分析 31 | * 词法分析接口向用户提供分词、词性标注、专名识别三大功能;能够识别出文本串中的基本词汇(分词),对这些词汇进行重组、 32 | * 标注组合后词汇的词性,并进一步识别出命名实体。 33 | */ 34 | System.out.println("-------------词法分析--------------"); 35 | String text = "百度是一家高科技公司"; 36 | JSONObject res = client.lexer(text, null); 37 | System.out.println(res.toString(2)); 38 | 39 | /** 40 | * 2、词向量 41 | * 词向量表示接口提供中文词向量的查询功能。 42 | */ 43 | System.out.println("-------------词向量--------------"); 44 | String word = "张飞"; 45 | // 传入可选参数调用接口 46 | HashMap options2 = new HashMap(); 47 | 48 | // 词向量表示 49 | JSONObject res2 = client.wordEmbedding(word, options2); 50 | System.out.println(res2.toString(2)); 51 | 52 | /** 53 | * 3、DNN语言模型 54 | * 中文DNN语言模型接口用于输出切词结果并给出每个词在句子中的概率值,判断一句话是否符合语言表达习惯。 55 | */ 56 | System.out.println("-------------DNN语言模型-------------"); 57 | String text2 = "床前明月光"; 58 | 59 | // 传入可选参数调用接口 60 | HashMap options3 = new HashMap(); 61 | 62 | // DNN语言模型 63 | JSONObject res3 = client.dnnlmCn(text2, options3); 64 | System.out.println(res3.toString(2)); 65 | 66 | /** 67 | * 4、词义相似度 68 | * 输入两个词,得到两个词的相似度结果。 69 | */ 70 | System.out.println("-------------词义相似度-------------"); 71 | String word1 = "北京"; 72 | String word2 = "上海"; 73 | 74 | // 传入可选参数调用接口 75 | HashMap options4 = new HashMap(); 76 | 77 | 78 | // 词义相似度 79 | JSONObject res4 = client.wordSimEmbedding(word1, word2, options4); 80 | System.out.println(res4.toString(2)); 81 | 82 | /** 83 | * 5、短文本相似度 84 | * 短文本相似度接口用来判断两个文本的相似度得分。 85 | */ 86 | System.out.println("-------------短文本相似度-------------"); 87 | String text5_1 = "考研"; 88 | String text5_2 = "高考"; 89 | 90 | // 传入可选参数调用接口 91 | HashMap options5 = new HashMap(); 92 | options5.put("model", "CNN"); 93 | 94 | // 短文本相似度 95 | JSONObject res5 = client.simnet(text5_1, text5_2, options5); 96 | System.out.println(res5.toString(2)); 97 | 98 | /** 99 | * 6、评论观点抽取 100 | * 评论观点抽取接口用来提取一条评论句子的关注点和评论观点,并输出评论观点标签及评论观点极性。 101 | */ 102 | System.out.println("-------------评论观点抽取-------------"); 103 | String text6 = "三星电脑电池不给力"; 104 | HashMap options6 = new HashMap(); 105 | 106 | // 获取美食评论情感属性 107 | JSONObject response6 = client.commentTag("这家餐馆味道不错", ESimnetType.FOOD, options6); 108 | System.out.println(response6.toString()); 109 | 110 | // 获取酒店评论情感属性 111 | response6 = client.commentTag("喜来登酒店不错", ESimnetType.HOTEL, options6); 112 | System.out.println(response6.toString()); 113 | 114 | /** 115 | * 7、情感倾向分析 116 | * 对包含主观观点信息的文本进行情感极性类别(积极、消极、中性)的判断,并给出相应的置信度。 117 | */ 118 | System.out.println("-------------情感倾向分析-------------"); 119 | String text7 = "苹果是一家伟大的公司"; 120 | 121 | // 传入可选参数调用接口 122 | HashMap options7 = new HashMap(); 123 | 124 | // 情感倾向分析 125 | JSONObject res7 = client.sentimentClassify(text, options7); 126 | System.out.println(res7.toString(2)); 127 | 128 | /** 129 | * 8、文章标签 130 | * 文章标签服务能够针对网络各类媒体文章进行快速的内容理解,根据输入含有标题的文章,输出多个内容标签以及对应的置信度, 131 | * 用于个性化推荐、相似文章聚合、文本内容分析等场景。 132 | */ 133 | System.out.println("-------------文章标签-------------"); 134 | String title = "iphone手机出现“白苹果”原因及解决办法,用苹果手机的可以看下"; 135 | String content = "如果下面的方法还是没有解决你的问题建议来我们门店看下成都市锦江区红星路三段99号银石广场24层01室。"; 136 | 137 | // 传入可选参数调用接口 138 | HashMap options8 = new HashMap(); 139 | 140 | // 文章标签 141 | JSONObject res8 = client.keyword(title, content, options8); 142 | System.out.println(res8.toString(2)); 143 | 144 | /** 145 | * 9、文章分类 146 | * 对文章按照内容类型进行自动分类,首批支持娱乐、体育、科技等26个主流内容类型,为文章聚类、文本内容分析等应用提供基础技术支持。 147 | */ 148 | System.out.println("-------------文章分类-------------"); 149 | String title9 = "欧洲冠军杯足球赛"; 150 | String content9 = "欧洲冠军联赛是欧洲足球协会联盟主办的年度足球比赛,代表欧洲俱乐部足球最高荣誉和水平,被认为是全世界最高素质、最具影响力以及最高水平的俱乐部赛事,亦是世界上奖金最高的足球赛事和体育赛事之一。"; 151 | 152 | // 传入可选参数调用接口 153 | HashMap options9 = new HashMap(); 154 | 155 | // 文章分类 156 | JSONObject res9 = client.topic(title9, content9, options9); 157 | System.out.println(res9.toString(2)); 158 | 159 | /** 160 | * 10、文本纠错 161 | * 识别输入文本中有错误的片段,提示错误并给出正确的文本结果。支持短文本、长文本、语音等内容的错误识别,纠错是搜索引擎、语音识别、内容审查等功能更好运行的基础模块之一。 162 | */ 163 | System.out.println("-------------文本纠错-------------"); 164 | String text10 = "百度是一家人工只能公司"; 165 | 166 | // 传入可选参数调用接口 167 | HashMap options10 = new HashMap(); 168 | 169 | // 文本纠错 170 | JSONObject res10 = client.ecnet(text10, options10); 171 | System.out.println(res10.toString(2)); 172 | 173 | /** 174 | * 11、对话情绪识别接口 175 | * 针对用户日常沟通文本背后所蕴含情绪的一种直观检测,可自动识别出当前会话者所表现出的情绪类别及其置信度,可以帮助企业更全面地把握产品服务质量、监控客户服务质量 176 | */ 177 | System.out.println("-------------对话情绪识别接口-------------"); 178 | String text11 = "本来今天高高兴兴"; 179 | 180 | // 传入可选参数调用接口 181 | HashMap options11 = new HashMap(); 182 | options11.put("scene", "talk"); 183 | 184 | // 对话情绪识别接口 185 | JSONObject res11 = client.emotion(text11, options11); 186 | System.out.println(res11.toString(2)); 187 | 188 | /** 189 | * 12、新闻摘要接口 190 | * 自动抽取新闻文本中的关键信息,进而生成指定长度的新闻摘要 191 | */ 192 | System.out.println("-------------对话情绪识别接口-------------"); 193 | String content12 = "麻省理工学院的研究团队为无人机在仓库中使用RFID技术进行库存查找等工作,创造了一种..."; 194 | int maxSummaryLen = 300; 195 | 196 | // 传入可选参数调用接口 197 | HashMap options12 = new HashMap(); 198 | options12.put("title", "标题"); 199 | 200 | // 新闻摘要接口 201 | JSONObject res12 = client.newsSummary(content12, maxSummaryLen, options12); 202 | System.out.println(res12.toString(2)); 203 | 204 | /** 205 | * 13、地址识别接口 206 | * 针对快递、电商行业中客户在线提交的大量非结构化地址单据,该接口可以帮助精准提取快递填单文本中的姓名、电话、地址信息,通过自然语言 207 | * 处理辅助地址识别做自动补充和纠正,生成标准规范的结构化信息,大幅提升企业处理单据的效率。 208 | */ 209 | System.out.println("-------------地址识别接口-------------"); 210 | String text13 = "上海市浦东新区纳贤路701号百度上海研发中心 F4A000 张三"; 211 | 212 | // 传入可选参数调用接口 213 | HashMap options13 = new HashMap(); 214 | 215 | // 地址识别接口 216 | JSONObject res13 = client.address(text13, options13); 217 | System.out.println(res.toString(2)); 218 | 219 | } 220 | } 221 | -------------------------------------------------------------------------------- /src/main/java/com/xiaowei/aiproject/utiles/TestUtils.java: -------------------------------------------------------------------------------- 1 | package com.xiaowei.aiproject.utiles; 2 | 3 | import com.baidu.aip.speech.AipSpeech; 4 | import org.json.JSONObject; 5 | 6 | public class TestUtils { 7 | 8 | //设置APPID/AK/SK 9 | public static final String APP_ID = "你的APPID"; 10 | public static final String API_KEY = "你的API_KEY"; 11 | public static final String SECRET_KEY = "你的SECRET_KEY"; 12 | 13 | public static void main(String[] args) { 14 | // 初始化一个AipSpeech 15 | AipSpeech client = new AipSpeech(APP_ID, API_KEY, SECRET_KEY); 16 | 17 | // 可选:设置网络连接参数 18 | client.setConnectionTimeoutInMillis(2000); 19 | client.setSocketTimeoutInMillis(60000); 20 | 21 | // 可选:设置代理服务器地址, http和socket二选一,或者均不设置 22 | // client.setHttpProxy("proxy_host", proxy_port); // 设置http代理 23 | // client.setSocketProxy("proxy_host", proxy_port); // 设置socket代理 24 | 25 | // 可选:设置log4j日志输出格式,若不设置,则使用默认配置 26 | // 也可以直接通过jvm启动参数设置此环境变量 27 | // System.setProperty("aip.log4j.conf", "path/to/your/log4j.properties"); 28 | 29 | // 调用接口 30 | JSONObject res = client.asr("/Users/xxw/Desktop/ai-test/newyear.wav", "wav", 16000, null); 31 | System.out.println(res.toString(2)); 32 | 33 | } 34 | 35 | } 36 | -------------------------------------------------------------------------------- /src/main/resources/application.properties: -------------------------------------------------------------------------------- 1 | server.port=8080 2 | -------------------------------------------------------------------------------- /src/main/resources/templates/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | AI 6 | 7 | 8 | 9 | 10 | 11 | 基于百度智能云API的图片文字识别小demo 12 | 13 | 14 | 22 | 点击上传 23 | 24 | 只能上传jpg/png文件,且不超过500kb 25 | 32 | 33 | 34 | 42 | 点击上传 43 | 44 | 只能上传jpg/png文件,且不超过500kb 45 | 46 | 47 | 类别:{{item.root}} 关键字:{{item.keyword}} 概率:{{item.score*100}}% 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 94 | -------------------------------------------------------------------------------- /src/test/java/com/xiaowei/aiproject/AiProjectApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.xiaowei.aiproject; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | class AiProjectApplicationTests { 8 | 9 | @Test 10 | void contextLoads() { 11 | } 12 | 13 | } 14 | --------------------------------------------------------------------------------
类别:{{item.root}} 关键字:{{item.keyword}} 概率:{{item.score*100}}%