From 28d5f38ffb925641f56acfd8599866b091f4577e Mon Sep 17 00:00:00 2001 From: jerryjzhang Date: Wed, 4 Dec 2024 14:40:30 +0800 Subject: [PATCH] [improvement][headless]Refactor headless infra to support advanced semantic modelling. --- .../com/hankcs/hanlp/seg/common/Term.java | 13 - .../supersonic/common/pojo/DataItem.java | 4 +- .../supersonic/common/pojo/ModelRela.java | 3 +- .../store/embedding/TextSegmentConvert.java | 17 +- .../api/pojo/response/DimensionResp.java | 2 + .../parser/calcite/node/DataModelNode.java | 11 +- .../listener/SchemaDictUpdateListener.java | 2 +- .../server/service/DimensionService.java | 2 +- .../service/impl/DimensionServiceImpl.java | 45 +- .../service/impl/MetricServiceImpl.java | 71 +- .../server/service/impl/ModelServiceImpl.java | 2 +- .../server/task/MetaEmbeddingTask.java | 2 +- .../server/utils/DimensionConverter.java | 2 + .../custom/dic_value_1_DIMENSION_2.txt | 6 - .../custom/dic_value_3_DIMENSION_4.txt | 4 - .../custom/dic_value_4_DIMENSION_5.txt | 3 - .../custom/dic_value_4_DIMENSION_6.txt | 6 - .../custom/dic_value_4_DIMENSION_7.txt | 2 - .../custom/dic_value_4_DIMENSION_8.txt | 6 - .../src/test/resources/data/README.url | 2 - .../dictionary/CoreNatureDictionary.mini.txt | 3 - .../CoreNatureDictionary.ngram.mini.txt | 4 - .../data/dictionary/custom/DimValue_10_20.txt | 8 - .../data/dictionary/custom/DimValue_10_22.txt | 8 - .../data/dictionary/custom/DimValue_1_1.txt | 5 - .../data/dictionary/custom/DimValue_1_2.txt | 18 - .../data/dictionary/custom/DimValue_1_3.txt | 6 - .../data/dictionary/custom/DimValue_4_8.txt | 9 - .../data/dictionary/custom/DimValue_5_10.txt | 4 - .../data/dictionary/custom/DimValue_5_11.txt | 6 - .../data/dictionary/custom/DimValue_6_12.txt | 4 - .../data/dictionary/custom/DimValue_6_13.txt | 2 - .../data/dictionary/custom/DimValue_7_16.txt | 2 - .../data/dictionary/custom/DimValue_8_18.txt | 4 - .../data/dictionary/custom/DimValue_8_19.txt | 2 - .../data/dictionary/custom/DimValue_8_21.txt | 6 - .../data/dictionary/custom/DimValue_9_15.txt | 5 - .../data/dictionary/custom/DimValue_9_16.txt | 4 - .../data/dictionary/custom/DimValue_9_18.txt | 7 - .../data/dictionary/custom/DimValue_9_19.txt | 7 - .../data/dictionary/other/CharTable.txt | 4890 ----------------- .../data/dictionary/other/TagPKU98.csv | 44 - .../src/test/resources/data/version.txt | 1 - .../src/test/resources/hanlp.properties | 2 - 44 files changed, 64 insertions(+), 5192 deletions(-) delete mode 100644 launchers/standalone/src/main/resources/data/dictionary/custom/dic_value_1_DIMENSION_2.txt delete mode 100644 launchers/standalone/src/main/resources/data/dictionary/custom/dic_value_3_DIMENSION_4.txt delete mode 100644 launchers/standalone/src/main/resources/data/dictionary/custom/dic_value_4_DIMENSION_5.txt delete mode 100644 launchers/standalone/src/main/resources/data/dictionary/custom/dic_value_4_DIMENSION_6.txt delete mode 100644 launchers/standalone/src/main/resources/data/dictionary/custom/dic_value_4_DIMENSION_7.txt delete mode 100644 launchers/standalone/src/main/resources/data/dictionary/custom/dic_value_4_DIMENSION_8.txt delete mode 100644 launchers/standalone/src/test/resources/data/README.url delete mode 100644 launchers/standalone/src/test/resources/data/dictionary/CoreNatureDictionary.mini.txt delete mode 100644 launchers/standalone/src/test/resources/data/dictionary/CoreNatureDictionary.ngram.mini.txt delete mode 100644 launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_10_20.txt delete mode 100644 launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_10_22.txt delete mode 100644 launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_1_1.txt delete mode 100644 launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_1_2.txt delete mode 100644 launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_1_3.txt delete mode 100644 launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_4_8.txt delete mode 100644 launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_5_10.txt delete mode 100644 launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_5_11.txt delete mode 100644 launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_6_12.txt delete mode 100644 launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_6_13.txt delete mode 100644 launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_7_16.txt delete mode 100644 launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_8_18.txt delete mode 100644 launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_8_19.txt delete mode 100644 launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_8_21.txt delete mode 100644 launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_9_15.txt delete mode 100644 launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_9_16.txt delete mode 100644 launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_9_18.txt delete mode 100644 launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_9_19.txt delete mode 100644 launchers/standalone/src/test/resources/data/dictionary/other/CharTable.txt delete mode 100644 launchers/standalone/src/test/resources/data/dictionary/other/TagPKU98.csv delete mode 100644 launchers/standalone/src/test/resources/data/version.txt delete mode 100644 launchers/standalone/src/test/resources/hanlp.properties diff --git a/common/src/main/java/com/hankcs/hanlp/seg/common/Term.java b/common/src/main/java/com/hankcs/hanlp/seg/common/Term.java index 8bfd2f5e0..89c77565b 100644 --- a/common/src/main/java/com/hankcs/hanlp/seg/common/Term.java +++ b/common/src/main/java/com/hankcs/hanlp/seg/common/Term.java @@ -19,19 +19,6 @@ public class Term { this.nature = nature; } - public Term(String word, Nature nature, int offset) { - this.word = word; - this.nature = nature; - this.offset = offset; - } - - public Term(String word, Nature nature, int offset, int frequency) { - this.word = word; - this.nature = nature; - this.offset = offset; - this.frequency = frequency; - } - public int length() { return this.word.length(); } diff --git a/common/src/main/java/com/tencent/supersonic/common/pojo/DataItem.java b/common/src/main/java/com/tencent/supersonic/common/pojo/DataItem.java index 3ec65c8b2..4b1e81bbd 100644 --- a/common/src/main/java/com/tencent/supersonic/common/pojo/DataItem.java +++ b/common/src/main/java/com/tencent/supersonic/common/pojo/DataItem.java @@ -8,7 +8,6 @@ import lombok.Data; @Builder public class DataItem { - /** * This field uses an underscore (_) at the end. */ private String id; private String bizName; @@ -19,9 +18,10 @@ public class DataItem { private TypeEnums type; - /** * This field uses an underscore (_) at the end. */ private String modelId; + private String domainId; + private String defaultAgg; public String getNewName() { diff --git a/common/src/main/java/com/tencent/supersonic/common/pojo/ModelRela.java b/common/src/main/java/com/tencent/supersonic/common/pojo/ModelRela.java index 451db3e01..a801fc0b0 100644 --- a/common/src/main/java/com/tencent/supersonic/common/pojo/ModelRela.java +++ b/common/src/main/java/com/tencent/supersonic/common/pojo/ModelRela.java @@ -1,5 +1,6 @@ package com.tencent.supersonic.common.pojo; +import com.google.common.collect.Lists; import lombok.Data; import java.util.List; @@ -18,5 +19,5 @@ public class ModelRela extends RecordInfo { // left join, inner join, right join, outer join private String joinType; - private List joinConditions; + private List joinConditions = Lists.newArrayList(); } diff --git a/common/src/main/java/dev/langchain4j/store/embedding/TextSegmentConvert.java b/common/src/main/java/dev/langchain4j/store/embedding/TextSegmentConvert.java index 2278eefd7..4d8f496d6 100644 --- a/common/src/main/java/dev/langchain4j/store/embedding/TextSegmentConvert.java +++ b/common/src/main/java/dev/langchain4j/store/embedding/TextSegmentConvert.java @@ -1,6 +1,7 @@ package dev.langchain4j.store.embedding; import com.alibaba.fastjson.JSONObject; +import com.tencent.supersonic.common.pojo.Constants; import com.tencent.supersonic.common.pojo.DataItem; import dev.langchain4j.data.document.Metadata; import dev.langchain4j.data.segment.TextSegment; @@ -17,10 +18,18 @@ public class TextSegmentConvert { public static final String QUERY_ID = "queryId"; public static List convertToEmbedding(List dataItems) { - return dataItems.stream().map(dataItem -> { - Map meta = JSONObject.parseObject(JSONObject.toJSONString(dataItem), Map.class); - TextSegment textSegment = TextSegment.from(dataItem.getName(), new Metadata(meta)); - addQueryId(textSegment, dataItem.getId() + dataItem.getType().name().toLowerCase()); + return dataItems.stream().map(item -> { + // suffix with underscore to avoid embedding issue + DataItem newItem = DataItem.builder().domainId(item.getDomainId()) + .bizName(item.getBizName()).type(item.getType()).newName(item.getNewName()) + .defaultAgg(item.getDefaultAgg()).name(item.getName()) + .id(item.getId() + Constants.UNDERLINE) + .modelId(item.getModelId() + Constants.UNDERLINE) + .domainId(item.getDomainId() + Constants.UNDERLINE).build(); + + Map meta = JSONObject.parseObject(JSONObject.toJSONString(newItem), Map.class); + TextSegment textSegment = TextSegment.from(newItem.getName(), new Metadata(meta)); + addQueryId(textSegment, newItem.getId() + newItem.getType().name().toLowerCase()); return textSegment; }).collect(Collectors.toList()); } diff --git a/headless/api/src/main/java/com/tencent/supersonic/headless/api/pojo/response/DimensionResp.java b/headless/api/src/main/java/com/tencent/supersonic/headless/api/pojo/response/DimensionResp.java index b5c70830d..eaf1a8937 100644 --- a/headless/api/src/main/java/com/tencent/supersonic/headless/api/pojo/response/DimensionResp.java +++ b/headless/api/src/main/java/com/tencent/supersonic/headless/api/pojo/response/DimensionResp.java @@ -18,6 +18,8 @@ public class DimensionResp extends SchemaItem { private Long modelId; + private Long domainId; + private DimensionType type; private String expr; diff --git a/headless/core/src/main/java/com/tencent/supersonic/headless/core/translator/parser/calcite/node/DataModelNode.java b/headless/core/src/main/java/com/tencent/supersonic/headless/core/translator/parser/calcite/node/DataModelNode.java index 66113ab9b..7b3753a34 100644 --- a/headless/core/src/main/java/com/tencent/supersonic/headless/core/translator/parser/calcite/node/DataModelNode.java +++ b/headless/core/src/main/java/com/tencent/supersonic/headless/core/translator/parser/calcite/node/DataModelNode.java @@ -196,8 +196,8 @@ public class DataModelNode extends SemanticNode { } // second, traverse the ontology to find other related dataModels - List relatedDataModels = findRelatedModelsByRelation(ontology, baseDataModel, - queryDimensions, queryMeasures); + List relatedDataModels = findRelatedModelsByRelation(ontology, queryParam, + baseDataModel, queryDimensions, queryMeasures); if (CollectionUtils.isEmpty(relatedDataModels)) { relatedDataModels = findRelatedModelsByIdentifier(ontology, baseDataModel, queryDimensions, queryMeasures); @@ -282,7 +282,8 @@ public class DataModelNode extends SemanticNode { } private static List findRelatedModelsByRelation(Ontology ontology, - DataModel baseDataModel, Set queryDimensions, Set queryMeasures) { + OntologyQueryParam queryParam, DataModel baseDataModel, Set queryDimensions, + Set queryMeasures) { Set joinDataModelNames = new HashSet<>(); List joinDataModels = new ArrayList<>(); Set before = new HashSet<>(); @@ -305,6 +306,8 @@ public class DataModelNode extends SemanticNode { boolean isRight = before.contains(joinRelation.getLeft()); DataModel other = isRight ? ontology.getDataModelMap().get(joinRelation.getRight()) : ontology.getDataModelMap().get(joinRelation.getLeft()); + String joinDimName = isRight ? joinRelation.getJoinCondition().get(0).getRight() + : joinRelation.getJoinCondition().get(0).getLeft(); if (!queryDimensions.isEmpty()) { Set linkDimension = other.getDimensions().stream() .map(dd -> dd.getName()).collect(Collectors.toSet()); @@ -312,6 +315,8 @@ public class DataModelNode extends SemanticNode { linkDimension.retainAll(queryDimensions); if (!linkDimension.isEmpty()) { isMatch = true; + // joinDim should be added to the query dimension + queryParam.getDimensions().add(joinDimName); } } Set linkMeasure = other.getMeasures().stream().map(Measure::getName) diff --git a/headless/server/src/main/java/com/tencent/supersonic/headless/server/listener/SchemaDictUpdateListener.java b/headless/server/src/main/java/com/tencent/supersonic/headless/server/listener/SchemaDictUpdateListener.java index 6561821e0..dc56f1700 100644 --- a/headless/server/src/main/java/com/tencent/supersonic/headless/server/listener/SchemaDictUpdateListener.java +++ b/headless/server/src/main/java/com/tencent/supersonic/headless/server/listener/SchemaDictUpdateListener.java @@ -27,7 +27,7 @@ public class SchemaDictUpdateListener implements ApplicationListener dictWord.setWord(dataItem.getName()); String sign = DictWordType.NATURE_SPILT; String suffixNature = DictWordType.getSuffixNature(dataItem.getType()); - String nature = sign + dataItem.getModelId() + dataItem.getId() + suffixNature; + String nature = sign + dataItem.getModelId() + sign + dataItem.getId() + suffixNature; String natureWithFrequency = nature + " " + Constants.DEFAULT_FREQUENCY; dictWord.setNature(nature); dictWord.setNatureWithFrequency(natureWithFrequency); diff --git a/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/DimensionService.java b/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/DimensionService.java index b79413b64..864757002 100644 --- a/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/DimensionService.java +++ b/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/DimensionService.java @@ -47,7 +47,7 @@ public interface DimensionService { void sendDimensionEventBatch(List modelIds, EventType eventType); - DataEvent getDataEvent(); + DataEvent getAllDataEvents(); Boolean updateDimValueAlias(DimValueAliasReq req, User user); } diff --git a/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/impl/DimensionServiceImpl.java b/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/impl/DimensionServiceImpl.java index 002a365b2..21414c1c8 100644 --- a/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/impl/DimensionServiceImpl.java +++ b/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/impl/DimensionServiceImpl.java @@ -6,12 +6,9 @@ import com.alibaba.fastjson.TypeReference; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; +import com.google.common.collect.ImmutableMap; import com.google.common.collect.Lists; -import com.tencent.supersonic.common.pojo.Constants; -import com.tencent.supersonic.common.pojo.DataEvent; -import com.tencent.supersonic.common.pojo.DataItem; -import com.tencent.supersonic.common.pojo.ModelRela; -import com.tencent.supersonic.common.pojo.User; +import com.tencent.supersonic.common.pojo.*; import com.tencent.supersonic.common.pojo.enums.EventType; import com.tencent.supersonic.common.pojo.enums.StatusEnum; import com.tencent.supersonic.common.pojo.enums.TypeEnums; @@ -25,23 +22,14 @@ import com.tencent.supersonic.headless.api.pojo.request.DimValueAliasReq; import com.tencent.supersonic.headless.api.pojo.request.DimensionReq; import com.tencent.supersonic.headless.api.pojo.request.MetaBatchReq; import com.tencent.supersonic.headless.api.pojo.request.PageDimensionReq; -import com.tencent.supersonic.headless.api.pojo.response.DataSetResp; -import com.tencent.supersonic.headless.api.pojo.response.DatabaseResp; -import com.tencent.supersonic.headless.api.pojo.response.DimensionResp; -import com.tencent.supersonic.headless.api.pojo.response.ModelResp; -import com.tencent.supersonic.headless.api.pojo.response.SemanticQueryResp; +import com.tencent.supersonic.headless.api.pojo.response.*; import com.tencent.supersonic.headless.server.persistence.dataobject.DimensionDO; import com.tencent.supersonic.headless.server.persistence.mapper.DimensionDOMapper; import com.tencent.supersonic.headless.server.persistence.repository.DimensionRepository; import com.tencent.supersonic.headless.server.pojo.DimensionFilter; import com.tencent.supersonic.headless.server.pojo.DimensionsFilter; import com.tencent.supersonic.headless.server.pojo.ModelFilter; -import com.tencent.supersonic.headless.server.service.DataSetService; -import com.tencent.supersonic.headless.server.service.DatabaseService; -import com.tencent.supersonic.headless.server.service.DimensionService; -import com.tencent.supersonic.headless.server.service.ModelRelaService; -import com.tencent.supersonic.headless.server.service.ModelService; -import com.tencent.supersonic.headless.server.service.TagMetaService; +import com.tencent.supersonic.headless.server.service.*; import com.tencent.supersonic.headless.server.utils.AliasGenerateHelper; import com.tencent.supersonic.headless.server.utils.DimensionConverter; import com.tencent.supersonic.headless.server.utils.NameCheckUtils; @@ -152,11 +140,7 @@ public class DimensionServiceImpl extends ServiceImpl dimensionDOS = queryDimension(dimensionFilter); return getDataEvent(dimensionDOS, EventType.ADD); @@ -464,13 +448,18 @@ public class DimensionServiceImpl extends ServiceImpl dimensionDOS, EventType eventType) { - List dataItems = dimensionDOS.stream() - .map(dimensionDO -> DataItem.builder().id(dimensionDO.getId() + Constants.UNDERLINE) - .name(dimensionDO.getName()) - .modelId(dimensionDO.getModelId() + Constants.UNDERLINE) - .type(TypeEnums.DIMENSION).build()) - .collect(Collectors.toList()); + List dataItems = + dimensionDOS.stream().map(this::getDataItem).collect(Collectors.toList()); return new DataEvent(this, dataItems, eventType); } diff --git a/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/impl/MetricServiceImpl.java b/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/impl/MetricServiceImpl.java index 0b2548485..936e050b2 100644 --- a/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/impl/MetricServiceImpl.java +++ b/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/impl/MetricServiceImpl.java @@ -5,59 +5,26 @@ import com.alibaba.fastjson.TypeReference; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; +import com.google.common.collect.ImmutableMap; import com.google.common.collect.Lists; import com.google.common.collect.Sets; import com.tencent.supersonic.common.jsqlparser.SqlSelectFunctionHelper; -import com.tencent.supersonic.common.pojo.Aggregator; -import com.tencent.supersonic.common.pojo.Constants; -import com.tencent.supersonic.common.pojo.DataEvent; -import com.tencent.supersonic.common.pojo.DataItem; -import com.tencent.supersonic.common.pojo.DateConf; -import com.tencent.supersonic.common.pojo.Filter; -import com.tencent.supersonic.common.pojo.User; +import com.tencent.supersonic.common.pojo.*; import com.tencent.supersonic.common.pojo.enums.*; import com.tencent.supersonic.common.util.BeanMapper; -import com.tencent.supersonic.headless.api.pojo.DrillDownDimension; -import com.tencent.supersonic.headless.api.pojo.Measure; -import com.tencent.supersonic.headless.api.pojo.MeasureParam; -import com.tencent.supersonic.headless.api.pojo.MetaFilter; -import com.tencent.supersonic.headless.api.pojo.MetricParam; -import com.tencent.supersonic.headless.api.pojo.MetricQueryDefaultConfig; -import com.tencent.supersonic.headless.api.pojo.SchemaElementMatch; -import com.tencent.supersonic.headless.api.pojo.SchemaElementType; -import com.tencent.supersonic.headless.api.pojo.SchemaItem; +import com.tencent.supersonic.headless.api.pojo.*; import com.tencent.supersonic.headless.api.pojo.enums.MapModeEnum; import com.tencent.supersonic.headless.api.pojo.enums.MetricDefineType; -import com.tencent.supersonic.headless.api.pojo.request.MetaBatchReq; -import com.tencent.supersonic.headless.api.pojo.request.MetricBaseReq; -import com.tencent.supersonic.headless.api.pojo.request.MetricReq; -import com.tencent.supersonic.headless.api.pojo.request.PageMetricReq; -import com.tencent.supersonic.headless.api.pojo.request.QueryMapReq; -import com.tencent.supersonic.headless.api.pojo.request.QueryMetricReq; -import com.tencent.supersonic.headless.api.pojo.request.QueryStructReq; -import com.tencent.supersonic.headless.api.pojo.response.DataSetMapInfo; -import com.tencent.supersonic.headless.api.pojo.response.DataSetResp; -import com.tencent.supersonic.headless.api.pojo.response.DimensionResp; -import com.tencent.supersonic.headless.api.pojo.response.MapInfoResp; -import com.tencent.supersonic.headless.api.pojo.response.MetricResp; -import com.tencent.supersonic.headless.api.pojo.response.ModelResp; +import com.tencent.supersonic.headless.api.pojo.request.*; +import com.tencent.supersonic.headless.api.pojo.response.*; import com.tencent.supersonic.headless.server.facade.service.ChatLayerService; import com.tencent.supersonic.headless.server.persistence.dataobject.CollectDO; import com.tencent.supersonic.headless.server.persistence.dataobject.MetricDO; import com.tencent.supersonic.headless.server.persistence.dataobject.MetricQueryDefaultConfigDO; import com.tencent.supersonic.headless.server.persistence.mapper.MetricDOMapper; import com.tencent.supersonic.headless.server.persistence.repository.MetricRepository; -import com.tencent.supersonic.headless.server.pojo.DimensionsFilter; -import com.tencent.supersonic.headless.server.pojo.MetricFilter; -import com.tencent.supersonic.headless.server.pojo.MetricsFilter; -import com.tencent.supersonic.headless.server.pojo.ModelCluster; -import com.tencent.supersonic.headless.server.pojo.ModelFilter; -import com.tencent.supersonic.headless.server.service.CollectService; -import com.tencent.supersonic.headless.server.service.DataSetService; -import com.tencent.supersonic.headless.server.service.DimensionService; -import com.tencent.supersonic.headless.server.service.MetricService; -import com.tencent.supersonic.headless.server.service.ModelService; -import com.tencent.supersonic.headless.server.service.TagMetaService; +import com.tencent.supersonic.headless.server.pojo.*; +import com.tencent.supersonic.headless.server.service.*; import com.tencent.supersonic.headless.server.utils.AliasGenerateHelper; import com.tencent.supersonic.headless.server.utils.MetricCheckUtils; import com.tencent.supersonic.headless.server.utils.MetricConverter; @@ -70,18 +37,7 @@ import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collection; -import java.util.Collections; -import java.util.Comparator; -import java.util.Date; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Objects; -import java.util.Set; +import java.util.*; import java.util.stream.Collectors; @Service @@ -667,12 +623,13 @@ public class MetricServiceImpl extends ServiceImpl } private DataItem getDataItem(MetricDO metricDO) { - MetricResp metricResp = - MetricConverter.convert2MetricResp(metricDO, new HashMap<>(), Lists.newArrayList()); + ModelResp modelResp = modelService.getModel(metricDO.getModelId()); + MetricResp metricResp = MetricConverter.convert2MetricResp(metricDO, + ImmutableMap.of(modelResp.getId(), modelResp), Lists.newArrayList()); fillDefaultAgg(metricResp); - return DataItem.builder().id(metricDO.getId() + Constants.UNDERLINE) - .name(metricDO.getName()).bizName(metricDO.getBizName()) - .modelId(metricDO.getModelId() + Constants.UNDERLINE).type(TypeEnums.METRIC) + return DataItem.builder().id(metricResp.getId().toString()).name(metricResp.getName()) + .bizName(metricResp.getBizName()).modelId(metricResp.getModelId().toString()) + .domainId(metricResp.getDomainId().toString()).type(TypeEnums.METRIC) .defaultAgg(metricResp.getDefaultAgg()).build(); } diff --git a/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/impl/ModelServiceImpl.java b/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/impl/ModelServiceImpl.java index a7da69a61..976053220 100644 --- a/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/impl/ModelServiceImpl.java +++ b/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/impl/ModelServiceImpl.java @@ -459,7 +459,7 @@ public class ModelServiceImpl implements ModelService { } ModelFilter modelFilter = new ModelFilter(); modelFilter.setDomainIds(domainIds); - modelFilter.setIncludesDetail(false); + modelFilter.setIncludesDetail(true); List modelResps = getModelList(modelFilter); if (CollectionUtils.isEmpty(modelResps)) { return modelResps; diff --git a/headless/server/src/main/java/com/tencent/supersonic/headless/server/task/MetaEmbeddingTask.java b/headless/server/src/main/java/com/tencent/supersonic/headless/server/task/MetaEmbeddingTask.java index 52610b9ce..2b4dce434 100644 --- a/headless/server/src/main/java/com/tencent/supersonic/headless/server/task/MetaEmbeddingTask.java +++ b/headless/server/src/main/java/com/tencent/supersonic/headless/server/task/MetaEmbeddingTask.java @@ -69,7 +69,7 @@ public class MetaEmbeddingTask implements CommandLineRunner { embeddingService.addQuery(embeddingConfig.getMetaCollectionName(), TextSegmentConvert.convertToEmbedding(metricDataItems)); - List dimensionDataItems = dimensionService.getDataEvent().getDataItems(); + List dimensionDataItems = dimensionService.getAllDataEvents().getDataItems(); embeddingService.addQuery(embeddingConfig.getMetaCollectionName(), TextSegmentConvert.convertToEmbedding(dimensionDataItems)); } catch (Exception e) { diff --git a/headless/server/src/main/java/com/tencent/supersonic/headless/server/utils/DimensionConverter.java b/headless/server/src/main/java/com/tencent/supersonic/headless/server/utils/DimensionConverter.java index 3e5244898..a5e17be93 100644 --- a/headless/server/src/main/java/com/tencent/supersonic/headless/server/utils/DimensionConverter.java +++ b/headless/server/src/main/java/com/tencent/supersonic/headless/server/utils/DimensionConverter.java @@ -105,6 +105,8 @@ public class DimensionConverter { dimensionResp.setType(getType(dimensionDO.getType())); dimensionResp.setTypeEnum(TypeEnums.DIMENSION); dimensionResp.setIsTag(dimensionDO.getIsTag()); + dimensionResp.setDomainId(modelRespMap + .getOrDefault(dimensionResp.getModelId(), new ModelResp()).getDomainId()); return dimensionResp; } diff --git a/launchers/standalone/src/main/resources/data/dictionary/custom/dic_value_1_DIMENSION_2.txt b/launchers/standalone/src/main/resources/data/dictionary/custom/dic_value_1_DIMENSION_2.txt deleted file mode 100644 index b4af16fc4..000000000 --- a/launchers/standalone/src/main/resources/data/dictionary/custom/dic_value_1_DIMENSION_2.txt +++ /dev/null @@ -1,6 +0,0 @@ -tom _1_2 1 -alice _1_2 1 -lucy _1_2 1 -dean _1_2 1 -john _1_2 1 -jack _1_2 1 diff --git a/launchers/standalone/src/main/resources/data/dictionary/custom/dic_value_3_DIMENSION_4.txt b/launchers/standalone/src/main/resources/data/dictionary/custom/dic_value_3_DIMENSION_4.txt deleted file mode 100644 index 0e9309813..000000000 --- a/launchers/standalone/src/main/resources/data/dictionary/custom/dic_value_3_DIMENSION_4.txt +++ /dev/null @@ -1,4 +0,0 @@ -p1 _3_4 3 -p3 _3_4 4 -p4 _3_4 4 -p5 _3_4 2 diff --git a/launchers/standalone/src/main/resources/data/dictionary/custom/dic_value_4_DIMENSION_5.txt b/launchers/standalone/src/main/resources/data/dictionary/custom/dic_value_4_DIMENSION_5.txt deleted file mode 100644 index d138d32e1..000000000 --- a/launchers/standalone/src/main/resources/data/dictionary/custom/dic_value_4_DIMENSION_5.txt +++ /dev/null @@ -1,3 +0,0 @@ -欧美 _4_5 1 -港台 _4_5 3 -内地 _4_5 2 diff --git a/launchers/standalone/src/main/resources/data/dictionary/custom/dic_value_4_DIMENSION_6.txt b/launchers/standalone/src/main/resources/data/dictionary/custom/dic_value_4_DIMENSION_6.txt deleted file mode 100644 index 64fc232b6..000000000 --- a/launchers/standalone/src/main/resources/data/dictionary/custom/dic_value_4_DIMENSION_6.txt +++ /dev/null @@ -1,6 +0,0 @@ -美人鱼 _4_6 1 -青花瓷 _4_6 1 -Love#Story _4_6 1 -爱情转移 _4_6 1 -人间烟火 _4_6 1 -光的方向 _4_6 1 diff --git a/launchers/standalone/src/main/resources/data/dictionary/custom/dic_value_4_DIMENSION_7.txt b/launchers/standalone/src/main/resources/data/dictionary/custom/dic_value_4_DIMENSION_7.txt deleted file mode 100644 index 4b043661e..000000000 --- a/launchers/standalone/src/main/resources/data/dictionary/custom/dic_value_4_DIMENSION_7.txt +++ /dev/null @@ -1,2 +0,0 @@ -国风 _4_7 2 -流行 _4_7 4 diff --git a/launchers/standalone/src/main/resources/data/dictionary/custom/dic_value_4_DIMENSION_8.txt b/launchers/standalone/src/main/resources/data/dictionary/custom/dic_value_4_DIMENSION_8.txt deleted file mode 100644 index 749690c55..000000000 --- a/launchers/standalone/src/main/resources/data/dictionary/custom/dic_value_4_DIMENSION_8.txt +++ /dev/null @@ -1,6 +0,0 @@ -张碧晨 _4_8 1 -周杰伦 _4_8 1 -Taylor#Swift _4_8 1 -程响 _4_8 1 -林俊杰 _4_8 1 -陈奕迅 _4_8 1 diff --git a/launchers/standalone/src/test/resources/data/README.url b/launchers/standalone/src/test/resources/data/README.url deleted file mode 100644 index e37374f27..000000000 --- a/launchers/standalone/src/test/resources/data/README.url +++ /dev/null @@ -1,2 +0,0 @@ -[InternetShortcut] -URL=https://github.com/hankcs/HanLP/ diff --git a/launchers/standalone/src/test/resources/data/dictionary/CoreNatureDictionary.mini.txt b/launchers/standalone/src/test/resources/data/dictionary/CoreNatureDictionary.mini.txt deleted file mode 100644 index 6014daa6e..000000000 --- a/launchers/standalone/src/test/resources/data/dictionary/CoreNatureDictionary.mini.txt +++ /dev/null @@ -1,3 +0,0 @@ -龚 nr 1 -龛 ng 1 -龛影 n 1 \ No newline at end of file diff --git a/launchers/standalone/src/test/resources/data/dictionary/CoreNatureDictionary.ngram.mini.txt b/launchers/standalone/src/test/resources/data/dictionary/CoreNatureDictionary.ngram.mini.txt deleted file mode 100644 index 562f7f1cc..000000000 --- a/launchers/standalone/src/test/resources/data/dictionary/CoreNatureDictionary.ngram.mini.txt +++ /dev/null @@ -1,4 +0,0 @@ -买@水果 1 -然后@来 1 -我@遗忘 10 -遗忘@我 10 \ No newline at end of file diff --git a/launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_10_20.txt b/launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_10_20.txt deleted file mode 100644 index 7bc20ae1d..000000000 --- a/launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_10_20.txt +++ /dev/null @@ -1,8 +0,0 @@ -阿里云 _10_20 5 -天猫 _10_20 5 -腾讯游戏 _10_20 5 -度小满 _10_20 5 -京东金融 _10_20 5 - - - diff --git a/launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_10_22.txt b/launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_10_22.txt deleted file mode 100644 index 4d9cccf5a..000000000 --- a/launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_10_22.txt +++ /dev/null @@ -1,8 +0,0 @@ -张勇 _10_22 5 -马化腾 _10_22 5 -朱光 _10_22 5 -刘强东 _10_22 5 - - - - diff --git a/launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_1_1.txt b/launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_1_1.txt deleted file mode 100644 index c21ae2edb..000000000 --- a/launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_1_1.txt +++ /dev/null @@ -1,5 +0,0 @@ -hr _1_1 876 -sales _1_1 872 -marketing _1_1 310 -strategy _1_1 360 -sales _1_1 500 \ No newline at end of file diff --git a/launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_1_2.txt b/launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_1_2.txt deleted file mode 100644 index 5836055ca..000000000 --- a/launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_1_2.txt +++ /dev/null @@ -1,18 +0,0 @@ -tom _1_2 52 -alice _1_2 47 -lucy _1_2 31 -dean _1_2 36 -john _1_2 50 -jack _1_2 38 -admin _1_2 70 -周杰伦 _4_8 100 -陈奕迅 _4_8 100 -林俊杰 _4_8 100 -张碧晨 _4_8 100 -程响 _4_8 100 -Taylor#Swift _4_8 100 -内地 _4_5 100 -欧美 _4_5 100 -港台 _4_5 100 -流行 _4_7 100 -国风 _4_7 100 \ No newline at end of file diff --git a/launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_1_3.txt b/launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_1_3.txt deleted file mode 100644 index c80af2b98..000000000 --- a/launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_1_3.txt +++ /dev/null @@ -1,6 +0,0 @@ -p1 _3_4 52 -p2 _3_4 47 -p3 _3_4 31 -p4 _3_4 36 -p5 _3_4 50 -p6 _3_4 38 \ No newline at end of file diff --git a/launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_4_8.txt b/launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_4_8.txt deleted file mode 100644 index 2067115b5..000000000 --- a/launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_4_8.txt +++ /dev/null @@ -1,9 +0,0 @@ -周杰伦 _4_8 9000 -周深 _4_8 8000 -周传雄 _4_8 7000 -周华建 _4_8 6000 -陈奕迅 _4_8 8000 -林俊杰 _4_8 7000 -张碧晨 _4_8 7000 -程响 _4_8 7000 -Taylor#Swift _4_8 7000 \ No newline at end of file diff --git a/launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_5_10.txt b/launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_5_10.txt deleted file mode 100644 index 605735e47..000000000 --- a/launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_5_10.txt +++ /dev/null @@ -1,4 +0,0 @@ -美国 _5_8 1 -加拿大 _5_8 1 -锡尔赫特、吉大港、库斯蒂亚 _5_8 1 -孟加拉国 _5_8 3 diff --git a/launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_5_11.txt b/launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_5_11.txt deleted file mode 100644 index ad0bf23b0..000000000 --- a/launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_5_11.txt +++ /dev/null @@ -1,6 +0,0 @@ -现代 _5_9 1 -tagore _5_9 1 -蓝调 _5_9 1 -流行 _5_9 1 -民间 _5_9 1 -nazrul _5_9 1 diff --git a/launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_6_12.txt b/launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_6_12.txt deleted file mode 100644 index fbdf86ead..000000000 --- a/launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_6_12.txt +++ /dev/null @@ -1,4 +0,0 @@ -美国 _6_11 1 -印度 _6_11 2 -英国 _6_11 1 -孟加拉国 _6_11 2 diff --git a/launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_6_13.txt b/launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_6_13.txt deleted file mode 100644 index 51a3b1edc..000000000 --- a/launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_6_13.txt +++ /dev/null @@ -1,2 +0,0 @@ -男性 _6_12 3 -女性 _6_12 3 diff --git a/launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_7_16.txt b/launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_7_16.txt deleted file mode 100644 index 71561720f..000000000 --- a/launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_7_16.txt +++ /dev/null @@ -1,2 +0,0 @@ -mp4 _7_14 4 -mp3 _7_14 2 diff --git a/launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_8_18.txt b/launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_8_18.txt deleted file mode 100644 index f7dd4e308..000000000 --- a/launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_8_18.txt +++ /dev/null @@ -1,4 +0,0 @@ -美国 _8_17 1 -印度 _8_17 2 -英国 _8_17 1 -孟加拉国 _8_17 2 diff --git a/launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_8_19.txt b/launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_8_19.txt deleted file mode 100644 index 360d9b05d..000000000 --- a/launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_8_19.txt +++ /dev/null @@ -1,2 +0,0 @@ -英文 _8_18 2 -孟加拉语 _8_18 4 diff --git a/launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_8_21.txt b/launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_8_21.txt deleted file mode 100644 index d96cbf33f..000000000 --- a/launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_8_21.txt +++ /dev/null @@ -1,6 +0,0 @@ -阿米·奥帕尔·霍伊 _8_16 1 -我的爱 _8_16 1 -打败它 _8_16 1 -阿杰伊阿卡什 _8_16 1 -Tumi#长袍#尼罗布 _8_16 1 -舒克诺#帕塔尔#努普尔#帕埃 _8_16 1 diff --git a/launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_9_15.txt b/launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_9_15.txt deleted file mode 100644 index 5a2cb8f1d..000000000 --- a/launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_9_15.txt +++ /dev/null @@ -1,5 +0,0 @@ -百度集团 _9_15 5 -阿里巴巴集团 _9_15 5 -深圳市腾讯计算机系统有限公司 _9_15 5 -北京京东世纪贸易有限公司 _9_15 5 -网易公司 _9_15 5 diff --git a/launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_9_16.txt b/launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_9_16.txt deleted file mode 100644 index c4e7f41d6..000000000 --- a/launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_9_16.txt +++ /dev/null @@ -1,4 +0,0 @@ -北京 _9_16 5 -杭州 _9_16 5 -深圳 _9_16 5 - diff --git a/launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_9_18.txt b/launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_9_18.txt deleted file mode 100644 index b15cc33d9..000000000 --- a/launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_9_18.txt +++ /dev/null @@ -1,7 +0,0 @@ -李彦宏 _9_18 5 -马云 _9_18 5 -马化腾 _9_18 5 -刘强东 _9_18 5 -丁磊 _9_18 5 - - diff --git a/launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_9_19.txt b/launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_9_19.txt deleted file mode 100644 index 233cfe17f..000000000 --- a/launchers/standalone/src/test/resources/data/dictionary/custom/DimValue_9_19.txt +++ /dev/null @@ -1,7 +0,0 @@ -李彦宏 _9_19 5 -张勇 _9_19 5 -刘炽平 _9_19 5 -刘强东 _9_19 5 -丁磊 _9_19 5 - - diff --git a/launchers/standalone/src/test/resources/data/dictionary/other/CharTable.txt b/launchers/standalone/src/test/resources/data/dictionary/other/CharTable.txt deleted file mode 100644 index a66a33e07..000000000 --- a/launchers/standalone/src/test/resources/data/dictionary/other/CharTable.txt +++ /dev/null @@ -1,4890 +0,0 @@ -= -A=a -B=b -C=c -D=d -E=e -F=f -G=g -H=h -I=i -J=j -K=k -L=l -M=m -N=n -O=o -P=p -Q=q -R=r -S=s -T=t -U=u -V=v -W=w -X=x -Y=y -Z=z -[=《 -]=》 -{=《 -}=》 - = -«=《 -»=》 -“=" -”=" -•=· -‹=《 -›=》 -①=一 -②=二 -③=三 -④=四 -⑤=五 -⑥=六 -⑦=七 -⑧=八 -⑨=九 -⑩=十 -〈=《 -〉=》 -「=“ -」=” -『=‘ -』=’ -【=《 -】=》 -〔=《 -〕=》 -〖=《 -〗=" -〝=" -〞=" -と=之 -ふ=子 -ル=儿 -ㄖ=日 -丟=丢 -両=两 -並=并 -丼=井 -乁=乙 -乗=乘 -乧=斗 -乷=沙 -乹=乾 -乾=干 -亀=龟 -亁=乾 -亂=乱 -亙=亘 -亝=斋 -亞=亚 -亯=享 -亱=夜 -亷=廉 -亾=亡 -仈=八 -仏=佛 -仛=托 -仩=上 -仯=秒 -仴=月 -仸=袄 -仹=丰 -仺=仓 -伕=夫 -伖=友 -伝=传 -伮=奴 -佀=侣 -佇=伫 -佋=召 -佔=占 -佘=畲 -佡=仙 -佪=徊 -佱=企 -佲=铭 -併=并 -佷=很 -佹=危 -佽=次 -侀=型 -來=来 -侇=姨 -侎=眯 -侓=律 -侖=仑 -侢=再 -侶=侣 -侷=局 -侹=廷 -俁=俣 -係=系 -俆=徐 -俔=伣 -俠=侠 -俢=修 -俥=伡 -俬=私 -俻=备 -俽=欣 -倀=伥 -倁=蜘 -倂=并 -倆=俩 -倈=俫 -倉=仓 -個=个 -倐=倏 -們=们 -倖=幸 -倞=京 -倣=仿 -倫=伦 -倳=事 -倶=具 -倸=睬 -倹=俭 -倻=椰 -倽=啥 -偅=重 -偉=伟 -偓=屋 -偘=侃 -偡=湛 -偢=秋 -偪=逼 -偲=思 -側=侧 -偵=侦 -偸=偷 -偺=咱 -偽=伪 -傑=杰 -傓=扇 -傖=伧 -傘=伞 -備=备 -傚=效 -傢=家 -傪=参 -傭=佣 -傯=偬 -傳=传 -傴=伛 -債=债 -傷=伤 -傹=镜 -傾=倾 -僂=偻 -僅=仅 -僉=佥 -僊=仙 -働=動 -僐=善 -僑=侨 -僒=窘 -僕=仆 -僜=澄 -僞=伪 -僟=机 -僥=侥 -僨=偾 -僮=童 -僱=雇 -價=价 -僽=愁 -儀=仪 -儁=俊 -儂=侬 -億=亿 -儈=侩 -儉=俭 -儌=侥 -儐=傧 -儔=俦 -儕=侪 -儘=尽 -償=偿 -優=优 -儭=亲 -儲=储 -儵=倏 -儷=俪 -儸=箩 -儹=攒 -儺=傩 -儻=傥 -儼=俨 -兇=凶 -兌=兑 -兎=兔 -兒=儿 -兗=兖 -兠=兜 -內=内 -兩=两 -兯=节 -兲=天 -兿=艺 -冄=冉 -冇=没 -冊=册 -冋=回 -冐=冒 -冨=富 -冩=写 -冪=幂 -冴=讶 -冺=泯 -凂=免 -凃=涂 -凅=固 -凈=净 -凊=清 -凍=冻 -凗=摧 -凘=斯 -凜=凛 -凞=熙 -凢=几 -凣=凡 -処=处 -凧=巾 -凱=凯 -凲=兼 -凴=凭 -凾=涵 -刄=刃 -刅=办 -刋=刊 -別=别 -刦=劫 -刧=劫 -刪=删 -刴=剁 -刼=劫 -剄=刭 -則=则 -剋=克 -剎=刹 -剏=创 -剗=刬 -剘=期 -剙=創 -剛=刚 -剝=剥 -剨=割 -剮=剐 -剳=劄 -剴=剀 -創=创 -剷=铲 -剹=戮 -剼=删 -劃=划 -劄=札 -劇=剧 -劈=噼 -劉=刘 -劊=刽 -劌=刿 -劍=剑 -劑=剂 -劒=剑 -劦=力 -効=效 -勁=劲 -勄=敏 -勅=敕 -勌=倦 -動=动 -勗=勖 -務=务 -勛=勋 -勝=胜 -勞=劳 -勠=戮 -勢=势 -勦=剿 -勧=劝 -勩=勚 -勱=劢 -勳=勋 -勵=励 -勸=劝 -勻=匀 -勼=九 -匄=亡 -匊=菊 -匋=掏 -匑=躬 -匢=勿 -匨=壮 -匬=愈 -匭=匦 -匯=汇 -匱=匮 -匲=奁 -匳=奁 -匴=算 -匵=椟 -匼=合 -匽=宴 -區=区 -卂=汛 -卆=杂 -協=协 -卙=甚 -卛=率 -卬=仰 -卲=邵 -卹=恤 -卻=却 -卽=即 -厊=芽 -厐=庞 -厔=室 -厗=辛 -厙=厍 -厛=听 -厞=匪 -厠=厕 -厡=原 -厤=历 -厫=廒 -厭=厌 -厯=历 -厰=厂 -厲=厉 -厴=厣 -厷=公 -厾=去 -參=参 -叄=叁 -収=收 -叒=双 -叚=假 -叜=叟 -叡=睿 -叢=丛 -叧=另 -叺=入 -吂=盲 -吒=咤 -吘=午 -吚=咿 -吢=吣 -吳=吴 -吶=呐 -吷=决 -吿=告 -呁=钧 -呂=吕 -呉=吴 -呌=叫 -呎=迟 -呞=司 -呪=咒 -呮=只 -呱=哌 -呴=句 -呺=号 -咊=和 -咑=打 -咓=瓦 -咗=左 -咜=它 -咟=百 -咮=珠 -咰=询 -咷=啕 -咼=呙 -哃=同 -哋=的 -哠=告 -員=员 -哢=咔 -哣=痘 -哬=呵 -哯=现 -哴=琅 -哾=悦 -唂=谷 -唄=呗 -唍=完 -唎=例 -唕=唣 -唘=启 -唚=吣 -唡=俩 -唥=冷 -唦=砂 -唫=金 -唰=刷 -唵=俺 -唶=锡 -唸=念 -唻=来 -唽=析 -啇=商 -啌=控 -啍=享 -啎=忤 -問=问 -啑=捷 -啓=启 -啗=啖 -啘=婉 -啚=鄙 -啝=和 -啞=哑 -啟=启 -啢=唡 -啣=衔 -啨=晴 -啩=挂 -啱=岩 -啴=单 -喎=㖞 -喐=郁 -喒=咱 -喖=枯 -喚=唤 -喥=度 -喦=岩 -喪=丧 -喫=吃 -喬=乔 -單=单 -喰=食 -喲=哟 -営=宫 -喼=急 -嗁=啼 -嗆=呛 -嗇=啬 -嗊=唝 -嗎=吗 -嗏=茶 -嗐=害 -嗗=骨 -嗚=呜 -嗛=谦 -嗩=唢 -嗬=呵 -嗱=拿 -嗶=哔 -嗹=莲 -嗻=遮 -嗼=摸 -嘂=叫 -嘄=鸣 -嘆=叹 -嘋=教 -嘍=喽 -嘓=啯 -嘔=呕 -嘖=啧 -嘗=尝 -嘙=婆 -嘚=得 -嘜=唛 -嘠=嘎 -嘢=野 -嘩=哗 -嘫=然 -嘮=唠 -嘯=啸 -嘰=叽 -嘵=哓 -嘸=呒 -嘽=啴 -噂=遵 -噅=咴 -噉=啖 -噐=器 -噑=嗥 -噓=嘘 -噖=琴 -噝=咝 -噠=哒 -噥=哝 -噦=哕 -噭=激 -噯=嗳 -噲=哙 -噴=喷 -噸=吨 -噹=当 -噺=新 -嚀=咛 -嚂=滥 -嚇=吓 -嚌=哜 -嚐=尝 -嚕=噜 -嚗=爆 -嚙=啮 -嚜=墨 -嚠=刘 -嚡=鞋 -嚤=蘑 -嚦=呖 -嚨=咙 -嚮=向 -嚲=亸 -嚳=喾 -嚴=严 -嚶=嘤 -囀=啭 -囁=嗫 -囂=嚣 -囅=冁 -囈=呓 -囉=啰 -囑=嘱 -囓=啮 -囗=口 -囘=回 -囙=因 -囥=亢 -囩=云 -囪=囱 -囬=回 -囮=化 -囯=国 -囸=正 -圅=函 -圇=囵 -國=国 -圍=围 -圎=园 -園=园 -圓=圆 -圖=图 -團=团 -圝=圞 -圤=扑 -圧=庄 -圱=升 -圵=止 -圷=吓 -坆=玫 -坧=石 -坰=垧 -坵=丘 -坿=附 -垇=坳 -垉=咆 -垐=茨 -垜=垛 -垨=守 -垯=达 -垳=行 -垵=埯 -垹=绑 -垿=序 -埐=侵 -埖=花 -埜=野 -埡=垭 -埥=请 -埰=采 -埱=叔 -埳=坎 -執=执 -堅=坚 -堊=垩 -堒=坤 -堔=深 -堖=垴 -堘=塍 -堝=埚 -堦=階 -堯=尧 -報=报 -場=场 -堷=音 -堿=碱 -塆=弯 -塊=块 -塋=茔 -塏=垲 -塒=埘 -塖=乘 -塗=涂 -塚=冢 -塟=葬 -塡=填 -塢=坞 -塤=埙 -塨=恭 -塮=谢 -塲=场 -塵=尘 -塹=堑 -塼=砖 -墊=埝 -墖=塔 -墘=乾 -墛=蔚 -墜=坠 -墪=墩 -墭=盛 -墮=堕 -墳=坟 -墵=坛 -墶=垯 -墻=墙 -墾=垦 -壃=僵 -壄=野 -壇=坛 -壋=垱 -壎=埙 -壓=压 -壖=堧 -壘=垒 -壙=圹 -壚=垆 -壜=坛 -壞=坏 -壟=垅 -壠=垅 -壢=坜 -壩=坝 -壪=塆 -壯=壮 -壺=壶 -壻=婿 -壼=壸 -壽=寿 -壿=蹲 -夀=寿 -夃=孕 -夅=降 -夌=菱 -夗=苑 -夘=卯 -夝=胜 -夠=够 -夢=梦 -夥=伙 -夰=介 -夲=本 -夾=夹 -奐=奂 -奧=奥 -奨=奖 -奩=奁 -奪=夺 -奬=奖 -奮=奋 -奷=奸 -奼=姹 -妀=改 -妏=文 -妑=芭 -妔=坑 -妕=钟 -妝=妆 -妠=呐 -妢=纷 -妬=妒 -妭=拨 -妱=招 -妳=你 -妶=弦 -妷=失 -妸=可 -妺=妹 -妽=申 -姃=征 -姄=民 -姉=姊 -姌=冉 -姍=姗 -姎=央 -姖=巨 -姙=妊 -姟=该 -姠=响 -姦=奸 -姧=歼 -姩=年 -姪=侄 -姵=佩 -姸=妍 -姺=先 -娕=束 -娖=促 -娛=娱 -娝=否 -娦=兵 -娪=语 -娫=延 -娬=武 -娯=娱 -娸=其 -娿=啊 -婁=娄 -婂=锦 -婄=赔 -婇=菜 -婑=矮 -婔=菲 -婖=添 -婜=娶 -婣=姻 -婤=稠 -婥=卓 -婦=妇 -婫=混 -婬=淫 -婭=娅 -婯=丽 -婸=扬 -婹=要 -婼=若 -媈=挥 -媌=苗 -媍=妇 -媔=面 -媗=喧 -媙=威 -媟=谍 -媠=惰 -媣=染 -媥=偏 -媦=胃 -媧=娲 -媨=酋 -媫=婕 -媯=妫 -媴=袁 -媷=辱 -媹=溜 -媼=媪 -媽=妈 -媿=愧 -嫃=真 -嫆=蓉 -嫊=素 -嫋=袅 -嫎=膀 -嫗=妪 -嫙=旋 -嫚=蔓 -嫝=康 -嫟=匿 -嫧=责 -嫰=嫩 -嫲=麻 -嫵=妩 -嫺=娴 -嫻=娴 -嫼=黑 -嫽=撩 -嫿=婳 -嬀=妫 -嬈=娆 -嬋=婵 -嬌=娇 -嬑=意 -嬘=遂 -嬙=嫱 -嬝=袅 -嬡=嫒 -嬤=嬷 -嬪=嫔 -嬭=奶 -嬰=婴 -嬶=鼻 -嬸=婶 -嬾=懒 -嬿=燕 -孃=娘 -孄=栏 -孌=娈 -孒=了 -孡=抬 -孧=幼 -孫=孙 -孶=孳 -學=学 -孼=孽 -孿=孪 -宂=冗 -宖=宏 -宮=宫 -宼=寇 -寀=采 -寃=冤 -寑=寝 -寕=宁 -寢=寝 -實=实 -寧=宁 -審=审 -寫=写 -寬=宽 -寲=疑 -寳=宝 -寵=宠 -寶=宝 -尅=克 -將=将 -專=专 -尋=寻 -對=对 -導=导 -尒=尔 -尙=尚 -尟=鲜 -尠=鲜 -尩=尪 -尫=尪 -尲=尴 -尷=尴 -屆=届 -屍=尸 -屓=屃 -屗=尾 -屙=疴 -屚=漏 -屛=屏 -屜=屉 -屟=屉 -屢=屡 -層=层 -屨=屦 -屬=属 -屭=屃 -屰=逆 -屾=山 -岅=坂 -岆=妖 -岠=拒 -岡=冈 -岥=坡 -岼=坪 -峝=峒 -峩=峨 -峫=邪 -峬=捕 -峮=裙 -峯=峰 -峴=岘 -島=岛 -峸=城 -峽=峡 -崈=宗 -崍=崃 -崐=昆 -崕=崖 -崗=岗 -崙=仑 -崠=岽 -崢=峥 -崣=萎 -崧=嵩 -崫=窟 -崬=岽 -崳=嵛 -崶=封 -崾=腰 -嵐=岚 -嵒=岩 -嵔=畏 -嵗=岁 -嵻=慷 -嵿=顶 -嶁=嵝 -嶃=崭 -嶄=崭 -嶇=岖 -嶒=曾 -嶔=嵚 -嶗=崂 -嶠=峤 -嶢=峣 -嶧=峄 -嶨=峃 -嶮=崄 -嶴=岙 -嶵=罪 -嶶=微 -嶸=嵘 -嶺=岭 -嶼=屿 -嶽=岳 -巋=岿 -巒=峦 -巔=巅 -巗=岩 -巛=川 -巟=荒 -巰=巯 -巵=卮 -巹=卺 -巿=市 -帀=匝 -帉=粉 -帋=纸 -帞=陌 -帥=帅 -師=师 -帬=裙 -帳=帐 -帶=带 -帹=接 -帾=赌 -幀=帧 -幃=帏 -幇=帮 -幈=屏 -幎=幂 -幑=徽 -幗=帼 -幘=帻 -幙=幕 -幚=帮 -幟=帜 -幣=币 -幫=帮 -幬=帱 -幷=并 -幹=干 -幺=么 -幾=几 -広=广 -庅=么 -庝=疼 -庫=库 -庻=庶 -庽=寓 -庿=庙 -廁=厕 -廂=厢 -廄=厩 -廈=厦 -廎=庼 -廐=厩 -廕=荫 -廚=厨 -廜=屠 -廝=厮 -廟=庙 -廠=厂 -廡=庑 -廢=废 -廣=广 -廩=廪 -廬=庐 -廰=厅 -廳=厅 -廵=巡 -廸=迪 -廹=迫 -廻=回 -廼=迺 -弌=壹 -弍=贰 -弒=弑 -弔=吊 -弖=弓 -弚=弟 -弜=弱 -弳=弪 -張=张 -強=强 -彅=简 -彆=别 -彈=弹 -彊=强 -彌=弥 -彎=弯 -彔=录 -彙=汇 -彜=彝 -彞=彝 -彠=彟 -彡=三 -彥=彦 -彫=雕 -彯=飘 -彵=他 -彶=及 -彽=低 -彿=佛 -徃=往 -後=后 -徑=径 -從=从 -徠=徕 -徣=借 -徦=假 -徧=遍 -復=复 -徬=彷 -徳=德 -徵=征 -徹=彻 -忊=订 -忬=舒 -忲=太 -忹=汪 -忼=杭 -怇=矩 -怉=饱 -怌=呸 -怓=努 -怞=油 -怭=必 -怱=匆 -怳=恍 -怵=憷 -怶=披 -怺=咏 -恆=恒 -恉=旨 -恏=好 -恠=怪 -恡=吝 -恥=耻 -悀=涌 -悅=悦 -悇=余 -悈=戒 -悊=哲 -悋=吝 -悘=医 -悙=亨 -悞=悮 -悡=梨 -悢=恨 -悤=匆 -悩=脑 -悪=恶 -悮=误 -悵=怅 -悶=闷 -悽=凄 -惓=倦 -惔=淡 -惡=恶 -惢=蕊 -惥=恿 -惪=德 -惱=恼 -惲=恽 -惷=蠢 -惻=恻 -愅=革 -愙=客 -愛=爱 -愜=惬 -愨=悫 -愬=诉 -愮=瑶 -愰=晃 -愴=怆 -愷=恺 -愺=草 -愽=博 -愾=忾 -慁=恩 -慂=恿 -慄=栗 -慇=殷 -態=态 -慍=愠 -慓=漂 -慘=惨 -慙=惭 -慚=惭 -慛=崔 -慟=恸 -慠=傲 -慣=惯 -慤=悫 -慥=造 -慦=救 -慪=怄 -慫=怂 -慬=懂 -慮=虑 -慲=瞒 -慳=悭 -慴=慑 -慶=庆 -慹=热 -慼=戚 -慽=戚 -慾=欲 -憂=忧 -憅=动 -憇=憩 -憉=彭 -憊=惫 -憐=怜 -憑=凭 -憒=愦 -憕=登 -憖=慭 -憚=惮 -憛=潭 -憜=堕 -憡=策 -憤=愤 -憫=悯 -憮=怃 -憲=宪 -憶=忆 -懃=勤 -懄=勤 -懆=操 -懇=恳 -應=应 -懌=怿 -懍=懔 -懞=蒙 -懟=怼 -懣=懑 -懨=恹 -懪=暴 -懲=惩 -懶=懒 -懷=怀 -懸=悬 -懺=忏 -懼=惧 -懽=欢 -懾=慑 -戀=恋 -戇=戆 -戉=钺 -戓=或 -戔=戋 -戞=戛 -戧=戗 -戨=歌 -戩=戬 -戰=战 -戱=戯 -戲=戏 -戶=户 -戹=厄 -戼=卯 -扂=店 -扆=衣 -扙=丈 -扜=迂 -扝=亏 -扡=扦 -扱=吸 -抝=拗 -抳=拟 -抴=曳 -拋=抛 -拑=钳 -拕=拖 -拚=拼 -拡=扩 -拤=掐 -拹=协 -拾=十 -挌=格 -挘=劣 -挩=捝 -挱=挲 -挵=弄 -挶=局 -挾=挟 -捄=救 -捊=浮 -捨=舍 -捫=扪 -捲=卷 -捳=岳 -掃=扫 -掄=抡 -掗=挜 -掙=挣 -掛=挂 -採=采 -掫=取 -掱=手 -掵=命 -掹=猛 -掽=碰 -揀=拣 -揅=研 -揌=塞 -揑=捏 -揗=循 -揙=编 -揚=扬 -換=换 -揫=揪 -揮=挥 -揵=健 -揷=插 -揹=背 -搆=构 -搇=揿 -搉=榷 -損=损 -搖=摇 -搗=捣 -搣=灭 -搤=扼 -搥=捶 -搧=扇 -搨=拓 -搯=掏 -搵=揾 -搶=抢 -搾=榨 -摀=捂 -摂=摄 -摃=扛 -摋=杀 -摑=掴 -摜=掼 -摟=搂 -摣=揸 -摤=爽 -摯=挚 -摳=抠 -摶=抟 -摺=折 -摻=掺 -摽=标 -撁=牵 -撃=击 -撈=捞 -撏=挦 -撐=撑 -撓=挠 -撚=捻 -撝=㧑 -撟=挢 -撢=掸 -撣=掸 -撥=拨 -撦=扯 -撧=撅 -撫=抚 -撲=扑 -撳=揿 -撴=蹾 -撻=挞 -撽=邀 -撾=挝 -撿=捡 -擁=拥 -擄=掳 -擇=择 -擊=击 -擋=挡 -擏=敬 -擓=㧟 -擔=担 -擕=携 -據=据 -擝=盟 -擠=挤 -擡=抬 -擣=捣 -擧=举 -擬=拟 -擯=摈 -擰=拧 -擱=搁 -擲=掷 -擴=扩 -擷=撷 -擺=摆 -擻=擞 -擼=撸 -擾=扰 -擿=摘 -攃=擦 -攄=摅 -攆=撵 -攋=赖 -攏=拢 -攔=拦 -攖=撄 -攙=搀 -攛=撺 -攜=携 -攝=摄 -攢=攒 -攣=挛 -攤=摊 -攩=挡 -攪=搅 -攬=揽 -攷=考 -敁=掂 -敂=叩 -敍=叙 -敎=教 -敗=败 -敘=叙 -敟=典 -敩=学 -敭=扬 -敵=敌 -數=数 -敺=驱 -斂=敛 -斃=毙 -斈=学 -斉=齐 -斕=斓 -斚=斝 -斬=斩 -斷=断 -於=于 -旂=旗 -旛=幡 -旣=既 -旤=祸 -旪=叶 -旹=时 -旾=春 -昇=升 -昋=吞 -昐=盼 -昜=杨 -昬=昏 -昻=昂 -時=时 -晉=晋 -晎=哄 -晝=昼 -晵=启 -晿=唱 -暀=往 -暈=晕 -暉=晖 -暎=映 -暒=星 -暘=旸 -暠=皓 -暡=翁 -暢=畅 -暫=暂 -暱=昵 -曂=黄 -曃=逮 -曄=晔 -曆=历 -曇=昙 -曉=晓 -曊=费 -曏=向 -曖=暧 -曟=晨 -曠=旷 -曡=叠 -曨=昽 -曬=晒 -曱=甲 -書=书 -朂=最 -會=会 -朓=跳 -朞=期 -朢=望 -朧=胧 -朩=木 -朮=术 -朳=扒 -朶=朵 -杇=圬 -杘=尿 -杧=忙 -東=东 -杴=锨 -杺=心 -枃=匀 -枈=柴 -枒=桠 -枱=台 -枴=拐 -枾=柿 -柂=拖 -柆=垃 -柈=伴 -柭=跋 -柵=栅 -柷=祝 -柸=杯 -柹=柿 -柺=拐 -査=查 -栁=柳 -栆=枣 -栔=契 -栞=刊 -栢=柏 -栤=冰 -栰=筏 -栱=供 -栺=指 -桒=桑 -桚=拶 -桭=振 -桮=杯 -桺=柳 -桿=杆 -梔=栀 -梘=枧 -梚=挽 -條=条 -梟=枭 -梲=棁 -梹=槟 -梽=志 -棃=梨 -棄=弃 -棈=精 -棊=棋 -棌=睬 -棑=排 -棖=枨 -棗=枣 -棟=栋 -棡= -棧=栈 -棩=渊 -棬=桊 -棲=栖 -棴=服 -棶=梾 -椀=碗 -椉=乘 -椏=桠 -椗=碇 -椘=楚 -椨=俯 -椮=渗 -椶=棕 -椾=笺 -楃=握 -楊=杨 -楓=枫 -楛=苦 -楨=桢 -楩=便 -業=业 -楱=奏 -楳=梅 -極=极 -楿=相 -榘=矩 -榦=干 -榪=杩 -榮=荣 -榲=榅 -榿=桤 -槀=槁 -槁=藁 -槃=盘 -構=构 -槍=枪 -槑=呆 -槓=杠 -槕=桌 -槤=梿 -槧=椠 -槨=椁 -槩=概 -槪=概 -槮=椮 -槳=桨 -槶=椢 -槹=槔 -槼=規 -樁=桩 -樂=乐 -樅=枞 -樐=橹 -樑=梁 -樓=楼 -標=标 -樝=楂 -樞=枢 -樣=样 -樭=基 -樸=朴 -樹=树 -樺=桦 -樿=椫 -橆=舞 -橈=桡 -橋=桥 -橓=瞬 -橖=棠 -橜=橛 -機=机 -橢=椭 -橤=蕊 -橫=横 -橰=槔 -橴=紫 -檁=檩 -檇=槜 -檉=柽 -檔=档 -檜=桧 -檝=楫 -檟=槚 -檢=检 -檣=樯 -檤=道 -檭=银 -檮=梼 -檯=台 -檳=槟 -檸=柠 -檻=槛 -檾=苘 -櫂=棹 -櫃=柜 -櫇=颇 -櫈=凳 -櫓=橹 -櫕=替 -櫚=榈 -櫛=栉 -櫝=椟 -櫞=橼 -櫟=栎 -櫥=橱 -櫧=槠 -櫨=栌 -櫪=枥 -櫫=橥 -櫬=榇 -櫱=蘖 -櫳=栊 -櫸=榉 -櫺=棂 -櫻=樱 -欄=栏 -欅=榉 -權=权 -欎=郁 -欏=椤 -欑=攒 -欒=栾 -欖=榄 -欞=棂 -欥=吹 -欵=款 -欽=钦 -歎=叹 -歐=欧 -歔=墟 -歗=啸 -歘=欻 -歛=敛 -歟=欤 -歡=欢 -歭=持 -歮=址 -歯=齿 -歲=岁 -歳=岁 -歴=历 -歷=历 -歸=归 -歿=殁 -殀=夭 -殗=淹 -殘=残 -殙=婚 -殞=殒 -殣=谨 -殤=殇 -殨=㱮 -殫=殚 -殭=僵 -殮=殓 -殯=殡 -殲=歼 -殸=声 -殺=杀 -殻=壳 -殼=壳 -毀=毁 -毃=敲 -毆=殴 -毇=毁 -毉=医 -毐=毒 -毘=毗 -毝=毛 -毣=笔 -毧=绒 -毿=毵 -氂=牦 -氈=毡 -氊=毡 -氌=氇 -氣=气 -氫=氢 -氬=氩 -氳=氲 -氷=冰 -氹=凼 -氾=犯 -氿=酒 -汃=趴 -汈=叼 -汋=勺 -汍=丸 -汎=帆 -汏=大 -汒=茫 -汘=纤 -汙=污 -汚=污 -汢=土 -汥=枝 -汮=均 -汸=坊 -決=决 -汻=许 -沋=优 -沍=冱 -沑=扭 -沒=没 -沕=吻 -沖=冲 -沬=抹 -沰=拓 -沴=珍 -沵=你 -沶=示 -況=况 -泂=炯 -泇=架 -泙=砰 -泚=此 -泝=溯 -泩=生 -泬=穴 -泹=担 -洀=舟 -洂=亦 -洃=灰 -洊=存 -洏=而 -洘=拷 -洝=按 -洣=迷 -洤=全 -洩=泄 -洭=眶 -洶=汹 -洸=光 -洺=名 -洿=夸 -浀=曲 -浄=净 -浉=狮 -浌=伐 -浐=产 -浕=尽 -浗=球 -浛=含 -浢=逗 -浧=逞 -浨=宋 -浭=更 -浵=彤 -浹=浃 -浽=馁 -涃=捆 -涇=泾 -涊=忍 -涍=哮 -涖=莅 -涜=壳 -涥=哼 -涭=授 -涳=空 -涴=碗 -涺=锯 -涻=社 -涼=凉 -涽=昏 -淉=果 -淍=碉 -淒=凄 -淓=芳 -淔=植 -淚=泪 -淛=浙 -淣=倪 -淥=渌 -淨=净 -淩=凌 -淪=沦 -淰=念 -淵=渊 -淶=涞 -淺=浅 -渀=奔 -渁=水 -渇=渴 -渉=涉 -渏=奇 -渓=溪 -渘=揉 -渙=涣 -減=减 -渞=首 -渟=停 -渢=沨 -渦=涡 -渧=蒂 -測=测 -渱=虹 -渶=英 -渻=省 -渾=浑 -湁=拾 -湈=煤 -湊=凑 -湌=餐 -湏=须 -湜=是 -湝=皆 -湞=浈 -湠=碳 -湢=福 -湣=愍 -湤=施 -湥=突 -湧=涌 -湯=汤 -湰=隆 -湴=碰 -湺=保 -湻=淳 -湼=涅 -溇=楼 -溈=沩 -溓=嫌 -溔=糕 -準=准 -溙=泰 -溚=搭 -溜=熘 -溝=沟 -溡=时 -溤=冯 -溫=温 -溮=浉 -溳=涢 -溼=湿 -溿=畔 -滃=嗡 -滄=沧 -滅=灭 -滈=高 -滌=涤 -滎=荥 -滒=哥 -滘=浩 -滙=汇 -滛=淫 -滬=沪 -滭=毕 -滮=彪 -滯=滞 -滲=渗 -滵=蜜 -滷=卤 -滸=浒 -滺=悠 -滻=浐 -滽=庸 -滾=磙 -滿=满 -漁=渔 -漅=巢 -漈=际 -漊=溇 -漑=概 -漚=沤 -漟=堂 -漢=汉 -漣=涟 -漨=逢 -漬=渍 -漲=涨 -漴=崇 -漵=溆 -漷=郭 -漸=渐 -漹=焉 -漻=廖 -漿=浆 -潁=颍 -潄=漱 -潅=罐 -潎=撇 -潐=焦 -潑=泼 -潒=橡 -潔=洁 -潗=集 -潙=沩 -潛=潜 -潠=噀 -潤=润 -潪=智 -潯=浔 -潰=溃 -潵=撒 -潶=嘿 -潷=滗 -潹=森 -潾=磷 -潿=涠 -澀=涩 -澁=涩 -澆=浇 -澇=涝 -澊=尊 -澕=华 -澗=涧 -澠=渑 -澢=挡 -澣=浣 -澤=泽 -澥=懈 -澦=滪 -澩=泶 -澭=雍 -澮=浍 -澱=淀 -澼=辟 -濁=浊 -濃=浓 -濆=愤 -濇=涩 -濐=暑 -濔=沵 -濕=湿 -濘=泞 -濜=浕 -濟=济 -濢=粹 -濤=涛 -濨=磁 -濫=漤 -濰=潍 -濱=滨 -濳=潜 -濶=阔 -濸=呛 -濺=溅 -濼=泺 -濾=滤 -瀅=滢 -瀆=渎 -瀉=泻 -瀋=渖 -瀍=缠 -瀏=浏 -瀕=濒 -瀘=泸 -瀜=融 -瀝=沥 -瀟=潇 -瀠=潆 -瀦=潴 -瀧=泷 -瀨=濑 -瀭=输 -瀲=潋 -瀻=戴 -瀾=澜 -瀿=繁 -灀=霜 -灃=沣 -灄=滠 -灋=法 -灑=洒 -灕=漓 -灘=滩 -灝=灏 -灠=漤 -灡=烂 -灢=囊 -灣=湾 -灤=滦 -灧=滟 -灨=赣 -灩=滟 -災=灾 -炡=政 -炤=照 -炪=出 -為=为 -烄=胶 -烏=乌 -烑=姚 -烖=灾 -烥=臣 -烮=列 -烱=炯 -烴=烃 -烸=梅 -烺=浪 -烾=炎 -焄=君 -焒=吕 -無=无 -煆=煅 -煇=辉 -煉=炼 -煑=煮 -煒=炜 -煕=熙 -煖=暖 -煗=暖 -煙=烟 -煠=炸 -煢=茕 -煥=焕 -煩=烦 -煬=炀 -煭=裂 -煱=锅 -煷=亮 -熅=煴 -熈=熙 -熋=熊 -熒=荧 -熖=焰 -熗=炝 -熱=热 -熲=颎 -熷=增 -熾=炽 -燁=烨 -燄=焰 -燈=灯 -燉=炖 -燐=磷 -燒=烧 -燙=烫 -燜=焖 -營=营 -燦=灿 -燭=烛 -燳=照 -燴=烩 -燻=熏 -燼=烬 -燾=焘 -燿=耀 -爊=熬 -爍=烁 -爐=炉 -爕=燮 -爗=烨 -爘=餐 -爛=烂 -爭=争 -爲=为 -爺=爷 -爾=尔 -爿=丬 -牀=床 -牆=墙 -牋=笺 -牎=窗 -牐=闸 -牓=榜 -牕=窗 -牘=牍 -牠=它 -牴=抵 -牸=字 -牽=牵 -犂=犁 -犇=牛 -犖=荦 -犛=牦 -犠=牺 -犢=犊 -犧=牺 -犼=吼 -狀=状 -狆=中 -狌=牲 -狔=泥 -狚=胆 -狣=挑 -狥=徇 -狪=洞 -狹=狭 -狽=狈 -猂=悍 -猙=狰 -猦=枫 -猨=猿 -猵=遍 -猶=犹 -猻=狲 -獁=犸 -獃=呆 -獄=狱 -獅=狮 -獊=沧 -獌=馒 -獎=奖 -獏=貘 -獓=敖 -獘=毙 -獙=敝 -獞=撞 -獣=兽 -獧=狷 -獨=独 -獪=狯 -獫=猃 -獮=狝 -獰=狞 -獲=获 -獵=猎 -獷=犷 -獸=兽 -獺=獭 -獻=献 -獼=猕 -玀=猡 -玅=妙 -玆=玄 -玙=与 -玞=夫 -玨=珏 -玪=玲 -珆=台 -珒=津 -珓=较 -珪=圭 -珮=佩 -珵=呈 -珶=梯 -珻=悔 -現=现 -琇=锈 -琎=进 -琓=玩 -琖=盏 -琱=雕 -琹=琴 -琺=珐 -琿=珲 -瑆=惺 -瑇=玳 -瑉=珉 -瑋=玮 -瑏=穿 -瑒=玚 -瑝=皇 -瑠=琉 -瑣=琐 -瑤=瑶 -瑩=莹 -瑪=玛 -瑫=滔 -瑯=琅 -瑱=填 -瑲=玱 -瑺=常 -璄=境 -璉=琏 -璔=憎 -璡=琎 -璢=琉 -璣=玑 -璦=瑷 -璪=澡 -璫=珰 -環=环 -璵=玙 -璸=瑸 -璽=玺 -璿=璇 -瓈=璃 -瓊=琼 -瓌=瑰 -瓏=珑 -瓔=璎 -瓚=瓒 -瓟=爬 -甁=瓶 -甆=瓷 -甌=瓯 -甎=砖 -甕=瓮 -甖=罂 -甛=甜 -甞=尝 -產=产 -産=产 -甦=苏 -甯=宁 -甴=由 -甶=田 -甽=圳 -畆=亩 -畊=耕 -畝=亩 -畡=垓 -畢=毕 -畣=答 -畧=略 -畨=番 -畩=依 -畫=画 -畮=亩 -異=异 -畱=留 -畵=画 -當=当 -畼=场 -疇=畴 -疉=叠 -疊=叠 -疍=蛋 -疎=疏 -疒=病 -疧=底 -疺=乏 -疿=痱 -痌=恫 -痐=蛔 -痙=痉 -痠=酸 -痩=瘦 -痲=痳 -痺=痹 -痽=准 -痾=疴 -瘂=痖 -瘉=愈 -瘋=疯 -瘍=疡 -瘓=痪 -瘖=喑 -瘚=撅 -瘞=瘗 -瘡=疮 -瘧=疟 -瘮=瘆 -瘲=疭 -瘺=瘘 -瘻=瘘 -療=疗 -癅=瘤 -癆=痨 -癇=痫 -癉=瘅 -癒=愈 -癘=疠 -癙=鼠 -癟=瘪 -癡=痴 -癢=痒 -癤=疖 -癥=症 -癧=疬 -癩=癞 -癬=癣 -癭=瘿 -癮=瘾 -癰=痈 -癱=瘫 -癲=癫 -癷=罕 -發=发 -皁=皂 -皃=貌 -皐=皋 -皒=俄 -皗=绸 -皚=皑 -皛=白 -皜=皓 -皰=疱 -皷=鼓 -皸=皲 -皺=皱 -盁=盈 -盃=杯 -盇=盍 -盉=盒 -盋=钵 -盌=碗 -盜=盗 -盞=盏 -盡=尽 -監=监 -盤=盘 -盧=卢 -盪=荡 -盬=监 -眀=明 -眎=视 -眏=映 -眡=视 -眥=眦 -眪=丙 -眫=胖 -眾=众 -睋=蛾 -睏=困 -睓=腆 -睜=睁 -睞=睐 -睠=眷 -睪=睾 -睲=腥 -瞇=眯 -瞐=晶 -瞖=翳 -瞘=眍 -瞜=䁖 -瞞=瞒 -瞮=澈 -瞶=瞆 -瞼=睑 -矁=瞅 -矓=眬 -矙=瞰 -矚=瞩 -矯=矫 -矴=碇 -矼=缸 -矽=硅 -砡=玉 -砲=炮 -砽=拥 -硏=研 -硜=硁 -硤=硖 -硧=桶 -硨=砗 -硯=砚 -碁=棋 -碕=埼 -碙=刚 -碩=硕 -碪=砧 -碭=砀 -碸=砜 -確=确 -碼=码 -磆=猾 -磍=瞎 -磎=溪 -磑=硙 -磚=砖 -磟=碌 -磠=硵 -磣=碜 -磧=碛 -磯=矶 -磽=硗 -礃=掌 -礄=硚 -礆=硷 -礎=础 -礙=碍 -礦=矿 -礪=砺 -礫=砾 -礬=矾 -礮=炮 -礱=砻 -礶=罐 -祐=右 -祕=秘 -祘=算 -祿=禄 -禍=祸 -禎=祯 -禕=祎 -禞=篙 -禡=祃 -禢=塌 -禦=御 -禩=祀 -禪=禅 -禮=礼 -禰=祢 -禱=祷 -禸=内 -禿=秃 -秇=执 -秈=籼 -秊=年 -秌=秋 -秏=耗 -秐=耘 -秔=粳 -秖=祇 -秝=禾 -秡=泼 -秥=拈 -秱=桐 -稅=税 -稈=秆 -稉=粳 -稜=棱 -稟=禀 -稤=掠 -稬=糯 -稭=秸 -種=种 -稱=称 -稲=蹈 -稵=滋 -稺=稚 -稾=稿 -穀=谷 -穅=糠 -穉=稚 -穌=稣 -積=积 -穎=颖 -穏=稳 -穠=秾 -穡=穑 -穢=秽 -穤=糯 -穨=颓 -穩=稳 -穫=获 -穭=稆 -穽=阱 -窂=牢 -窉=柄 -窓=窗 -窩=窝 -窪=洼 -窮=穷 -窯=窑 -窰=窑 -窵=窎 -窶=窭 -窷=聊 -窺=窥 -窻=窗 -窾=款 -竄=窜 -竅=窍 -竇=窦 -竈=灶 -竊=窃 -竒=奇 -竚=伫 -竝=并 -竢=俟 -竪=竖 -竲=蹭 -競=竞 -竾=篪 -笀=芒 -笁=工 -笗=冬 -笣=包 -笩=代 -笵=范 -筃=茵 -筆=笔 -筍=笋 -筎=茹 -筗=忠 -筞=策 -筧=笕 -筩=筒 -筭=算 -筯=箸 -筴=䇲 -筺=筐 -箁=菩 -箇=个 -箋=笺 -箌=倒 -箎=篪 -箏=筝 -箒=帚 -箘=菌 -箚=札 -箛=孤 -箠=垂 -箥=玻 -箶=胡 -箹=约 -節=节 -範=范 -築=筑 -篋=箧 -篔=筼 -篛=箬 -篜=蒸 -篠=筱 -篤=笃 -篨=除 -篩=筛 -篲=彗 -篳=筚 -簀=箦 -簃=移 -簆=筘 -簍=篓 -簑=蓑 -簒=篡 -簘=萧 -簞=箪 -簡=简 -簣=篑 -簫=箫 -簮=簪 -簰=牌 -簷=檐 -簹=筜 -簽=签 -簾=帘 -籃=篮 -籌=筹 -籐=藤 -籙=箓 -籛=篯 -籜=箨 -籟=籁 -籠=笼 -籤=签 -籨=奁 -籩=笾 -籪=簖 -籬=篱 -籮=箩 -籲=吁 -籿=村 -粀=杖 -粃=秕 -粄=饭 -粅=物 -粦=磷 -粧=妆 -粩=姥 -粵=粤 -糉=粽 -糊=煳 -糘=稼 -糝=糁 -糞=粪 -糧=粮 -糱=糵 -糲=粝 -糴=籴 -糵=孽 -糶=粜 -糸=纟 -糹=纟 -糼=攻 -糾=纠 -紀=纪 -紁=叉 -紂=纣 -紃=驯 -約=约 -紅=红 -紆=纡 -紇=纥 -紈=纨 -紉=纫 -紋=纹 -納=纳 -紐=纽 -紓=纾 -純=纯 -紕=纰 -紖=纼 -紗=纱 -紘=纮 -紙=纸 -級=级 -紛=纷 -紜=纭 -紝=纴 -紡=纺 -紥=扎 -紬=䌷 -紮=扎 -細=细 -紱=绂 -紲=绁 -紳=绅 -紵=纻 -紹=绍 -紺=绀 -紼=绋 -紿=绐 -絀=绌 -終=终 -絃=弦 -組=组 -絅=䌹 -絆=绊 -絎=绗 -絏=绁 -結=结 -絒=酬 -絕=绝 -絛=绦 -絝=绔 -絞=绞 -絡=络 -絢=绚 -給=给 -絨=绒 -絪=姻 -絰=绖 -統=统 -絲=丝 -絳=绛 -絶=绝 -絸=茧 -絹=绢 -綁=绑 -綃=绡 -綆=绠 -綈=绨 -綉=绣 -綌=绤 -綏=绥 -綑=捆 -經=经 -綜=综 -綞=缍 -綠=绿 -綢=绸 -綣=绻 -綫=线 -綬=绶 -維=维 -綯=绹 -綰=绾 -綱=纲 -網=网 -綳=绷 -綴=缀 -綵=彩 -綸=纶 -綹=绺 -綺=绮 -綻=绽 -綽=绰 -綾=绫 -綿=绵 -緄=绲 -緇=缁 -緊=紧 -緋=绯 -緐=繁 -緑=绿 -緒=绪 -緓=绬 -緔=绱 -緗=缃 -緘=缄 -緙=缂 -線=线 -緜=绵 -緝=缉 -緞=缎 -締=缔 -緡=缗 -緣=缘 -緥=褓 -緦=缌 -編=编 -緩=缓 -緬=缅 -緯=纬 -緱=缑 -緲=缈 -練=练 -緶=缏 -緹=缇 -緻=致 -縂=总 -縈=萦 -縉=缙 -縊=缢 -縋=缒 -縐=绉 -縑=缣 -縕=缊 -縗=缞 -縚=绦 -縛=缚 -縝=缜 -縞=缟 -縟=缛 -縣=县 -縧=绦 -縨=幌 -縫=缝 -縭=缡 -縮=缩 -縱=纵 -縲=缧 -縳=䌸 -縵=缦 -縶=絷 -縷=缕 -縹=缥 -總=总 -績=绩 -繃=绷 -繅=缫 -繆=缪 -繈=襁 -繒=缯 -織=织 -繕=缮 -繖=伞 -繚=缭 -繞=绕 -繡=绣 -繢=缋 -繦=襁 -繩=绳 -繪=绘 -繫=系 -繭=茧 -繮=缰 -繯=缳 -繰=缲 -繳=缴 -繸=䍁 -繹=绎 -繺=煞 -繼=继 -繽=缤 -繾=缱 -纇=颣 -纈=缬 -纊=纩 -續=续 -纍=累 -纏=缠 -纓=缨 -纖=纤 -纘=缵 -纜=缆 -缞=衰 -缽=钵 -缾=瓶 -罁=缸 -罇=樽 -罈=坛 -罌=罂 -罎=坛 -罏=垆 -罓=冈 -罞=茅 -罣=挂 -罰=罚 -罵=骂 -罷=罢 -罸=罚 -羅=罗 -羆=罴 -羈=羁 -羋=芈 -羕=漾 -羗=羌 -羙=美 -羢=绒 -羣=群 -羥=羟 -羨=羡 -義=义 -羱=源 -羴=膻 -羶=膻 -翄=翅 -習=习 -翫=玩 -翬=翚 -翶=翱 -翹=翘 -翺=翱 -翽=翙 -耈=耇 -耉=耇 -耡=锄 -耬=耧 -耮=耢 -聅=联 -聖=圣 -聙=睛 -聞=闻 -聯=联 -聰=聪 -聲=声 -聳=耸 -聵=聩 -聶=聂 -職=职 -聹=聍 -聼=听 -聽=听 -聾=聋 -肅=肃 -肎=肯 -肐=胳 -肔=池 -肗=汝 -肧=胚 -肬=疣 -肻=肯 -胒=尼 -胕=附 -胷=胸 -脃=脆 -脅=胁 -脇=胁 -脈=脉 -脊=嵴 -脕=晚 -脗=吻 -脛=胫 -脣=唇 -脫=脱 -脹=胀 -腁=胼 -腄=捶 -腎=肾 -腖=胨 -腡=脶 -腦=脑 -腫=肿 -腳=脚 -腷=逼 -腸=肠 -膁=肷 -膃=腽 -膆=嗉 -膓=肠 -膕=腘 -膚=肤 -膠=胶 -膤=雪 -膩=腻 -膽=胆 -膾=脍 -膿=脓 -臈=腊 -臉=脸 -臋=臀 -臍=脐 -臏=膑 -臒=癯 -臕=膘 -臘=腊 -臙=胭 -臚=胪 -臝=裸 -臟=脏 -臠=脔 -臢=臜 -臥=卧 -臨=临 -臯=皋 -臱=旁 -臸=至 -臺=台 -舃=舄 -與=与 -興=兴 -舉=举 -舊=旧 -舎=舍 -舖=铺 -舗=铺 -舘=馆 -舙=舌 -舝=辖 -舩=船 -艙=舱 -艢=樯 -艣=橹 -艤=舣 -艦=舰 -艪=橹 -艫=舻 -艱=艰 -艷=艳 -艸=艹 -芉=竿 -芐=下 -芢=仁 -芣=不 -芲=花 -芶=勾 -芻=刍 -苆=切 -苉=匹 -苎=苧 -苐=第 -苝=北 -苧=苎 -苸=呼 -苺=莓 -茐=葱 -茖=各 -茘=荔 -茲=兹 -茿=筑 -荅=答 -荊=荆 -荍=收 -荕=筋 -荖=老 -荝=则 -荢=宇 -荰=杜 -荳=豆 -荴=扶 -荶=吟 -荹=步 -荿=成 -莁=巫 -莂=别 -莇=助 -莈=没 -莊=庄 -莋=做 -莏=抄 -莑=蓬 -莕=荇 -莖=茎 -莢=荚 -莣=忘 -莧=苋 -莮=男 -菈=拉 -菋=味 -菓=果 -菗=抽 -菢=抱 -菦=近 -菭=治 -菮=庚 -華=华 -菴=庵 -菸=烟 -菿=到 -萇=苌 -萉=肥 -萊=莱 -萚=择 -萠=萌 -萣=定 -萪=科 -萫=香 -萬=万 -萭=万 -萯=负 -萲=萱 -萵=莴 -萷=削 -萹=篇 -萺=冒 -萿=活 -葀=括 -葁=姜 -葃=昨 -葉=叶 -葒=荭 -葓=洪 -葠=参 -葢=盖 -葤=荮 -葦=苇 -葮=锻 -葯=药 -葰=所 -葲=泉 -葷=荤 -葾=怨 -葿=眉 -蒄=冠 -蒓=莼 -蒔=莳 -蒛=缺 -蒝=愿 -蒞=莅 -蒢=滁 -蒤=途 -蒩=租 -蒼=苍 -蓀=荪 -蓅=流 -蓆=席 -蓈=榔 -蓋=盖 -蓒=轩 -蓕=桂 -蓙=座 -蓜=配 -蓡=參 -蓢=廊 -蓧=莜 -蓮=莲 -蓯=苁 -蓱=萍 -蓳=董 -蓴=莼 -蓷=推 -蓸=曹 -蓽=荜 -蔀=部 -蔂=累 -蔆=菱 -蔉=滚 -蔋=淑 -蔍=鹿 -蔎=设 -蔔=卜 -蔕=蒂 -蔘=参 -蔞=蒌 -蔠=终 -蔣=蒋 -蔥=葱 -蔦=茑 -蔭=荫 -蔵=藏 -蕁=荨 -蕅=藕 -蕆=蒇 -蕋=蕊 -蕎=荞 -蕏=猪 -蕐=哗 -蕒=荬 -蕓=芸 -蕔=报 -蕕=莸 -蕗=露 -蕘=荛 -蕚=萼 -蕜=悲 -蕝=绝 -蕢=蒉 -蕥=雅 -蕩=荡 -蕪=芜 -蕭=萧 -蕯=萨 -蕶=零 -蕷=蓣 -蕿=萱 -薀=蕰 -薈=荟 -薊=蓟 -薌=芗 -薑=姜 -薔=蔷 -薘=荙 -薟=莶 -薦=荐 -薩=萨 -薴=苧 -薵=筹 -薺=荠 -藂=聚 -藅=罚 -藍=蓝 -藎=荩 -藙=毅 -藝=艺 -藞=磊 -藥=药 -藪=薮 -藴=蕴 -藶=苈 -藷=薯 -藹=蔼 -藺=蔺 -藼=萱 -蘀=萚 -蘂=蕊 -蘄=蕲 -蘆=芦 -蘇=苏 -蘊=蕴 -蘋=苹 -蘐=萱 -蘓=苏 -蘚=藓 -蘞=蔹 -蘢=茏 -蘤=花 -蘭=兰 -蘶=巍 -蘺=蓠 -蘿=萝 -虆=蔂 -處=处 -虖=呼 -虛=虚 -虜=虏 -號=号 -虧=亏 -虯=虬 -虵=蛇 -蚘=蛔 -蚡=鼢 -蚦=蚺 -蛕=蛔 -蛧=网 -蛫=跪 -蛬=蚕 -蛺=蛱 -蛻=蜕 -蜆=蚬 -蜋=螂 -蜖=蛔 -蜨=蝶 -蜯=蚌 -蜺=霓 -蝂=版 -蝕=蚀 -蝟=猬 -蝦=虾 -蝨=虱 -蝯=猿 -蝱=虻 -蝸=蜗 -螄=蛳 -螎=融 -螘=蚁 -螙=蠹 -螞=蚂 -螡=蚊 -螢=萤 -螻=蝼 -螾=蚓 -螿=螀 -蟁=蚊 -蟄=蛰 -蟇=蟆 -蟈=蝈 -蟎=螨 -蟣=虮 -蟬=蝉 -蟯=蛲 -蟲=虫 -蟶=蛏 -蟻=蚁 -蠅=蝇 -蠆=虿 -蠍=蝎 -蠏=蟹 -蠐=蛴 -蠑=蝾 -蠒=茧 -蠔=蚝 -蠟=蜡 -蠣=蛎 -蠧=蠹 -蠨=蟏 -蠭=蜂 -蠱=蛊 -蠶=蚕 -蠻=蛮 -衂=衄 -衆=众 -衇=脉 -衒=炫 -術=术 -衕=同 -衖=弄 -衚=胡 -衛=卫 -衝=冲 -衞=卫 -衹=只 -衺=邪 -袉=鸵 -袑=绍 -袓=祖 -袞=衮 -袵=衽 -裊=袅 -裌=夹 -裏=里 -裑=身 -補=补 -裝=装 -裠=裙 -裡=里 -裩=裈 -製=制 -褃=裉 -複=复 -褌=裈 -褘=袆 -褭=袅 -褲=裤 -褳=裢 -褸=褛 -褻=亵 -襃=褒 -襆=幞 -襇=裥 -襉=裥 -襍=杂 -襏=袯 -襖=袄 -襝=裣 -襠=裆 -襤=褴 -襪=袜 -襬=摆 -襯=衬 -襲=袭 -襴=襕 -覀=西 -覇=霸 -覈=核 -覊=羁 -見=见 -覎=觃 -規=规 -覓=觅 -覔=觅 -視=视 -覘=觇 -覡=觋 -覥=觍 -覦=觎 -覩=睹 -親=亲 -覬=觊 -覯=觏 -覰=觑 -覲=觐 -覷=觑 -覺=觉 -覽=览 -覿=觌 -觀=观 -觔=斤 -觝=抵 -觧=解 -觴=觞 -觶=觯 -觸=触 -訁=讠 -訂=订 -訃=讣 -計=计 -訊=讯 -訌=讧 -討=讨 -訐=讦 -訒=讱 -訓=训 -訕=讪 -訖=讫 -託=讬 -記=记 -訛=讹 -訝=讶 -訟=讼 -訢=䜣 -訣=诀 -訤=驳 -訥=讷 -訩=讻 -訪=访 -訬=吵 -設=设 -許=许 -訴=诉 -訶=诃 -訷=伸 -診=诊 -註=注 -証=证 -詁=诂 -詆=诋 -詎=讵 -詐=诈 -詒=诒 -詔=诏 -評=评 -詖=诐 -詗=诇 -詘=诎 -詛=诅 -詞=词 -詠=咏 -詡=诩 -詢=询 -詣=诣 -試=试 -詧=察 -詩=诗 -詫=诧 -詬=诟 -詭=诡 -詮=诠 -詰=诘 -話=话 -該=该 -詳=详 -詵=诜 -詶=州 -詻=洛 -詼=诙 -詿=诖 -誄=诔 -誅=诛 -誆=诓 -誇=夸 -誌=志 -認=认 -誑=诳 -誒=诶 -誕=诞 -誖=悖 -誘=诱 -誚=诮 -語=语 -誠=诚 -誡=诫 -誣=诬 -誤=误 -誥=诰 -誦=诵 -誧=哺 -誨=诲 -說=说 -説=说 -誯=昌 -誰=谁 -課=课 -誶=谇 -誹=诽 -誼=谊 -誾=訚 -調=调 -諂=谄 -諄=谆 -諆=棋 -談=谈 -諉=诿 -請=请 -諍=诤 -諏=诹 -諐=愆 -諑=诼 -諒=谅 -論=论 -諗=谂 -諛=谀 -諜=谍 -諝=谞 -諞=谝 -諟=堤 -諠=喧 -諡=谥 -諢=诨 -諤=谔 -諦=谛 -諧=谐 -諨=幅 -諫=谏 -諭=谕 -諮=谘 -諱=讳 -諳=谙 -諴=诚 -諶=谌 -諷=讽 -諸=诸 -諺=谚 -諼=谖 -諾=诺 -謀=谋 -謁=谒 -謂=谓 -謄=誊 -謅=诌 -謊=谎 -謌=歌 -謍=誉 -謎=谜 -謐=谧 -謔=谑 -謖=谡 -謗=谤 -謙=谦 -謚=谥 -講=讲 -謝=谢 -謠=谣 -謡=谣 -謨=谟 -謩=谟 -謫=谪 -謬=谬 -謭=谫 -謳=讴 -謸=傲 -謹=谨 -謾=谩 -謿=嘲 -譁=哗 -譆=嘻 -證=证 -譌=讹 -譎=谲 -譏=讥 -譒=播 -譔=撰 -譖=谮 -識=识 -譙=谯 -譚=谭 -譜=谱 -譟=噪 -譫=谵 -譭=毁 -譯=译 -議=议 -譴=谴 -護=护 -譸=诪 -譽=誉 -譾=谫 -讀=读 -讁=谪 -讅=审 -變=变 -讋=詟 -讌=宴 -讎=雠 -讐=雠 -讒=谗 -讓=让 -讕=谰 -讖=谶 -讚=赞 -讜=谠 -讞=谳 -谉=审 -谘=咨 -豈=岂 -豎=竖 -豐=丰 -豓=艳 -豔=艳 -豞=狗 -豩=逐 -豬=猪 -豶=豮 -貍=狸 -貓=猫 -貛=獾 -貝=贝 -貞=贞 -貟=贠 -負=负 -財=财 -貢=贡 -貧=贫 -貨=货 -販=贩 -貪=贪 -貫=贯 -責=责 -貯=贮 -貰=贳 -貲=赀 -貳=贰 -貴=贵 -貶=贬 -買=买 -貸=贷 -貺=贶 -費=费 -貼=贴 -貽=贻 -貿=贸 -賀=贺 -賁=贲 -賂=赂 -賃=赁 -賄=贿 -賅=赅 -資=资 -賈=贾 -賉=恤 -賊=贼 -賍=赃 -賑=赈 -賒=赊 -賓=宾 -賕=赇 -賗=串 -賙=赒 -賚=赉 -賛=赞 -賜=赐 -賞=赏 -賠=赔 -賡=赓 -賢=贤 -賣=卖 -賤=贱 -賦=赋 -賧=赕 -質=质 -賫=赍 -賬=账 -賭=赌 -賴=赖 -賵=赗 -賷=赍 -賸=剩 -賺=赚 -賻=赙 -購=购 -賽=赛 -賾=赜 -贄=贽 -贅=赘 -贇=赟 -贈=赠 -贊=赞 -贋=赝 -贍=赡 -贏=赢 -贐=赆 -贑=贛 -贓=赃 -贔=赑 -贖=赎 -贗=赝 -贛=赣 -贜=赃 -赑=贝 -赬=赪 -赽=块 -趂=趁 -趉=走 -趐=翅 -趕=赶 -趙=赵 -趚=速 -趦=趑 -趧=题 -趨=趋 -趫=超 -趬=翘 -趭=瞧 -趲=趱 -跕=沾 -跡=迹 -跥=跺 -跩=拽 -跴=踩 -跿=陡 -踁=胫 -踐=践 -踡=蜷 -踭=争 -踰=逾 -踴=踊 -蹆=腿 -蹌=跄 -蹍=展 -蹏=蹄 -蹓=溜 -蹔=暂 -蹕=跸 -蹜=宿 -蹟=迹 -蹠=跖 -蹣=蹒 -蹤=踪 -蹧=糟 -蹵=蹴 -蹺=跷 -躂=跶 -躉=趸 -躊=踌 -躋=跻 -躍=跃 -躑=踯 -躒=跞 -躓=踬 -躕=蹰 -躚=跹 -躡=蹑 -躥=蹿 -躦=躜 -躪=躏 -躭=耽 -躱=躲 -躳=躬 -躶=裸 -軀=躯 -軆=体 -車=车 -軋=轧 -軌=轨 -軍=军 -軑=轪 -軒=轩 -軔=轫 -軛=轭 -軟=软 -軤=轷 -軫=轸 -軲=轱 -軸=轴 -軹=轵 -軺=轺 -軻=轲 -軼=轶 -軾=轼 -較=较 -輅=辂 -輇=辁 -輈=辀 -載=载 -輊=轾 -輒=辄 -輓=挽 -輔=辅 -輕=轻 -輙=辄 -輛=辆 -輜=辎 -輝=辉 -輞=辋 -輟=辍 -輥=辊 -輦=辇 -輩=辈 -輪=轮 -輬=辌 -輭=软 -輯=辑 -輳=辏 -輸=输 -輻=辐 -輾=辗 -輿=舆 -轀=辒 -轂=毂 -轄=辖 -轅=辕 -轆=辘 -轉=转 -轍=辙 -轎=轿 -轔=辚 -轟=轰 -轡=辔 -轢=轹 -轤=轳 -辠=罪 -辢=辣 -辤=辞 -辦=办 -辧=辨 -辭=辞 -辮=辫 -辯=辩 -農=农 -辳=农 -辴=冁 -迀=干 -迆=迤 -迉=尸 -迊=迎 -迋=逛 -迖=达 -迡=呢 -迣=世 -迯=逃 -迴=回 -迻=移 -逈=迥 -逕=迳 -這=这 -連=连 -逥=回 -逩=奔 -逬=迸 -週=周 -進=进 -逷=逖 -逺=远 -遉=侦 -遊=游 -運=运 -過=过 -達=达 -違=违 -遖=南 -遙=遥 -遜=逊 -遝=沓 -遞=递 -遠=远 -遡=溯 -遦=惯 -適=适 -遯=遁 -遲=迟 -遶=绕 -遷=迁 -選=选 -遺=遗 -遼=辽 -邁=迈 -還=还 -邇=迩 -邊=边 -邏=逻 -邐=逦 -郉=邢 -郟=郏 -郤=郄 -郰=邓 -郵=邮 -鄆=郓 -鄉=乡 -鄒=邹 -鄔=邬 -鄖=郧 -鄧=邓 -鄭=郑 -鄰=邻 -鄲=郸 -鄴=邺 -鄶=郐 -鄺=邝 -酇=酂 -酈=郦 -酔=醉 -酧=酬 -酨=栽 -醃=腌 -醕=醇 -醖=酝 -醜=丑 -醞=酝 -醣=糖 -醫=医 -醬=酱 -醯=酰 -醱=酦 -醻=酬 -醼=宴 -醿=醾 -釀=酿 -釁=衅 -釃=酾 -釅=酽 -釋=释 -釐=厘 -釒=钅 -釓=钆 -釔=钇 -釕=钌 -釗=钊 -釘=钉 -釙=钋 -針=针 -釡=斧 -釢=乃 -釣=钓 -釤=钐 -釦=扣 -釧=钏 -釩=钒 -釬=焊 -釭=肛 -釵=钗 -釷=钍 -釹=钕 -釺=钎 -釿=斤 -鈀=钯 -鈁=钫 -鈃=钘 -鈄=钭 -鈅=钥 -鈆=铅 -鈈=钚 -鈉=钠 -鈍=钝 -鈎=钩 -鈐=钤 -鈑=钣 -鈒=钑 -鈔=钞 -鈕=钮 -鈞=钧 -鈣=钙 -鈥=钬 -鈦=钛 -鈧=钪 -鈫=纹 -鈮=铌 -鈰=铈 -鈳=钶 -鈴=铃 -鈷=钴 -鈸=钹 -鈹=铍 -鈺=钰 -鈽=钸 -鈾=铀 -鈿=钿 -鉀=钾 -鉄=铁 -鉅=钜 -鉆=钻 -鉈=铊 -鉉=铉 -鉋=铇 -鉍=铋 -鉏=锄 -鉑=铂 -鉕=钷 -鉗=钳 -鉚=铆 -鉛=铅 -鉞=钺 -鉢=钵 -鉤=钩 -鉦=钲 -鉬=钼 -鉭=钽 -鉮=神 -鉲=卡 -鉶=铏 -鉸=铰 -鉺=铒 -鉻=铬 -鉽=式 -鉿=铪 -銀=银 -銃=铳 -銅=铜 -銍=铚 -銑=铣 -銓=铨 -銕=铁 -銖=铢 -銘=铭 -銚=铫 -銛=铦 -銜=衔 -銠=铑 -銣=铷 -銥=铱 -銦=铟 -銨=铵 -銩=铥 -銪=铕 -銫=铯 -銬=铐 -銰=艾 -銱=铞 -銲=焊 -銳=锐 -銷=销 -銹=锈 -銻=锑 -銼=锉 -鋁=铝 -鋂=镅 -鋃=锒 -鋅=锌 -鋇=钡 -鋌=铤 -鋏=铗 -鋒=锋 -鋖=妥 -鋙=铻 -鋝=锊 -鋟=锓 -鋣=铘 -鋤=锄 -鋥=锃 -鋦=锔 -鋨=锇 -鋩=铓 -鋪=铺 -鋭=锐 -鋮=铖 -鋯=锆 -鋰=锂 -鋱=铽 -鋶=锍 -鋸=锯 -鋼=钢 -鋽=掉 -錁=锞 -錄=录 -錆=锖 -錇=锫 -錈=锩 -錏=铔 -錐=锥 -錒=锕 -錕=锟 -錘=锤 -錙=锱 -錚=铮 -錛=锛 -錞=醇 -錟=锬 -錠=锭 -錡=锜 -錢=钱 -錦=锦 -錨=锚 -錩=锠 -錫=锡 -錮=锢 -錯=错 -録=录 -錳=锰 -錶=表 -錸=铼 -錼=镎 -鍀=锝 -鍁=锨 -鍃=锪 -鍆=钔 -鍇=锴 -鍈=锳 -鍋=锅 -鍍=镀 -鍔=锷 -鍘=铡 -鍚=钖 -鍛=锻 -鍠=锽 -鍤=锸 -鍥=锲 -鍩=锘 -鍫=锹 -鍬=锹 -鍰=锾 -鍳=鉴 -鍴=端 -鍵=键 -鍶=锶 -鍺=锗 -鍼=针 -鍾=锺 -鎂=镁 -鎄=锿 -鎅=界 -鎇=镅 -鎊=镑 -鎌=镰 -鎍=索 -鎔=镕 -鎖=锁 -鎗=枪 -鎘=镉 -鎚=锤 -鎛=镈 -鎟=桑 -鎡=镃 -鎢=钨 -鎣=蓥 -鎦=镏 -鎧=铠 -鎩=铩 -鎪=锼 -鎬=镐 -鎮=镇 -鎰=镒 -鎲=镋 -鎳=镍 -鎵=镓 -鎸=镌 -鎹=送 -鎻=锁 -鎿=镎 -鏃=镞 -鏇=镟 -鏈=链 -鏌=镆 -鏍=镙 -鏐=镠 -鏑=镝 -鏗=铿 -鏘=锵 -鏜=镗 -鏝=镘 -鏞=镛 -鏟=铲 -鏡=镜 -鏢=镖 -鏤=镂 -鏨=錾 -鏰=镚 -鏵=铧 -鏷=镤 -鏹=镪 -鏽=锈 -鐃=铙 -鐋=铴 -鐐=镣 -鐒=铹 -鐓=镦 -鐔=镡 -鐘=钟 -鐙=镫 -鐝=镢 -鐠=镨 -鐦=锎 -鐧=锏 -鐨=镄 -鐫=镌 -鐮=镰 -鐰=糙 -鐲=镯 -鐳=镭 -鐴=避 -鐵=铁 -鐶=镮 -鐸=铎 -鐺=铛 -鐿=镱 -鑀=锿 -鑄=铸 -鑊=镬 -鑌=镔 -鑑=鉴 -鑒=鉴 -鑔=镲 -鑕=锧 -鑚=钻 -鑛=矿 -鑞=镴 -鑠=铄 -鑣=镳 -鑤=刨 -鑥=镥 -鑭=镧 -鑰=钥 -鑱=镵 -鑲=镶 -鑵=罐 -鑷=镊 -鑹=镩 -鑼=锣 -鑽=钻 -鑾=銮 -鑿=凿 -钁=镢 -钂=镋 -钜=鉅 -铇=刨 -镚=崩 -镟=碹 -镵=馋 -長=长 -門=门 -閁=闪 -閂=闩 -閃=闪 -閄=门 -閆=闫 -閈=闬 -閉=闭 -開=开 -閌=闶 -閎=闳 -閏=闰 -閑=闲 -閒=闲 -間=间 -閔=闵 -閘=闸 -閙=闹 -閞=开 -閡=阂 -関=关 -閣=阁 -閥=阀 -閨=闺 -閩=闽 -閫=阃 -閬=阆 -閭=闾 -閱=阅 -閲=阅 -閶=阊 -閷=刹 -閹=阉 -閻=阎 -閼=阏 -閽=阍 -閾=阈 -閿=阌 -闃=阒 -闆=板 -闈=闱 -闊=阔 -闋=阕 -闌=阑 -闍=阇 -闐=阗 -闒=阘 -闓=闿 -闔=阖 -闕=阙 -闖=闯 -闚=窥 -關=关 -闝=嫖 -闞=阚 -闠=阓 -闡=阐 -闢=辟 -闤=阛 -闥=闼 -阣=吃 -阨=厄 -阪=坂 -阬=坑 -阯=址 -陏=隋 -陗=峭 -陘=陉 -陝=陕 -陣=阵 -陥=馅 -陰=阴 -陳=陈 -陸=陆 -険=险 -陻=堙 -陼=堵 -陽=阳 -隂=阴 -隄=堤 -隉=陧 -隊=队 -階=阶 -隕=陨 -隖=坞 -際=际 -隟=隙 -隢=饶 -隣=邻 -隨=随 -險=险 -隱=隐 -隴=陇 -隷=隶 -隸=隶 -隻=只 -雋=隽 -雖=虽 -雙=双 -雛=雏 -雜=杂 -雝=雍 -雞=鸡 -離=离 -難=难 -雲=云 -電=电 -霚=雾 -霛=灵 -霡=脉 -霢=霡 -霤=溜 -霧=雾 -霩=廓 -霽=霁 -靂=雳 -靃=霍 -靄=霭 -靆=叇 -靈=灵 -靉=叆 -靚=靓 -靜=静 -靣=面 -靦=腼 -靨=靥 -靭=韧 -靱=韧 -鞀=鼗 -鞉=鼗 -鞌=鞍 -鞏=巩 -鞝=绱 -鞵=鞋 -鞽=鞒 -韁=缰 -韃=鞑 -韈=袜 -韉=鞯 -韋=韦 -韌=韧 -韍=韨 -韓=韩 -韙=韪 -韜=韬 -韝=鞴 -韞=韫 -韤=袜 -韮=韭 -韻=韵 -響=响 -頁=页 -頂=顶 -頃=顷 -項=项 -順=顺 -頇=顸 -須=须 -頊=顼 -頌=颂 -頎=颀 -頏=颃 -預=预 -頑=顽 -頒=颁 -頓=顿 -頗=颇 -領=领 -頙=项 -頜=颌 -頟=额 -頡=颉 -頤=颐 -頦=颏 -頭=头 -頮=颒 -頰=颊 -頲=颋 -頴=颕 -頷=颔 -頸=颈 -頹=颓 -頻=频 -頼=赖 -頽=颓 -顆=颗 -顋=腮 -題=题 -額=额 -顎=颚 -顏=颜 -顒=颙 -顓=颛 -顔=颜 -願=愿 -顙=颡 -顛=颠 -類=类 -顢=颟 -顥=颢 -顦=憔 -顧=顾 -顫=颤 -顬=颥 -顯=显 -顰=颦 -顱=颅 -顳=颞 -顴=颧 -颕=颖 -風=风 -颩=风 -颭=飐 -颮=飑 -颯=飒 -颱=台 -颳=刮 -颶=飓 -颸=飔 -颺=飏 -颻=飖 -颼=飕 -飀=飗 -飃=飘 -飄=飘 -飆=飚 -飈=飚 -飚=飙 -飛=飞 -飜=翻 -飠=饣 -飢=饥 -飣=饤 -飤=饲 -飥=饦 -飩=饨 -飪=饪 -飫=饫 -飭=饬 -飮=饮 -飯=饭 -飱=飧 -飲=饮 -飴=饴 -飺=糍 -飼=饲 -飽=饱 -飾=饰 -飿=饳 -餀=哎 -餁=饪 -餃=饺 -餄=饸 -餅=饼 -餈=糍 -餉=饷 -養=养 -餌=饵 -餎=饹 -餏=饻 -餑=饽 -餒=馁 -餓=饿 -餕=馂 -餖=饾 -餘=馀 -餚=肴 -餛=馄 -餜=馃 -餞=饯 -餡=馅 -餧=喂 -館=馆 -餬=糊 -餱=糇 -餳=饧 -餵=喂 -餶=馉 -餷=馇 -餹=糖 -餺=馎 -餻=糕 -餼=饩 -餽=馈 -餾=馏 -餿=馊 -饁=馌 -饃=馍 -饅=馒 -饈=馐 -饉=馑 -饊=馓 -饋=馈 -饌=馔 -饍=膳 -饑=饥 -饒=饶 -饗=飨 -饜=餍 -饝=馍 -饞=馋 -饟=饷 -饢=馕 -饤=盯 -馀=余 -馬=马 -馭=驭 -馮=冯 -馱=驮 -馳=驰 -馴=驯 -馶=驶 -馹=驲 -馿=驴 -駁=驳 -駆=驱 -駈=驱 -駐=驻 -駑=驽 -駒=驹 -駔=驵 -駕=驾 -駘=骀 -駙=驸 -駛=驶 -駝=驼 -駞=驼 -駟=驷 -駡=骂 -駢=骈 -駦=藤 -駭=骇 -駮=驳 -駰=骃 -駱=骆 -駸=骎 -駿=骏 -騁=骋 -騂=骍 -騅=骓 -騌=骔 -騍=骒 -騎=骑 -騏=骐 -騐=验 -騒=骚 -験=验 -騖=骛 -騗=骗 -騙=骗 -騣=鬃 -騤=骙 -騧=䯄 -騫=骞 -騭=骘 -騮=骝 -騰=腾 -騶=驺 -騷=骚 -騸=骟 -騾=骡 -驀=蓦 -驁=骜 -驂=骖 -驃=骠 -驄=骢 -驅=驱 -驊=骅 -驌=骕 -驍=骁 -驏=骣 -驕=骄 -驗=验 -驘=骡 -驚=惊 -驛=驿 -驟=骤 -驢=驴 -驤=骧 -驥=骥 -驦=骦 -驪=骊 -驫=骉 -骉=马 -骔=鬃 -骯=肮 -骼=胳 -骾=鲠 -髈=膀 -髊=搓 -髏=髅 -髒=脏 -體=体 -髕=髌 -髖=髋 -髠=髡 -髣=仿 -髥=髯 -髩=鬓 -髮=发 -髴=佛 -鬀=剃 -鬁=疬 -鬂=鬓 -鬆=松 -鬉=鬃 -鬍=胡 -鬚=须 -鬢=鬓 -鬥=斗 -鬦=斗 -鬧=闹 -鬨=闹 -鬩=阋 -鬪=斗 -鬭=斗 -鬮=阄 -鬰=郁 -鬱=郁 -鬴=釜 -魊=蜮 -魎=魉 -魘=魇 -魚=鱼 -魛=鱽 -魢=鱾 -魨=鲀 -魯=鲁 -魴=鲂 -魷=鱿 -魺=鲄 -鮁=鲅 -鮃=鲆 -鮊=鲌 -鮋=鲉 -鮍=鲏 -鮎=鲇 -鮐=鲐 -鮑=鲍 -鮒=鲋 -鮓=鲊 -鮚=鲒 -鮜=鲘 -鮝=鲞 -鮞=鲕 -鮟=安 -鮦=鲖 -鮪=鲔 -鮫=鲛 -鮭=鲑 -鮮=鲜 -鮳=鲓 -鮶=鲪 -鮺=鲝 -鯀=鲧 -鯁=鲠 -鯇=鲩 -鯉=鲤 -鯊=鲨 -鯒=鲬 -鯔=鲻 -鯕=鲯 -鯖=鲭 -鯗=鲞 -鯛=鲷 -鯝=鲴 -鯡=鲱 -鯢=鲵 -鯤=鲲 -鯧=鲳 -鯨=鲸 -鯪=鲮 -鯫=鲰 -鯰=鲶 -鯴=鲺 -鯵=鲹 -鯷=鳀 -鯽=鲫 -鯿=鳊 -鰁=鳈 -鰂=鲗 -鰃=鳂 -鰈=鲽 -鰉=鳇 -鰌=鳅 -鰍=鳅 -鰏=鲾 -鰐=鳄 -鰒=鳆 -鰓=鳃 -鰛=鳁 -鰜=鳒 -鰟=鳑 -鰠=鳋 -鰣=鲥 -鰥=鳏 -鰨=鳎 -鰩=鳐 -鰭=鳍 -鰮=鳁 -鰱=鲢 -鰲=鳌 -鰳=鳓 -鰵=鳘 -鰷=鲦 -鰹=鲣 -鰺=鲹 -鰻=鳗 -鰼=鳛 -鰾=鳔 -鱂=鳉 -鱅=鳙 -鱈=鳕 -鱉=鳖 -鱏=鲟 -鱒=鳟 -鱓=鳝 -鱔=鳝 -鱖=鳜 -鱗=鳞 -鱘=鲟 -鱝=鲼 -鱟=鲎 -鱠=鲙 -鱣=鳣 -鱤=鳡 -鱧=鳢 -鱨=鲿 -鱭=鲚 -鱯=鳠 -鱷=鳄 -鱸=鲈 -鱺=鲡 -鱻=鲜 -鳥=鸟 -鳧=凫 -鳩=鸠 -鳬=凫 -鳯=凤 -鳲=鸤 -鳳=凤 -鳴=鸣 -鳶=鸢 -鳾=䴓 -鴆=鸩 -鴇=鸨 -鴈=雁 -鴉=鸦 -鴒=鸰 -鴕=鸵 -鴛=鸳 -鴝=鸲 -鴞=鸮 -鴟=鸱 -鴣=鸪 -鴦=鸯 -鴨=鸭 -鴬=鸴 -鴯=鸸 -鴰=鸹 -鴴=鸻 -鴷=䴕 -鴻=鸿 -鴿=鸽 -鵁=䴔 -鵂=鸺 -鵃=鸼 -鵐=鹀 -鵑=鹃 -鵒=鹆 -鵓=鹁 -鵜=鹈 -鵝=鹅 -鵞=鹅 -鵠=鹄 -鵡=鹉 -鵪=鹌 -鵬=鹏 -鵮=鹐 -鵯=鹎 -鵰=雕 -鵲=鹊 -鵶=鸦 -鵷=鹓 -鵾=鹍 -鶄=䴖 -鶇=鸫 -鶉=鹑 -鶊=鹒 -鶏=鸡 -鶓=鹋 -鶖=鹙 -鶘=鹕 -鶚=鹗 -鶡=鹖 -鶤=鹍 -鶥=鹛 -鶩=鹜 -鶪=䴗 -鶬=鸧 -鶯=莺 -鶲=鹟 -鶴=鹤 -鶹=鹠 -鶺=鹡 -鶻=鹘 -鶼=鹣 -鶿=鹚 -鷀=鹚 -鷁=鹢 -鷂=鹞 -鷄=鸡 -鷈=䴘 -鷊=鹝 -鷓=鹧 -鷖=鹥 -鷗=鸥 -鷙=鸷 -鷚=鹨 -鷥=鸶 -鷦=鹪 -鷫=鹔 -鷯=鹩 -鷰=燕 -鷲=鹫 -鷳=鹇 -鷴=鹇 -鷸=鹬 -鷹=鹰 -鷺=鹭 -鷽=鸴 -鷿=䴙 -鸇=鹯 -鸌=鹱 -鸎=莺 -鸏=鹲 -鸕=鸬 -鸘=鹴 -鸚=鹦 -鸛=鹳 -鸝=鹂 -鸞=鸾 -鹵=卤 -鹹=咸 -鹺=鹾 -鹻=碱 -鹼=硷 -鹽=盐 -麁=粗 -麅=狍 -麐=麟 -麕=麇 -麗=丽 -麞=獐 -麤=粗 -麥=麦 -麩=麸 -麪=面 -麵=面 -麼=么 -麽=么 -黃=黄 -黌=黉 -點=点 -黨=党 -黲=黪 -黴=霉 -黶=黡 -黷=黩 -黽=黾 -黿=鼋 -鼂=鼌 -鼃=蛙 -鼇=鳌 -鼈=鳖 -鼉=鼍 -鼔=鼓 -鼡=用 -鼦=貂 -鼴=鼹 -齇=齄 -齊=齐 -齋=斋 -齎=赍 -齏=齑 -齒=齿 -齔=龀 -齕=龁 -齗=龂 -齙=龅 -齜=龇 -齟=龃 -齠=龆 -齡=龄 -齦=龈 -齧=啮 -齩=咬 -齪=龊 -齬=龉 -齰=醋 -齲=龋 -齶=腭 -齷=龌 -龍=龙 -龎=厐 -龐=庞 -龔=龚 -龕=龛 -龜=龟 -龞=鳖 -龢=和 -︰=﹕ -︵=《 -︶=》 -︷=《 -︸=》 -︹=《 -︺=》 -︻=《 -︼=》 -︽=《 -︾=》 -︿=《 -﹀=》 -﹁=《 -﹂=》 -﹃=《 -﹄=》 -﹝=《 -﹞=》 -﹢=+ -﹤=《 -﹦== -﹩=$ -﹪=% -﹫=@ -!=! -?=? -/=/ -、=, -%=% -(=( -)=) -,=, -.=. -0=0 -1=1 -2=2 -3=3 -4=4 -5=5 -6=6 -7=7 -8=8 -9=9 -A=a -B=b -C=c -D=d -E=e -F=f -G=g -H=h -I=i -J=j -K=k -L=l -M=m -N=n -O=o -P=p -Q=q -R=r -S=s -T=t -U=u -V=v -W=w -X=x -Y=y -Z=z -a=a -b=b -c=c -d=d -e=e -f=f -g=g -h=h -i=i -j=j -k=k -l=l -m=m -n=n -o=o -p=p -q=q -r=r -s=s -t=t -u=u -v=v -w=w -x=x -y=y -z=z -º=0 -¹=1 -²=2 -³=3 -⁴=4 -⁵=5 -⁶=6 -⁷=7 -⁸=8 -⁹=9 -₀=0 -₁=1 -₂=2 -₃=3 -₄=4 -₅=5 -₆=6 -₇=7 -₈=8 -₉=9 -ⁿ=n -:=: -"=" -#=# -$=$ -&=& -'=' -*=* -+=+ --=- -;=; -<=《 -=== ->=》 -@=@ -[=《 -\=\ -]=》 -^=^ -_=_ -`=` -{=《 -|=| -}=》 -~=~ diff --git a/launchers/standalone/src/test/resources/data/dictionary/other/TagPKU98.csv b/launchers/standalone/src/test/resources/data/dictionary/other/TagPKU98.csv deleted file mode 100644 index c9268b302..000000000 --- a/launchers/standalone/src/test/resources/data/dictionary/other/TagPKU98.csv +++ /dev/null @@ -1,44 +0,0 @@ -序号,代码,名称,帮助记忆的诠释,例子及注解 -1,Ag,形语素,形容词性语素。形容词代码为a,语素代码g前面置以A。,绿色/n 似/d 锦/Ag , -2,a,形容词,取英语形容词adjective的第1个字母,[重要/a 步伐/n]NP ,美丽/a ,看似/v 抽象/a , -3,ad,副形词,直接作状语的形容词。形容词代码a和副词代码d并在一起。,[积极/ad 谋求/v]V-ZZ ,幻象/n 易/ad 逝/Vg , -4,an,名形词,具有名词功能的形容词。形容词代码a和名词代码n并在一起。,[外交/n 和/c 安全/an]NP-BL , -5,Bg,区别语素,区别词性语素。区别词代码为b,语素代码g前面置以B。,赤/Ag 橙/Bg 黄/a 绿/a 青/a 蓝/a 紫/a , -6,b,区别词,取汉字“别”的声母。,女/b 司机/n, 金/b 手镯/n, 慢性/b 胃炎/n, 古/b 钱币/n, 副/b 主任/n, 总/b 公司/n单音节区别词和单音节名词或名语素组合,作为一个词,并标以名词词性n。 雄鸡/n, 雌象/n, 女魔/n, 古币/n少数“单音节区别词+双音节词”的结构作为一个词。总书记/n , -7,c,连词,取英语连词conjunction的第1个字母。,合作/vn 与/c 伙伴/n -8,Dg,副语素,副词性语素。副词代码为d,语素代码g前面置以D。,了解/v 甚/Dg 深/a ,煞/Dg 是/v 喜人/a , -9,d,副词,取adverb的第2个字母,因其第1个字母已用于形容词。,进一步/d 发展/v , -10,e,叹词,取英语叹词exclamation的第1个字母。,啊/e ,/w 那/r 金灿灿/z 的/u 麦穗/n , -11,f,方位词,取汉字“方”。,军人/n 的/u 眼睛/n 里/f 不/d 是/v 没有/v 风景/n , -12,h,前接成分,取英语head的第1个字母。,许多/m 非/h 主角/n 人物/n ,办事处/n 的/u “/w 准/h 政府/n ”/w 功能/n 不断/d 加强/v , -13,i,成语,取英语成语idiom的第1个字母。,一言一行/i ,义无反顾/i , -14,j,简称略语,取汉字“简”的声母。,[德/j 外长/n]NP ,文教/j , -15,k,后接成分,后接成分。,少年儿童/l 朋友/n 们/k ,身体/n 健康/a 者/k , -16,l,习用语,习用语尚未成为成语,有点“临时性”,取“临”的声母。,少年儿童/l 朋友/n 们/k ,落到实处/l , -17,Mg,数语素,数词性语素。数词代码为m,语素代码g前面置以M。,甲/Mg 减下/v 的/u 人/n 让/v 乙/Mg 背上/v ,凡/d “/w 寅/Mg 年/n ”/w 中/f 出生/v 的/u 人/n 生肖/n 都/d 属/v 虎/n , -18,m,数词,取英语numeral的第3个字母,n,u已有他用。,1.数量词组应切分为数词和量词。 三/m 个/q, 10/m 公斤/q, 一/m 盒/q 点心/n ,但少数数量词已是词典的登录单位,则不再切分。 一个/m , 一些/m ,2. 基数、序数、小数、分数、百分数一律不予切分,为一个切分单位,标注为 m 。一百二十三/m,20万/m, 123.54/m, 一个/m, 第一/m, 第三十五/m, 20%/m, 三分之二/m, 千分之三十/m, 几十/m 人/n, 十几万/m 元/q, 第一百零一/m 个/q ,3. 约数,前加副词、形容词或后加“来、多、左右”等助数词的应予分开。约/d 一百/m 多/m 万/m,仅/d 一百/m 个/q, 四十/m 来/m 个/q,二十/m 余/m 只/q, 十几/m 个/q,三十/m 左右/m ,两个数词相连的及“成百”、“上千”等则不予切分。五六/m 年/q, 七八/m 天/q,十七八/m 岁/q, 成百/m 学生/n,上千/m 人/n, 4.表序关系的“数+名”结构,应予切分。二/m 连/n , 三/m 部/n , -19,Ng,名语素,名词性语素。名词代码为n,语素代码g前面置以N。,出/v 过/u 两/m 天/q 差/Ng, 理/v 了/u 一/m 次/q 发/Ng, -20,n,名词,取英语名词noun的第1个字母。,(参见 动词--v)岗位/n , 城市/n , 机会/n ,她/r 是/v 责任/n 编辑/n , -21,nr,人名,名词代码n和“人(ren)”的声母并在一起。,1. 汉族人及与汉族起名方式相同的非汉族人的姓和名单独切分,并分别标注为nr。张/nr 仁伟/nr, 欧阳/nr 修/nr, 阮/nr 志雄/nr, 朴/nr 贞爱/nr汉族人除有单姓和复姓外,还有双姓,即有的女子出嫁后,在原来的姓上加上丈夫的姓。如:陈方安生。这种情况切分、标注为:陈/nr 方/nr 安生/nr;唐姜氏,切分、标注为:唐/nr 姜氏/nr。2. 姓名后的职务、职称或称呼要分开。江/nr 主席/n, 小平/nr 同志/n, 江/nr 总书记/n,张/nr 教授/n, 王/nr 部长/n, 陈/nr 老总/n, 李/nr 大娘/n, 刘/nr 阿姨/n, 龙/nr 姑姑/n3. 对人的简称、尊称等若为两个字,则合为一个切分单位,并标以nr。老张/nr, 大李/nr, 小郝/nr, 郭老/nr, 陈总/nr4. 明显带排行的亲属称谓要切分开,分不清楚的则不切开。三/m 哥/n, 大婶/n, 大/a 女儿/n, 大哥/n, 小弟/n, 老爸/n5. 一些著名作者的或不易区分姓和名的笔名通常作为一个切分单位。鲁迅/nr, 茅盾/nr, 巴金/nr, 三毛/nr, 琼瑶/nr, 白桦/nr6. 外国人或少数民族的译名(包括日本人的姓名)不予切分,标注为nr。克林顿/nr, 叶利钦/nr, 才旦卓玛/nr, 小林多喜二/nr, 北研二/nr,华盛顿/nr, 爱因斯坦/nr有些西方人的姓名中有小圆点,也不分开。卡尔·马克思/nr -22,ns,地名,名词代码n和处所词代码s并在一起。,(参见2。短语标记说明--NS)安徽/ns,深圳/ns,杭州/ns,拉萨/ns,哈尔滨/ns, 呼和浩特/ns, 乌鲁木齐/ns,长江/ns,黄海/ns,太平洋/ns, 泰山/ns, 华山/ns,亚洲/ns, 海南岛/ns,太湖/ns,白洋淀/ns, 俄罗斯/ns,哈萨克斯坦/ns,彼得堡/ns, 伏尔加格勒/ns 1. 国名不论长短,作为一个切分单位。中国/ns, 中华人民共和国/ns, 日本国/ns, 美利坚合众国/ns, 美国/ns2. 地名后有“省”、“市”、“县”、“区”、“乡”、“镇”、“村”、“旗”、“州”、“都”、“府”、“道”等单字的行政区划名称时,不切分开,作为一个切分单位。四川省/ns, 天津市/ns,景德镇/ns沙市市/ns, 牡丹江市/ns,正定县/ns,海淀区/ns, 通州区/ns,东升乡/ns, 双桥镇/ns 南化村/ns,华盛顿州/ns,俄亥俄州/ns,东京都/ns, 大阪府/ns,北海道/ns, 长野县/ns,开封府/ns,宣城县/ns3. 地名后的行政区划有两个以上的汉字,则将地名同行政区划名称切开,不过要将地名同行政区划名称用方括号括起来,并标以短语NS。[芜湖/ns 专区/n] NS,[宣城/ns 地区/n]ns,[内蒙古/ns 自治区/n]NS,[深圳/ns 特区/n]NS, [厦门/ns 经济/n 特区/n]NS, [香港/ns 特别/a 行政区/n]NS,[香港/ns 特区/n]NS, [华盛顿/ns 特区/n]NS,4. 地名后有表示地形地貌的一个字的普通名词,如“江、河、山、洋、海、岛、峰、湖”等,不予切分。鸭绿江/ns,亚马逊河/ns, 喜马拉雅山/ns, 珠穆朗玛峰/ns,地中海/ns,大西洋/ns,洞庭湖/ns, 塞普路斯岛/ns 5. 地名后接的表示地形地貌的普通名词若有两个以上汉字,则应切开。然后将地名同该普通名词标成短语NS。[台湾/ns 海峡/n]NS,[华北/ns 平原/n]NS,[帕米尔/ns 高原/n]NS, [南沙/ns 群岛/n]NS,[京东/ns 大/a 峡谷/n]NS [横断/b 山脉/n]NS6.地名后有表示自然区划的一个字的普通名词,如“ 街,路,道,巷,里,町,庄,村,弄,堡”等,不予切分。 中关村/ns,长安街/ns,学院路/ns, 景德镇/ns, 吴家堡/ns, 庞各庄/ns, 三元里/ns,彼得堡/ns, 北菜市巷/ns, 7.地名后接的表示自然区划的普通名词若有两个以上汉字,则应切开。然后将地名同自然区划名词标成短语NS。[米市/ns 大街/n]NS, [蒋家/nz 胡同/n]NS , [陶然亭/ns 公园/n]NS , 8. 大小地名相连时的标注方式为:北京市/ns 海淀区/ns 海淀镇/ns [南/f 大街/n]NS [蒋家/nz 胡同/n]NS 24/m 号/q , -23,nt,机构团体,“团”的声母为t,名词代码n和t并在一起。,(参见2。短语标记说明--NT)联合国/nt,中共中央/nt,国务院/nt, 北京大学/nt1.大多数团体、机构、组织的专有名称一般是短语型的,较长,且含有地名或人名等专名,再组合,标注为短语NT。[中国/ns 计算机/n 学会/n]NT, [香港/ns 钟表业/n 总会/n]NT, [烟台/ns 大学/n]NT, [香港/ns 理工大学/n]NT, [华东/ns 理工大学/n]NT,[合肥/ns 师范/n 学院/n]NT, [北京/ns 图书馆/n]NT, [富士通/nz 株式会社/n]NT, [香山/ns 植物园/n]NT, [安娜/nz 美容院/n]NT,[上海/ns 手表/n 厂/n]NT, [永和/nz 烧饼铺/n]NT,[北京/ns 国安/nz 队/n]NT,2. 对于在国际或中国范围内的知名的唯一的团体、机构、组织的名称即使前面没有专名,也标为nt或NT。联合国/nt,国务院/nt,外交部/nt, 财政部/nt,教育部/nt, 国防部/nt,[世界/n 贸易/n 组织/n]NT, [国家/n 教育/vn 委员会/n]NT,[信息/n 产业/n 部/n]NT,[全国/n 信息/n 技术/n 标准化/vn 委员会/n]NT,[全国/n 总/b 工会/n]NT,[全国/n 人民/n 代表/n 大会/n]NT,美国的“国务院”,其他国家的“外交部、财政部、教育部”,必须在其所属国的国名之后出现时,才联合标注为NT。[美国/ns 国务院/n]NT,[法国/ns 外交部/n]NT,[美/j 国会/n]NT,日本有些政府机构名称很特别,无论是否出现在“日本”国名之后都标为nt。[日本/ns 外务省/nt]NT,[日/j 通产省/nt]NT通产省/nt 3. 前后相连有上下位关系的团体机构组织名称的处理方式如下:[联合国/nt 教科文/j 组织/n]NT, [中国/ns 银行/n 北京/ns 分行/n]NT,[河北省/ns 正定县/ns 西平乐乡/ns 南化村/ns 党支部/n]NT, 当下位名称含有专名(如“北京/ns 分行/n”、“南化村/ns 党支部/n”、“昌平/ns 分校/n”)时,也可脱离前面的上位名称单独标注为NT。[中国/ns 银行/n]NT [北京/ns 分行/n]NT,北京大学/nt [昌平/ns 分校/n]NT,4. 团体、机构、组织名称中用圆括号加注简称时:[宝山/ns 钢铁/n (/w 宝钢/j )/w 总/b 公司/n]NT,[宝山/ns 钢铁/n 总/b 公司/n]NT,(/w 宝钢/j )/w -24,nx,外文字符,外文字符。,A/nx 公司/n ,B/nx 先生/n ,X/nx 君/Ng ,24/m K/nx 镀金/n ,C/nx 是/v 光速/n ,Windows98/nx ,PentiumIV/nx ,I LOVE THIS GAME/nx , -25,nz,其他专名,“专”的声母的第1个字母为z,名词代码n和z并在一起。,(参见2。短语标记说明--NZ)除人名、国名、地名、团体、机构、组织以外的其他专有名词都标以nz。满族/nz,俄罗斯族/nz,汉语/nz,罗马利亚语/nz, 捷克语/nz,中文/nz, 英文/nz, 满人/nz, 哈萨克人/nz, 诺贝尔奖/nz, 茅盾奖/nz, 1.包含专有名称(或简称)的交通线,标以nz;短语型的,标为NZ。津浦路/nz, 石太线/nz, [京/j 九/j 铁路/n]NZ, [京/j 津/j 高速/b 公路/n]NZ, 2. 历史上重要事件、运动等专有名称一般是短语型的,按短语型专有名称处理,标以NZ。[卢沟桥/ns 事件/n]NZ, [西安/ns 事变/n]NZ,[五四/t 运动/n]NZ, [明治/nz 维新/n]NZ,[甲午/t 战争/n]NZ,3.专有名称后接多音节的名词,如“语言”、“文学”、“文化”、“方式”、“精神”等,失去专指性,则应分开。欧洲/ns 语言/n, 法国/ns 文学/n, 西方/ns 文化/n, 贝多芬/nr 交响乐/n, 雷锋/nr 精神/n, 美国/ns 方式/n,日本/ns 料理/n, 宋朝/t 古董/n 4. 商标(包括专名及后接的“牌”、“型”等)是专指的,标以nz,但其后所接的商品仍标以普通名词n。康师傅/nr 方便面/n, 中华牌/nz 香烟/n, 牡丹III型/nz 电视机/n, 联想/nz 电脑/n, 鳄鱼/nz 衬衣/n, 耐克/nz 鞋/n5. 以序号命名的名称一般不认为是专有名称。2/m 号/q 国道/n ,十一/m 届/q 三中全会/j如果前面有专名,合起来作为短语型专名。[中国/ns 101/m 国道/n]NZ, [中共/j 十一/m 届/q 三中全会/j]NZ,6. 书、报、杂志、文档、报告、协议、合同等的名称通常有书名号加以标识,不作为专有名词。由于这些名字往往较长,名字本身按常规处理。《/w 宁波/ns 日报/n 》/w ,《/w 鲁迅/nr 全集/n 》/w,中华/nz 读书/vn 报/n, 杜甫/nr 诗选/n,少数书名、报刊名等专有名称,则不切分。红楼梦/nz, 人民日报/nz,儒林外史/nz 7. 当有些专名无法分辨它们是人名还是地名或机构名时,暂标以nz。[巴黎/ns 贝尔希/nz 体育馆/n]NT,其中“贝尔希”只好暂标为nz。 -26,o,拟声词,取英语拟声词onomatopoeia的第1个字母。,哈哈/o 一/m 笑/v ,装载机/n 隆隆/o 推进/v , -27,p,介词,取英语介词prepositional的第1个字母。,对/p 子孙后代/n 负责/v ,以/p 煤/n 养/v 农/Ng ,为/p 治理/v 荒山/n 服务/v , 把/p 青年/n 推/v 上/v 了/u 领导/vn 岗位/n , -28,q,量词,取英语quantity的第1个字母。,(参见数词m)首/m 批/q ,一/m 年/q , -29,Rg,代语素,代词性语素。代词代码为r,在语素的代码g前面置以R。,读者/n 就/d 是/v 这/r 两/m 棵/q 小树/n 扎根/v 于/p 斯/Rg 、/w 成长/v 于/p 斯/Rg 的/u 肥田/n 沃土/n , -30,r,代词,取英语代词pronoun的第2个字母,因p已用于介词。,单音节代词“本”、“每”、“各”、“诸”后接单音节名词时,和后接的单音节名词合为代词;当后接双音节名词时,应予切分。本报/r, 每人/r, 本社/r, 本/r 地区/n, 各/r 部门/n -31,s,处所词,取英语space的第1个字母。,家里/s 的/u 电脑/n 都/d 联通/v 了/u 国际/n 互联网/n ,西部/s 交通/n 咽喉/n , -32,Tg,时语素,时间词性语素。时间词代码为t,在语素的代码g前面置以T。,3日/t 晚/Tg 在/p 总统府/n 发表/v 声明/n ,尊重/v 现/Tg 执政/vn 当局/n 的/u 权威/n , -33,t,时间词,取英语time的第1个字母。,1. 年月日时分秒,按年、月、日、时、分、秒切分,标注为t 。1997年/t 3月/t 19日/t 下午/t 2时/t 18分/t若数字后无表示时间的“年、月、日、时、分、秒”等的标为数词m。1998/m 中文/n 信息/n 处理/vn 国际/n 会议/n 2. 历史朝代的名称虽然有专有名词的性质,仍标注为t。西周/t, 秦朝/t, 东汉/t, 南北朝/t, 清代/t“牛年、虎年”等一律不予切分,标注为:牛年/t, 虎年/t, 甲午年/t, 甲午/t 战争/n, 庚子/t 赔款/n, 戊戌/t 变法/n -34,u,助词,取英语助词auxiliary。,[[俄罗斯/ns 和/c 北约/j]NP-BL 之间/f [战略/n 伙伴/n 关系/n]NP 的/u 建立/vn]NP 填平/v 了/u [[欧洲/ns 安全/a 政治/n]NP 的/u 鸿沟/n]NP -35,Vg,动语素,动词性语素。动词代码为v。在语素的代码g前面置以V。,洗/v 了/u 一个/m 舒舒服服/z 的/u 澡/Vg -36,v,动词,取英语动词verb的第一个字母。,(参见 名词--n)[[[欧盟/j 扩大/v]S 的/u [历史性/n 决定/n]NP]NP 和/c [北约/j 开放/v]S]NP-BL [为/p [创建/v [一/m 种/q 新/a 的/u 欧洲/ns 安全/a 格局/n]NP]VP-SBI]PP-MD [奠定/v 了/u 基础/n]V-SBI ,, -37,vd,副动词,直接作状语的动词。动词和副词的代码并在一起。,形势/n 会/v 持续/vd 好转/v ,认为/v 是/v 电话局/n 收/v 错/vd 了/u 费/n , -38,vn,名动词,指具有名词功能的动词。动词和名词的代码并在一起。,引起/v 人们/n 的/u 关注/vn 和/c 思考/vn ,收费/vn 电话/n 的/u 号码/n , -39,w,标点符号,,”/w :/w -40,x,非语素字,非语素字只是一个符号,字母x通常用于代表未知数、符号。, -41,Yg,语气语素,语气词性语素。语气词代码为y。在语素的代码g前面置以Y。,唯/d 大力/d 者/k 能/v 致/v 之/u 耳/Yg -42,y,语气词,取汉字“语”的声母。,会/v 泄露/v 用户/n 隐私/n 吗/y ,又/d 何在/v 呢/y ? -43,z,状态词,取汉字“状”的声母的前一个字母。,取得/v 扎扎实实/z 的/u 突破性/n 进展/vn ,四季/n 常青/z 的/u 热带/n 树木/n ,短短/z 几/m 年/q 间, \ No newline at end of file diff --git a/launchers/standalone/src/test/resources/data/version.txt b/launchers/standalone/src/test/resources/data/version.txt deleted file mode 100644 index 6a126f402..000000000 --- a/launchers/standalone/src/test/resources/data/version.txt +++ /dev/null @@ -1 +0,0 @@ -1.7.5 diff --git a/launchers/standalone/src/test/resources/hanlp.properties b/launchers/standalone/src/test/resources/hanlp.properties deleted file mode 100644 index 9442307fa..000000000 --- a/launchers/standalone/src/test/resources/hanlp.properties +++ /dev/null @@ -1,2 +0,0 @@ -root=. -CustomDictionaryPath=data/dictionary/custom/DimValue_1_1.txt;data/dictionary/custom/DimValue_1_2.txt;data/dictionary/custom/DimValue_1_3.txt;data/dictionary/custom/DimValue_4_8.txt \ No newline at end of file