Просмотр исходного кода

1- 调整返回数据类型。

bijl 5 лет назад
Родитель
Сommit
58a0985393

+ 6 - 14
algorithm/src/main/java/org/algorithm/core/RelationTreeUtils.java

@@ -1,7 +1,6 @@
 package org.algorithm.core;
 
 import org.algorithm.core.cnn.entity.Lemma;
-import org.algorithm.core.cnn.entity.RelationTreeInfo;
 import org.algorithm.core.cnn.entity.Triad;
 
 import java.util.*;
@@ -77,10 +76,9 @@ public class RelationTreeUtils {
     /**
      * 获取关系树的分枝
      *
-     * @param projectName 项目名称,如:核磁共振
      * @param triads      有关系,并且设置了父子节点关系的三元组
      */
-    public static RelationTreeInfo getRelationTreeBranches(String projectName, List<Triad> triads) {
+    public static List<List<String>> getRelationTreeBranches(List<Triad> triads) {
         List<Lemma> hasNoChildrenLemmas = new ArrayList<>();
         for (Triad triad : triads) {
             if (!triad.getL_1().isHasChildren())
@@ -100,25 +98,20 @@ public class RelationTreeUtils {
             branches.addAll(permute(aBranch));  // 排列
         }
 
-        RelationTreeInfo info = new RelationTreeInfo();
-        info.setBranches(branches);
-        info.setProjectName(projectName);
 
-        return info;
+        return branches;
     }
 
     /**
      * 从三元组列表到关系树分枝
      *
-     * @param projectName
      * @param triads
      * @return
      */
-    public static RelationTreeInfo triadsToRelationTreeBranches(String projectName, List<Triad> triads) {
+    public static List<List<String>> triadsToRelationTreeBranches(List<Triad> triads) {
         sameTextLemmaMerge(triads);
         buildRelationTree(triads);
-        RelationTreeInfo info = getRelationTreeBranches("胃造影", triads);
-        return info;
+        return getRelationTreeBranches(triads);
     }
 
     /**
@@ -205,10 +198,9 @@ public class RelationTreeUtils {
 
         sameTextLemmaMerge(triads);
         buildRelationTree(triads);
-        RelationTreeInfo info = getRelationTreeBranches("胃造影", triads);
+        List<List<String>> info = getRelationTreeBranches(triads);
 
-        System.out.println(info.getProjectName());
-        System.out.println(info.getBranches());
+        System.out.println(info);
     }
 
 }

+ 3 - 4
algorithm/src/main/java/org/algorithm/core/cnn/AlgorithmCNNExecutor.java

@@ -1,13 +1,12 @@
 package org.algorithm.core.cnn;
 
-import org.algorithm.core.cnn.entity.Lemma;
 import org.algorithm.core.cnn.entity.Triad;
 
 import java.util.List;
 
 /**
  * @ClassName org.algorithm.core.cnn.model.AlgorithmCNNExecutor
- * @Description TODO
+ * @Description
  * @Author fyeman
  * @Date 2019/1/17/017 19:18
  * @Version 1.0
@@ -16,8 +15,8 @@ public abstract class AlgorithmCNNExecutor {
     /**
      *
      * @param content 输入句子
-     * @param triads 实体列表
+     * @param triads 实体列表(三元组列表)
      * @return
      */
-    public abstract List<Triad> execute(String content, List<Triad> triads);
+    public abstract List<List<String>> execute(String content, List<Triad> triads);
 }

+ 0 - 30
algorithm/src/main/java/org/algorithm/core/cnn/entity/RelationTreeInfo.java

@@ -1,30 +0,0 @@
-package org.algorithm.core.cnn.entity;
-
-import java.util.List;
-
-/**
- * @Author: bijl
- * @Date: 2019/9/9 16:52
- * @Description:
- */
-public class RelationTreeInfo {
-    private String projectName = null;
-    private List<List<String>> branches = null;
-
-    public String getProjectName() {
-        return projectName;
-    }
-
-    public void setProjectName(String projectName) {
-        this.projectName = projectName;
-    }
-
-    public List<List<String>> getBranches() {
-        return branches;
-    }
-
-    public void setBranches(List<List<String>> branches) {
-        this.branches = branches;
-    }
-
-}

+ 5 - 8
algorithm/src/main/java/org/algorithm/core/cnn/model/RelationExtractionEnsembleModel.java

@@ -4,7 +4,6 @@ import org.algorithm.core.RelationTreeUtils;
 import org.algorithm.core.RuleCheckMachine;
 import org.algorithm.core.cnn.AlgorithmCNNExecutor;
 import org.algorithm.core.cnn.dataset.RelationExtractionDataSet;
-import org.algorithm.core.cnn.entity.RelationTreeInfo;
 import org.algorithm.core.cnn.entity.Triad;
 import org.diagbot.pub.utils.PropertiesUtil;
 import org.tensorflow.SavedModelBundle;
@@ -111,11 +110,11 @@ public class RelationExtractionEnsembleModel extends AlgorithmCNNExecutor {
     }
 
     @Override
-    public List<Triad> execute(String content, List<Triad> triads) {
+    public List<List<String>> execute(String content, List<Triad> triads) {
         // 预处理
         this.preProcess(content, triads);
         if (content.length() > this.dataSet.MAX_LEN || triads.size() < 1)  // 句子长度不超过MAX_LEN,有三元组
-            return new ArrayList<>();
+            return null;
 
         int[][] inputValues = this.convertData(content, triads);  // shape = [3, batchSize * this.subModels.length]
         int batchSize = triads.size();
@@ -178,18 +177,16 @@ public class RelationExtractionEnsembleModel extends AlgorithmCNNExecutor {
         for (Triad triad : deleteTriads)
             triads.remove(triad);
 
-        return triads;
+        return this.triadsToRelationTreeBranches(triads);
     }
 
     /**
      * 从三元组列表到关系树分枝
-     *  TODO:真实与外部对接还没做,包括无实体对的情况
-     * @param projectName
      * @param triads
      * @return
      */
-    public RelationTreeInfo triadsToRelationTreeBranches(String projectName, List<Triad> triads) {
-        return RelationTreeUtils.triadsToRelationTreeBranches(projectName, triads);
+    public List<List<String>> triadsToRelationTreeBranches(List<Triad> triads) {
+        return RelationTreeUtils.triadsToRelationTreeBranches(triads);
     }