瀏覽代碼

化验辅检过滤干扰信息

louhr 6 年之前
父節點
當前提交
a2225369c8

+ 8 - 6
bigdata-web/src/main/java/org/diagbot/bigdata/work/ParamsDataProxy.java

@@ -388,29 +388,29 @@ public class ParamsDataProxy {
         // 在输入的辅检文本中,只提取辅检信息
         String[] PACS_Feature = {Constants.word_property_PACS,
                 Constants.word_property_PACS_Detail, Constants.word_property_PACS_Result};
-        searchData = removeFeature(featuresList, fa, searchData, PACS_Feature);
+        searchData = removeFeature(searchData.getPacs(), fa, searchData, PACS_Feature,  FeatureType.PACS);
 
         // 在输入的化验文本中,只提取化验信息
         String[] LIS_Feature = {Constants.word_property_LIS,
                 Constants.word_property_LIS_Detail, Constants.word_property_LIS_Result};
-        searchData = removeFeature(featuresList, fa, searchData, LIS_Feature);
+        searchData = removeFeature(searchData.getLis(), fa, searchData, LIS_Feature,  FeatureType.LIS);
 
         return searchData;
     }
 
-    private SearchData removeFeature(List<Map<String, Object>> featureList, FeatureAnalyze fa,
-                                     SearchData searchData, String[] Feature) {
+    private SearchData removeFeature(String text, FeatureAnalyze fa,
+                                     SearchData searchData, String[] properties,  FeatureType featureType) {
         String name = "";
         Boolean related = false;
 
         try {
-            featureList = fa.start(searchData.getPacs(), FeatureType.FEATURE);
+            List<Map<String, Object>> featureList = fa.start(text, featureType);
             if (featureList != null) {
                 for (Map<String, Object> item : featureList) {
                     name = item.get("feature_name").toString();
                     String[] property = item.get("property").toString().split(",");
                     for (String prop : property) {
-                        if (Arrays.asList(Feature).indexOf(prop) >= 0) {
+                        if (Arrays.asList(properties).contains(prop)) {
                             related = true;
                             break;
                         }
@@ -419,6 +419,8 @@ public class ParamsDataProxy {
                     if (!related) {
                         searchData.getInputs().remove(name);
                     }
+
+                    related = false;
                 }
             }
 

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

@@ -18,7 +18,7 @@ public class CaseTokenLIS extends CaseToken {
     public List<Map<String, Object>> analyze(LexemePath<Lexeme> lexemePath) throws Exception {
         //词性
         String property = null;
-        NegativeEnum[] nees = new NegativeEnum[]{NegativeEnum.LIS_NAME, NegativeEnum.LIS_RESULT};
+        NegativeEnum[] nees = new NegativeEnum[]{NegativeEnum.LIS_NAME, NegativeEnum.LIS_RESULT, NegativeEnum.LIS_TYPE};
         List<Map<String, Object>> featuresList = new ArrayList<>();
         for (int index = 0; index < lexemePath.size(); index++) {
             Lexeme lexeme = lexemePath.get(index);