diff options
author | toasted-nutbread <toasted-nutbread@users.noreply.github.com> | 2021-05-14 19:26:27 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-05-14 19:26:27 -0400 |
commit | de6db32aa69be6c33d17ddb4f2dc4305e8771f59 (patch) | |
tree | 86d806d9fb92f56fb112fcfcf689c4ae90112623 /ext | |
parent | ff9dafc6f7464ebf26bd44f6f52f1bb699f3e873 (diff) |
Improve source term exact match count (#1674)
* Update sourceTermExactMatchCount to be based on headword count
* Update tests
Diffstat (limited to 'ext')
-rw-r--r-- | ext/js/language/translator.js | 16 |
1 files changed, 13 insertions, 3 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 ); } |