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/js | |
| parent | ff9dafc6f7464ebf26bd44f6f52f1bb699f3e873 (diff) | |
Improve source term exact match count (#1674)
* Update sourceTermExactMatchCount to be based on headword count
* Update tests
Diffstat (limited to 'ext/js')
| -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          );      } |