Quellcode durchsuchen

标注实体数据增加标签类型如:运动员。

guanz vor 1 Jahr
Ursprung
Commit
2fb42da90a

+ 25 - 0
pom.xml

@@ -25,6 +25,10 @@
         <mybatisplus.version>3.5.3</mybatisplus.version>
         <mybatisplus.dynamic.version>3.6.1</mybatisplus.dynamic.version>
         <spring-cloud.version>2021.0.7</spring-cloud.version>
+        <mockito-core.version>4.3.1</mockito-core.version>
+        <mockito-inline.version>4.3.1</mockito-inline.version>
+        <junit-jupiter.version>5.8.2</junit-jupiter.version>
+        <junit.version>4.12</junit.version>
     </properties>
     <dependencies>
         <!-- httpClient的依赖 -->
@@ -139,6 +143,27 @@
             <artifactId>pagehelper-spring-boot-starter</artifactId>
             <version>1.4.3</version>
         </dependency>
+        <!-- todo ghj add mock -->
+        <dependency>
+            <groupId>org.mockito</groupId>
+            <artifactId>mockito-core</artifactId>
+            <version>${mockito-core.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.mockito</groupId>
+            <artifactId>mockito-inline</artifactId>
+            <version>${mockito-inline.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.junit.jupiter</groupId>
+            <artifactId>junit-jupiter</artifactId>
+            <version>${junit-jupiter.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <version>${junit.version}</version>
+        </dependency>
     </dependencies>
 
     <dependencyManagement>

Datei-Diff unterdrückt, da er zu groß ist
+ 15 - 10
src/main/java/com/pavis/backend/slim/project/system/controller/AnnotationController.java


+ 6 - 0
src/main/java/com/pavis/backend/slim/project/system/domain/EntityLabelsRelation.java

@@ -63,6 +63,12 @@ public class EntityLabelsRelation extends BaseEntity {
     @ApiModelProperty("标注实体关系类型ID")
     private String relationId;
 
+    /**
+     * 标注实体关系文本内容。
+     */
+    @ApiModelProperty("标注实体关系文本内容")
+    private String nameValue;
+
     /**
      * 标注实体关系文本内容。
      */

+ 6 - 3
src/main/java/com/pavis/backend/slim/project/system/domain/EntityLabelsSpan.java

@@ -10,9 +10,6 @@ import lombok.Data;
 import lombok.Getter;
 import lombok.NoArgsConstructor;
 import lombok.Setter;
-import lombok.experimental.SuperBuilder;
-
-import javax.validation.constraints.NotBlank;
 
 /**
  * @version: java version 1.8
@@ -65,6 +62,12 @@ public class EntityLabelsSpan extends BaseEntity {
     @ApiModelProperty("标注实体类型ID")
     private String entityId;
 
+    /**
+     * 标注实体文本内容。
+     */
+    @ApiModelProperty("标注实体文本内容")
+    private String nameValue;
+
     /**
      * 标注实体文本内容。
      */

+ 4 - 5
src/main/java/com/pavis/backend/slim/project/system/domain/annotation/AnnotationEntity.java

@@ -1,10 +1,7 @@
 package com.pavis.backend.slim.project.system.domain.annotation;
 
-import com.pavis.backend.slim.framework.web.domain.BaseEntity;
-import io.swagger.models.auth.In;
 import lombok.AllArgsConstructor;
 import lombok.Builder;
-import lombok.Data;
 import lombok.Getter;
 import lombok.NoArgsConstructor;
 import lombok.Setter;
@@ -31,10 +28,12 @@ public class AnnotationEntity {
     private String startOffset;
     // 结束标注长度:需要当前长度+1。
     private String endOffset;
-    // 标签实体的类型即id,如:运动员、国家
+    // 标签实体的类型即id,如:51、52
     private String entityId;
-    // 标注实体文本内容
+    // 标签实体的类型即id,如:运动员、国家
     private String name;
+    // 标注实体文本内容。
+    private String nameValue;
     // 用户id。
     private Long userId;
     // 唯一标识ID。

+ 5 - 5
src/main/java/com/pavis/backend/slim/project/system/domain/annotation/AnnotationEntityRelation.java

@@ -1,9 +1,7 @@
 package com.pavis.backend.slim.project.system.domain.annotation;
 
-import com.pavis.backend.slim.framework.web.domain.BaseEntity;
 import lombok.AllArgsConstructor;
 import lombok.Builder;
-import lombok.Data;
 import lombok.Getter;
 import lombok.NoArgsConstructor;
 import lombok.Setter;
@@ -21,7 +19,7 @@ import lombok.Setter;
 @NoArgsConstructor
 public class AnnotationEntityRelation {
     // 唯一标识主键id。
-    private Integer id;
+    private Long id;
     // 图谱ID。
     private String kgId;
     // 文档关联id
@@ -30,10 +28,12 @@ public class AnnotationEntityRelation {
     private String fromId;
     // 结束实体ID。
     private String toId;
-    // 标签实体关系的类型即id,如:是、国籍等
+    // 标签实体关系的类型即id,如:13
     private String relationId;
-    // 标注实体关系文本内容
+    // 标签实体关系的类型即id,如:获得、参加、是、国籍等
     private String name;
+    // 标注实体关系文本内容。
+    private String nameValue;
     // 用户id。
     private Long userId;
     // 唯一标识ID。

+ 9 - 2
src/main/java/com/pavis/backend/slim/project/system/service/impl/EntityLabelsRelationServiceImpl.java

@@ -101,6 +101,7 @@ public class EntityLabelsRelationServiceImpl extends ServiceImpl<EntityLabelsRel
         for (EntityLabelsRelation entityLabelsRelation : entityLabelsRelations) {
             annotationEntityRelation = new AnnotationEntityRelation();
             BeanUtils.copyProperties(entityLabelsRelation,annotationEntityRelation);
+            annotationEntityRelation.setId(Long.valueOf(entityLabelsRelation.getId()));
             // 处理个别字段,fileId是string类型的。
             annotationEntityRelations.add(annotationEntityRelation);
         }
@@ -118,8 +119,14 @@ public class EntityLabelsRelationServiceImpl extends ServiceImpl<EntityLabelsRel
             // 2.1 如果该图谱的未创建实体和关系数据,则调用算法另一个服务,入参为:fileIds列表、kgId。
             // todo 调用算法另一个服务。
             UniversalGgraphToAlg universalGgraphToAlg = UniversalGgraphToAlg.builder().kgId(kgId).fileIds(fileIds).build();
-            String universalGgraphToAlgRes = algKgClient.universalGgraphToAlg(JSON.toJSONString(universalGgraphToAlg));
-            log.info("该图谱无实体、关系数据时,调用通用知识图谱算法接口返回res:{}",universalGgraphToAlgRes);
+            String universalGgraphToAlgRes = "";
+            try {
+                universalGgraphToAlgRes = algKgClient.universalGgraphToAlg(JSON.toJSONString(universalGgraphToAlg));
+                log.info("该图谱无实体、关系数据时,调用通用知识图谱算法接口返回res:{}",universalGgraphToAlgRes);
+            }catch (Exception ex){
+                ex.printStackTrace();
+                log.info("该图谱无实体、关系数据时,调用通用知识图谱算法接口返回异常ex:{}",ex);
+            }
             return new AnnotationToAlg();
         }else {
             // 2.2 如果该图谱的创建了实体和关系数据,则调用算法的生成图谱服务,即入参为:text、实体标注数据列表、实体关系标注数据列表。

+ 1 - 3
src/main/java/com/pavis/backend/slim/project/system/service/impl/EntityLabelsSpanServiceImpl.java

@@ -3,12 +3,9 @@ package com.pavis.backend.slim.project.system.service.impl;
 import com.alibaba.fastjson2.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.pavis.backend.slim.project.system.domain.EntityLabelsRelation;
 import com.pavis.backend.slim.project.system.domain.EntityLabelsSpan;
 import com.pavis.backend.slim.project.system.domain.annotation.AnnotationEntity;
-import com.pavis.backend.slim.project.system.mapper.EntityLabelsRelationMapper;
 import com.pavis.backend.slim.project.system.mapper.EntityLabelsSpanMapper;
-import com.pavis.backend.slim.project.system.service.EntityLablesRelationService;
 import com.pavis.backend.slim.project.system.service.EntityLablesSpanService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.BeanUtils;
@@ -50,6 +47,7 @@ public class EntityLabelsSpanServiceImpl extends ServiceImpl<EntityLabelsSpanMap
         for (EntityLabelsSpan entityLabelsSpan : entityLabelsSpans) {
             annotationEntity = new AnnotationEntity();
             BeanUtils.copyProperties(entityLabelsSpan,annotationEntity);
+            annotationEntity.setId(Long.valueOf(entityLabelsSpan.getId()));
             // 处理个别字段,fileId是string类型的。
             annotationEntities.add(annotationEntity);
         }

Datei-Diff unterdrückt, da er zu groß ist
+ 130 - 0
src/test/java/com/pavis/backend/slim/AnnotationDataTest.java


Einige Dateien werden nicht angezeigt, da zu viele Dateien in diesem Diff geändert wurden.