test QuestionController

master
ziyonghong 5 years ago
parent 7e09d63e63
commit 9711a7aa12

@ -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;
}
}
}

@ -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;
}
}

@ -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);
}

@ -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.图数据库中查询结果返回到界面接收展示。
Loading…
Cancel
Save