aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKeisuke Kuroyanagi <ksk@google.com>2014-09-16 15:46:28 +0900
committerKeisuke Kuroyanagi <ksk@google.com>2014-09-16 15:46:28 +0900
commit5520e84e16f3886548dc11cf888977a6dbbef5f1 (patch)
treeb39fe3487d7a74470c2cdd1b3407037024f6eaec
parent0c0b8207cdabc1f5c1a81441c1ab0cb715e458ea (diff)
downloadlatinime-5520e84e16f3886548dc11cf888977a6dbbef5f1.tar.gz
latinime-5520e84e16f3886548dc11cf888977a6dbbef5f1.tar.xz
latinime-5520e84e16f3886548dc11cf888977a6dbbef5f1.zip
Support removing n-gram entry in structure policy.
Bug: 14425059 Change-Id: Ifd2ac97a15dcbb936e2f068866a9d1ee68759ba2
-rw-r--r--native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_node_writer.cpp4
-rw-r--r--native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_policy.cpp10
2 files changed, 2 insertions, 12 deletions
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_node_writer.cpp b/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_node_writer.cpp
index bc6e0ddab..75ec16912 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_node_writer.cpp
+++ b/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_node_writer.cpp
@@ -232,11 +232,9 @@ bool Ver4PatriciaTrieNodeWriter::addNgramEntry(const WordIdArrayView prevWordIds
bool Ver4PatriciaTrieNodeWriter::removeNgramEntry(const WordIdArrayView prevWordIds,
const int wordId) {
- // TODO: Support n-gram.
LanguageModelDictContent *const languageModelDictContent =
mBuffers->getMutableLanguageModelDictContent();
- return languageModelDictContent->removeNgramProbabilityEntry(prevWordIds.limit(1 /* maxSize */),
- wordId);
+ return languageModelDictContent->removeNgramProbabilityEntry(prevWordIds, wordId);
}
// TODO: Remove when we stop supporting v402 format.
diff --git a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_policy.cpp b/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_policy.cpp
index a03e2a5eb..b808c904d 100644
--- a/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_policy.cpp
+++ b/native/jni/src/suggest/policyimpl/dictionary/structure/v4/ver4_patricia_trie_policy.cpp
@@ -375,15 +375,7 @@ bool Ver4PatriciaTriePolicy::removeNgramEntry(const PrevWordsInfo *const prevWor
if (wordId == NOT_A_WORD_ID) {
return false;
}
- std::array<int, MAX_PREV_WORD_COUNT_FOR_N_GRAM> prevWordsPtNodePos;
- for (size_t i = 0; i < prevWordsPtNodePos.size(); ++i) {
- prevWordsPtNodePos[i] = mBuffers->getTerminalPositionLookupTable()
- ->getTerminalPtNodePosition(prevWordIds[i]);
- }
- const int wordPtNodePos = mBuffers->getTerminalPositionLookupTable()
- ->getTerminalPtNodePosition(wordId);
- if (mUpdatingHelper.removeNgramEntry(WordIdArrayView::fromArray(prevWordsPtNodePos),
- wordPtNodePos)) {
+ if (mNodeWriter.removeNgramEntry(prevWordIds, wordId)) {
mBigramCount--;
return true;
} else {