(improvement)(chat)Dimension value queries are uniformly conducted through HanLP dictionary queries (#271)

This commit is contained in:
lexluo09
2023-10-23 13:09:51 +08:00
committed by GitHub
parent cbf84876de
commit 166a3cfe09
6 changed files with 61 additions and 82 deletions

View File

@@ -12,6 +12,7 @@ import java.util.ArrayDeque;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Queue;
import java.util.Set;
import org.slf4j.Logger;
@@ -322,8 +323,10 @@ public abstract class BaseNode<V> implements Comparable<BaseNode> {
}
String prefix = root.prefix + root.c;
for (BaseNode node : root.child) {
node.prefix = prefix;
queue.add(node);
if (Objects.nonNull(node)) {
node.prefix = prefix;
queue.add(node);
}
}
}
}

View File

@@ -1,11 +1,9 @@
package com.tencent.supersonic.knowledge.dictionary.builder;
import java.util.ArrayList;
import java.util.List;
import com.tencent.supersonic.chat.api.pojo.SchemaElement;
import com.tencent.supersonic.knowledge.dictionary.DictWord;
import com.tencent.supersonic.common.pojo.enums.DictWordType;
import java.util.ArrayList;
import java.util.List;
import lombok.extern.slf4j.Slf4j;
/**
@@ -37,13 +35,4 @@ public abstract class BaseWordBuilder {
}
protected abstract List<DictWord> doGet(String word, SchemaElement schemaElement);
public Long getElementID(String nature) {
String[] split = nature.split(DictWordType.NATURE_SPILT);
if (split.length >= 3) {
return Long.valueOf(split[2]);
}
return 0L;
}
}

View File

@@ -86,7 +86,11 @@ public class SearchService {
BinTrie<List<String>> binTrie, Integer agentId, Set<Long> detectModelIds) {
key = key.toLowerCase();
Set<Map.Entry<String, List<String>>> entrySet = new TreeSet<Map.Entry<String, List<String>>>();
StringBuilder sb = new StringBuilder(key.substring(0, key.length() - 1));
StringBuilder sb = new StringBuilder();
if (StringUtils.isNotBlank(key)) {
sb = new StringBuilder(key.substring(0, key.length() - 1));
}
BaseNode branch = binTrie;
char[] chars = key.toCharArray();
for (char aChar : chars) {

View File

@@ -165,4 +165,13 @@ public class NatureHelper {
return modelToNatureStat.entrySet().stream().filter(entry -> entry.getValue().size() == maxModelTypeSize)
.map(entry -> entry.getKey()).collect(Collectors.toList());
}
public static Long getElementID(String nature) {
String[] split = nature.split(DictWordType.NATURE_SPILT);
if (split.length >= 3) {
return Long.valueOf(split[2]);
}
return 0L;
}
}