Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1c14effa authored by Keisuke Kuroyanagi's avatar Keisuke Kuroyanagi
Browse files

Use LanguageModelDictContent in iterateNgramEntries().

Bug: 14425059
Change-Id: I8a5028657ea5a4eeee8ef40db52a80f09b878972
parent 07b3b41c
Loading
Loading
Loading
Loading
+15 −5
Original line number Original line Diff line number Diff line
@@ -158,11 +158,21 @@ void Ver4PatriciaTriePolicy::iterateNgramEntries(const int *const prevWordsPtNod
    if (!prevWordsPtNodePos) {
    if (!prevWordsPtNodePos) {
        return;
        return;
    }
    }
    const int bigramsPosition = getBigramsPositionOfPtNode(prevWordsPtNodePos[0]);
    // TODO: Support n-gram.
    BinaryDictionaryBigramsIterator bigramsIt(&mBigramPolicy, bigramsPosition);
    const PtNodeParams ptNodeParams =
    while (bigramsIt.hasNext()) {
            mNodeReader.fetchPtNodeParamsInBufferFromPtNodePos(prevWordsPtNodePos[0]);
        bigramsIt.next();
    const int prevWordId = ptNodeParams.getTerminalId();
        listener->onVisitEntry(bigramsIt.getProbability(), bigramsIt.getBigramPos());
    const WordIdArrayView prevWordIds = WordIdArrayView::fromObject(&prevWordId);
    const auto languageModelDictContent = mBuffers->getLanguageModelDictContent();
    for (const auto entry : languageModelDictContent->getProbabilityEntries(prevWordIds)) {
        const ProbabilityEntry &probabilityEntry = entry.getProbabilityEntry();
        const int probability = probabilityEntry.hasHistoricalInfo() ?
                ForgettingCurveUtils::decodeProbability(
                        probabilityEntry.getHistoricalInfo(), mHeaderPolicy) :
                probabilityEntry.getProbability();
        const int ptNodePos = mBuffers->getTerminalPositionLookupTable()->getTerminalPtNodePosition(
                entry.getWordId());
        listener->onVisitEntry(probability, ptNodePos);
    }
    }
}
}