diff --git a/cmkg/src/main/java/com/cmkg/cmkg/Controller/QuestionController.java b/cmkg/src/main/java/com/cmkg/cmkg/Controller/QuestionController.java index bedad44..e6a04f4 100644 --- a/cmkg/src/main/java/com/cmkg/cmkg/Controller/QuestionController.java +++ b/cmkg/src/main/java/com/cmkg/cmkg/Controller/QuestionController.java @@ -1,17 +1,43 @@ package com.cmkg.cmkg.Controller; +import com.cmkg.cmkg.database.ReturnData; import com.cmkg.cmkg.repository.QuestionRespository; -import org.springframework.data.repository.query.Param; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; -import java.io.InputStream; - @RestController @RequestMapping("/rest/cmkg/question") public class QuestionController { + //做个小测试 + @Autowired + public QuestionRespository questionRespository; + + ReturnData rd=new ReturnData(); + @RequestMapping("/hello") + public ReturnData JudgeAtrribute(@RequestParam("name") String name){ + //去每个表里做查找,找到了的话做查询 + System.out.println(questionRespository); + System.out.println(name); + Long i = questionRespository.getDiseaseId(name); + System.out.println(i); + if(questionRespository.getDiseaseId(name)!=0){//说明输入的事病症 + String symptom=questionRespository.getDiseaseSymptom(name); + String[] tomedicine=questionRespository.getDiseaseToMedicine(name); + rd.setDiseaseSymptom(name); + rd.setTomedicie(tomedicine); + return rd; + }else{//说明输入的是养生方法或药品名称 + String operation=questionRespository.getMedicineOperation(name); + String syndromes=questionRespository.getMedicineSyndromes(name); + rd.setOperation(operation); + rd.setSyndromes(syndromes); + return rd; + } + } } diff --git a/cmkg/src/main/java/com/cmkg/cmkg/server/ReturnData.java b/cmkg/src/main/java/com/cmkg/cmkg/database/ReturnData.java similarity index 100% rename from cmkg/src/main/java/com/cmkg/cmkg/server/ReturnData.java rename to cmkg/src/main/java/com/cmkg/cmkg/database/ReturnData.java diff --git a/cmkg/src/main/java/com/cmkg/cmkg/database/returnDisease.java b/cmkg/src/main/java/com/cmkg/cmkg/database/returnDisease.java deleted file mode 100644 index 3b77c73..0000000 --- a/cmkg/src/main/java/com/cmkg/cmkg/database/returnDisease.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.cmkg.cmkg.database; - -public class returnDisease { - - private String symptom; - private String tomedicie; - - public void setSymptom(String symptom){ - this.symptom=symptom; - } - - public void setTomedicie(String tomedicie){ - this.tomedicie=tomedicie; - } -} diff --git a/cmkg/src/main/java/com/cmkg/cmkg/process/ModelProcess.java b/cmkg/src/main/java/com/cmkg/cmkg/process/ModelProcess.java index 82fb0c2..42bc4f2 100644 --- a/cmkg/src/main/java/com/cmkg/cmkg/process/ModelProcess.java +++ b/cmkg/src/main/java/com/cmkg/cmkg/process/ModelProcess.java @@ -390,7 +390,7 @@ public class ModelProcess { System.out.println("the model index is " + index); // Vector vRes = nbModel.predictProbabilities(v); // System.out.println("ģࡾ0ʣ"+vRes.toArray()[0]); -// System.out.println("ģࡾ13ʣ"+vRes.toArray()[13]); +// System.out.println("ģࡾ2ʣ"+vRes.toArray()[2]); return questionsPattern.get(index); } diff --git a/准备README.md b/准备README.md new file mode 100644 index 0000000..ba10df1 --- /dev/null +++ b/准备README.md @@ -0,0 +1,22 @@ +### 准备 + +1、爬取病和要相关的数据集 + +2、数据解析处理(存入MySQL-->导出为csv文件-->导入neo4j),建立病与药之间双向映射关系以及病和药各自的一些属性 + +3、spark环境搭建 + +### 步骤 + +1、拿到原始句子(用户从搜索框输入的问题) + +2、对原句子进行抽象,将病名用nr替换并抽象句子(HanLP自定义分词,<相应病,自定义词性>以键值对形式存储),比如糖尿病要吃什么药 替换成 nr 要吃什么药 + +3、抽象句子匹配问题模板(一堆问题数据集合由Spark进行训练并计算,通过贝叶斯分类器将选择匹配到概率最大的问题模板),比如 nr 治疗方法 + +4、问题模板还原成最终的问题(从HanLP自定义分分词中具体化nr),比如 nr 治疗方法,替换其中的nr=糖尿病,最后效果就是糖尿病 治疗方法 + +5、拿到问题后,去图形数据库neo4j中查找问题的答案,比如 match(n:Disease) where n.name='糖尿病' return n.治疗方法 + +6.图数据库中查询结果返回到界面接收展示。 +