diff --git a/packages/core/src/components/word/TranslationList.vue b/packages/core/src/components/word/TranslationList.vue
index 106020ff..598e2a17 100644
--- a/packages/core/src/components/word/TranslationList.vue
+++ b/packages/core/src/components/word/TranslationList.vue
@@ -50,7 +50,7 @@ const posList = computed<{ pos: string; totalFreq?: number; trans: { pos: string
{{ tran.cn }}
-
+
diff --git a/packages/core/src/utils/word-test.ts b/packages/core/src/utils/word-test.ts
index 786a0a09..0d66e817 100644
--- a/packages/core/src/utils/word-test.ts
+++ b/packages/core/src/utils/word-test.ts
@@ -16,18 +16,20 @@ function getTrans(word: Word): { cn: string, freq: number }[] {
return Array.from(rsMap.values());
}
-function getCommonCount(str1: string, str2: string): number {
+function calCommon(str1: string, str2: string): number {
str1 = str1.toLowerCase();
str2 = str2.toLowerCase();
- let count = 0;
+ let rs = 0;
let set1 = new Set(str1.split(''));
let set2 = new Set(str2.split(''));
for (let char of set1) {
if (set2.has(char)) {
- count++;
+ rs += 1 << 2;
+ } else {
+ rs--;
}
}
- return count;
+ return rs;
}
function calSimilarity(word1: Word, word2: Word): number {
@@ -48,8 +50,8 @@ function calSimilarity(word1: Word, word2: Word): number {
}
})
- similarity += getCommonCount(word1Trans.map(item => item.cn).join(''), word2Trans.map((item) => item.cn).join(''));
- similarity += getCommonCount(word1.word, word2.word) << 16;
+ similarity += calCommon(word1Trans.map(item => item.cn).join(''), word2Trans.map((item) => item.cn).join(''));
+ similarity += calCommon(word1.word, word2.word) << 16;
return similarity;
}