瀏覽代碼

1、提取特征只對症狀有效

louhr 5 年之前
父節點
當前提交
200e80a6b5

+ 8 - 5
bigdata-web/src/main/java/org/diagbot/bigdata/work/ResultDataProxy.java

@@ -33,9 +33,10 @@ public class ResultDataProxy {
 //        Map<String, String> resultMappingVitalMap = ApplicationCacheUtil.getDoc_result_mapping_vital_map();
 //        Map<String, String> resultMappingVitalMap = ApplicationCacheUtil.getDoc_result_mapping_vital_map();
         Map<String, String> resultMappingDiagMap = ApplicationCacheUtil.getDoc_result_mapping_diag_map();
         Map<String, String> resultMappingDiagMap = ApplicationCacheUtil.getDoc_result_mapping_diag_map();
         Map<String, Map<String, ResultMappingFilter>> resultMappingFilterMap = ApplicationCacheUtil.getDoc_result_mapping_filter_map();
         Map<String, Map<String, ResultMappingFilter>> resultMappingFilterMap = ApplicationCacheUtil.getDoc_result_mapping_filter_map();
+        Map<String, Map<String, String>> synonymMap = ApplicationCacheUtil.getStandard_info_synonym_map();
         for (Map.Entry<String, Float> entry : featuresOrderList) {
         for (Map.Entry<String, Float> entry : featuresOrderList) {
             //过滤特征数据, 过滤低于阈值的数据
             //过滤特征数据, 过滤低于阈值的数据
-            if (!resultFilter(request, searchData, featureType, entry.getKey(), entry.getValue())) {
+            if (!resultFilter(request, searchData, featureType, entry.getKey(), entry.getValue(), synonymMap)) {
                 continue;
                 continue;
             }
             }
             //性别年龄过滤
             //性别年龄过滤
@@ -85,11 +86,16 @@ public class ResultDataProxy {
         return featureList;
         return featureList;
     }
     }
 
 
-    public boolean resultFilter(HttpServletRequest request, BigDataSearchData searchData, String featureType, String result, float threshold) {
+    public boolean resultFilter(HttpServletRequest request, BigDataSearchData searchData, String featureType, String result, float threshold, Map<String, Map<String, String>> synonymMap) {
         //过滤录入条件中已有的特征信息
         //过滤录入条件中已有的特征信息
         if (searchData.getGraphInputs().get(result) != null && FeatureType.parse(featureType) != FeatureType.DIAG) {
         if (searchData.getGraphInputs().get(result) != null && FeatureType.parse(featureType) != FeatureType.DIAG) {
             return false;
             return false;
         }
         }
+        if (FeatureType.parse(featureType) == FeatureType.SYMPTOM) {
+            if (searchData.getGraphInputs().get(synonymMap.get(Constants.word_property_symptom).get(result))!= null) {
+                return false;
+            }
+        }
         //
         //
 //        if (searchData.getFilters().get(result) != null) {
 //        if (searchData.getFilters().get(result) != null) {
 //            return false;
 //            return false;
@@ -133,9 +139,6 @@ public class ResultDataProxy {
         for (Map.Entry<String, Float> entry : map.entrySet()) {
         for (Map.Entry<String, Float> entry : map.entrySet()) {
             synonym = convertMap.get(entry.getKey());
             synonym = convertMap.get(entry.getKey());
             if (synonym != null) {
             if (synonym != null) {
-                if (isFilter && synonym.equals("阴道出血")) {
-                    System.out.println(entry.getKey() + "-->" + entry.getValue());
-                }
                 if (result.get(synonym) == null) {
                 if (result.get(synonym) == null) {
                     result.put(synonym, entry.getValue());
                     result.put(synonym, entry.getValue());
                 } else {
                 } else {

+ 1 - 1
nlp/src/main/java/org/diagbot/nlp/feature/FeatureAnalyze.java

@@ -90,7 +90,7 @@ public class FeatureAnalyze {
                         l.setConcept(l.getConcept() + "," + NlpCache.standard_info_synonym_map.get(props[i]).get(l.getText()));
                         l.setConcept(l.getConcept() + "," + NlpCache.standard_info_synonym_map.get(props[i]).get(l.getText()));
                     }
                     }
                     //如果是症状或体征,进行标准术语转换
                     //如果是症状或体征,进行标准术语转换
-                    if (props[i].equals(Constants.feature_type_symptom) || props[i].equals(Constants.word_property_vital_result)) {
+                    if (props[i].equals(Constants.feature_type_symptom)) {
                         l.setText(NlpCache.standard_info_synonym_map.get(props[i]).get(l.getText()));
                         l.setText(NlpCache.standard_info_synonym_map.get(props[i]).get(l.getText()));
                     }
                     }
                 }
                 }