summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortoasted-nutbread <toasted-nutbread@users.noreply.github.com>2021-05-14 19:26:27 -0400
committerGitHub <noreply@github.com>2021-05-14 19:26:27 -0400
commitde6db32aa69be6c33d17ddb4f2dc4305e8771f59 (patch)
tree86d806d9fb92f56fb112fcfcf689c4ae90112623
parentff9dafc6f7464ebf26bd44f6f52f1bb699f3e873 (diff)
Improve source term exact match count (#1674)
* Update sourceTermExactMatchCount to be based on headword count * Update tests
-rw-r--r--ext/js/language/translator.js16
-rw-r--r--test/data/translator-test-results-note-data1.json12
-rw-r--r--test/data/translator-test-results.json12
3 files changed, 25 insertions, 15 deletions
diff --git a/ext/js/language/translator.js b/ext/js/language/translator.js
index 21ea9daf..d416d405 100644
--- a/ext/js/language/translator.js
+++ b/ext/js/language/translator.js
@@ -1007,7 +1007,6 @@ class Translator {
let dictionaryIndex = Number.MAX_SAFE_INTEGER;
let dictionaryPriority = Number.MIN_SAFE_INTEGER;
let maxTransformedTextLength = 0;
- let sourceTermExactMatchCount = 0;
let isPrimary = false;
const definitions = [];
const definitionsMap = checkDuplicateDefinitions ? new Map() : null;
@@ -1020,7 +1019,6 @@ class Translator {
if (dictionaryEntry.isPrimary) {
isPrimary = true;
maxTransformedTextLength = Math.max(maxTransformedTextLength, dictionaryEntry.maxTransformedTextLength);
- sourceTermExactMatchCount += dictionaryEntry.sourceTermExactMatchCount;
const dictionaryEntryInflections = dictionaryEntry.inflections;
if (inflections === null || dictionaryEntryInflections.length < inflections.length) {
inflections = dictionaryEntryInflections;
@@ -1033,6 +1031,18 @@ class Translator {
}
}
+ const headwordsArray = [...headwords.values()];
+
+ let sourceTermExactMatchCount = 0;
+ for (const {term, sources} of headwordsArray) {
+ for (const {deinflectedText, isPrimary: isPrimary2} of sources) {
+ if (isPrimary2 && deinflectedText === term) {
+ ++sourceTermExactMatchCount;
+ break;
+ }
+ }
+ }
+
return this._createTermDictionaryEntry(
-1,
isPrimary,
@@ -1042,7 +1052,7 @@ class Translator {
dictionaryPriority,
sourceTermExactMatchCount,
maxTransformedTextLength,
- [...headwords.values()],
+ headwordsArray,
definitions
);
}
diff --git a/test/data/translator-test-results-note-data1.json b/test/data/translator-test-results-note-data1.json
index 8f5199a5..e9d41526 100644
--- a/test/data/translator-test-results-note-data1.json
+++ b/test/data/translator-test-results-note-data1.json
@@ -8933,7 +8933,7 @@
]
}
],
- "sourceTermExactMatchCount": 2,
+ "sourceTermExactMatchCount": 1,
"screenshotFileName": null,
"clipboardImageFileName": null,
"clipboardText": null,
@@ -9261,7 +9261,7 @@
]
}
],
- "sourceTermExactMatchCount": 2,
+ "sourceTermExactMatchCount": 1,
"screenshotFileName": null,
"clipboardImageFileName": null,
"clipboardText": null,
@@ -9539,7 +9539,7 @@
}
],
"pitches": [],
- "sourceTermExactMatchCount": 2,
+ "sourceTermExactMatchCount": 1,
"screenshotFileName": null,
"clipboardImageFileName": null,
"clipboardText": null,
@@ -9791,7 +9791,7 @@
}
],
"pitches": [],
- "sourceTermExactMatchCount": 2,
+ "sourceTermExactMatchCount": 1,
"screenshotFileName": null,
"clipboardImageFileName": null,
"clipboardText": null,
@@ -10745,7 +10745,7 @@
]
}
],
- "sourceTermExactMatchCount": 4,
+ "sourceTermExactMatchCount": 2,
"screenshotFileName": null,
"clipboardImageFileName": null,
"clipboardText": null,
@@ -11198,7 +11198,7 @@
}
],
"pitches": [],
- "sourceTermExactMatchCount": 4,
+ "sourceTermExactMatchCount": 2,
"screenshotFileName": null,
"clipboardImageFileName": null,
"clipboardText": null,
diff --git a/test/data/translator-test-results.json b/test/data/translator-test-results.json
index 19cc5efc..5d8e6abd 100644
--- a/test/data/translator-test-results.json
+++ b/test/data/translator-test-results.json
@@ -5578,7 +5578,7 @@
"score": 10,
"dictionaryIndex": 0,
"dictionaryPriority": 0,
- "sourceTermExactMatchCount": 2,
+ "sourceTermExactMatchCount": 1,
"maxTransformedTextLength": 4,
"headwords": [
{
@@ -5797,7 +5797,7 @@
"score": 10,
"dictionaryIndex": 0,
"dictionaryPriority": 0,
- "sourceTermExactMatchCount": 2,
+ "sourceTermExactMatchCount": 1,
"maxTransformedTextLength": 4,
"headwords": [
{
@@ -5996,7 +5996,7 @@
"score": 10,
"dictionaryIndex": 0,
"dictionaryPriority": 0,
- "sourceTermExactMatchCount": 2,
+ "sourceTermExactMatchCount": 1,
"maxTransformedTextLength": 2,
"headwords": [
{
@@ -6177,7 +6177,7 @@
"score": 10,
"dictionaryIndex": 0,
"dictionaryPriority": 0,
- "sourceTermExactMatchCount": 2,
+ "sourceTermExactMatchCount": 1,
"maxTransformedTextLength": 2,
"headwords": [
{
@@ -6630,7 +6630,7 @@
"score": 10,
"dictionaryIndex": 0,
"dictionaryPriority": 0,
- "sourceTermExactMatchCount": 4,
+ "sourceTermExactMatchCount": 2,
"maxTransformedTextLength": 4,
"headwords": [
{
@@ -7029,7 +7029,7 @@
"score": 10,
"dictionaryIndex": 0,
"dictionaryPriority": 0,
- "sourceTermExactMatchCount": 4,
+ "sourceTermExactMatchCount": 2,
"maxTransformedTextLength": 2,
"headwords": [
{