Esempio n. 1
0
        subParts.forEach(function (subPart) {
            subPart = helper.cleanExtra(subPart);
            subPart = ngramUtil.tripleNSplit(subPart);

            // Skip this gram if it's actually empty.
            if (subPart[ngramUtil.UNIGRAM].length == 0) return;
            else {
                let desiredIsTrigram = self.ngramMode == ngramUtil.TRIGRAM,
                    trigramIsEmpty   = subPart[ngramUtil.TRIGRAM].length == 0,
                    bigramIsEmpty    = subPart[ngramUtil.BIGRAM].length == 0;

                if (desiredIsTrigram && !trigramIsEmpty) {
                    subPart = subPart[ngramUtil.TRIGRAM];
                } else if ((desiredIsTrigram || !desiredIsTrigram) && !bigramIsEmpty) {
                    subPart = subPart[ngramUtil.BIGRAM];
                } else {
                    subPart = subPart[ngramUtil.UNIGRAM];
                }
            }

            suggestions = helper.createNgramCombination(
                [suggestions, self.doCorrect(subPart)],
                'plus',
                'join',
                suggestionLimit
            );

            // Compute sentence prefix's probability.
            for (let index in suggestions) {
                suggestions[index] = suggestions[index] + self.appendExtraProbability(index);
            }
        });
Esempio n. 2
0
        subParts.forEach(function (subPart) {
            subPart = helper.cleanExtra(subPart);
            subPart = ngramUtil.uniSplit(subPart);

            suggestions = helper.createNgramCombination(
                [suggestions, self.doCorrect(subPart)],
                'plus',
                'join'
            );
        });