multi_bigram_map.cpp revision 1ff81e889045d35ff8420b266398e73239bd15c9
11ff81e889045d35ff8420b266398e73239bd15c9Keisuke Kuroynagi/*
21ff81e889045d35ff8420b266398e73239bd15c9Keisuke Kuroynagi * Copyright (C) 2013, The Android Open Source Project
31ff81e889045d35ff8420b266398e73239bd15c9Keisuke Kuroynagi *
41ff81e889045d35ff8420b266398e73239bd15c9Keisuke Kuroynagi * Licensed under the Apache License, Version 2.0 (the "License");
51ff81e889045d35ff8420b266398e73239bd15c9Keisuke Kuroynagi * you may not use this file except in compliance with the License.
61ff81e889045d35ff8420b266398e73239bd15c9Keisuke Kuroynagi * You may obtain a copy of the License at
71ff81e889045d35ff8420b266398e73239bd15c9Keisuke Kuroynagi *
81ff81e889045d35ff8420b266398e73239bd15c9Keisuke Kuroynagi *     http://www.apache.org/licenses/LICENSE-2.0
91ff81e889045d35ff8420b266398e73239bd15c9Keisuke Kuroynagi *
101ff81e889045d35ff8420b266398e73239bd15c9Keisuke Kuroynagi * Unless required by applicable law or agreed to in writing, software
111ff81e889045d35ff8420b266398e73239bd15c9Keisuke Kuroynagi * distributed under the License is distributed on an "AS IS" BASIS,
121ff81e889045d35ff8420b266398e73239bd15c9Keisuke Kuroynagi * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
131ff81e889045d35ff8420b266398e73239bd15c9Keisuke Kuroynagi * See the License for the specific language governing permissions and
141ff81e889045d35ff8420b266398e73239bd15c9Keisuke Kuroynagi * limitations under the License.
151ff81e889045d35ff8420b266398e73239bd15c9Keisuke Kuroynagi */
161ff81e889045d35ff8420b266398e73239bd15c9Keisuke Kuroynagi
171ff81e889045d35ff8420b266398e73239bd15c9Keisuke Kuroynagi#include "suggest/core/dictionary/multi_bigram_map.h"
181ff81e889045d35ff8420b266398e73239bd15c9Keisuke Kuroynagi
191ff81e889045d35ff8420b266398e73239bd15c9Keisuke Kuroynagi#include <cstddef>
201ff81e889045d35ff8420b266398e73239bd15c9Keisuke Kuroynagi
211ff81e889045d35ff8420b266398e73239bd15c9Keisuke Kuroynaginamespace latinime {
221ff81e889045d35ff8420b266398e73239bd15c9Keisuke Kuroynagi
231ff81e889045d35ff8420b266398e73239bd15c9Keisuke Kuroynagi// Max number of bigram maps (previous word contexts) to be cached. Increasing this number
241ff81e889045d35ff8420b266398e73239bd15c9Keisuke Kuroynagi// could improve bigram lookup speed for multi-word suggestions, but at the cost of more memory
251ff81e889045d35ff8420b266398e73239bd15c9Keisuke Kuroynagi// usage. Also, there are diminishing returns since the most frequently used bigrams are
261ff81e889045d35ff8420b266398e73239bd15c9Keisuke Kuroynagi// typically near the beginning of the input and are thus the first ones to be cached. Note
271ff81e889045d35ff8420b266398e73239bd15c9Keisuke Kuroynagi// that these bigrams are reset for each new composing word.
281ff81e889045d35ff8420b266398e73239bd15c9Keisuke Kuroynagiconst size_t MultiBigramMap::MAX_CACHED_PREV_WORDS_IN_BIGRAM_MAP = 25;
291ff81e889045d35ff8420b266398e73239bd15c9Keisuke Kuroynagi
301ff81e889045d35ff8420b266398e73239bd15c9Keisuke Kuroynagi// Most common previous word contexts currently have 100 bigrams
311ff81e889045d35ff8420b266398e73239bd15c9Keisuke Kuroynagiconst int MultiBigramMap::BigramMap::DEFAULT_HASH_MAP_SIZE_FOR_EACH_BIGRAM_MAP = 100;
321ff81e889045d35ff8420b266398e73239bd15c9Keisuke Kuroynagi
331ff81e889045d35ff8420b266398e73239bd15c9Keisuke Kuroynagi} // namespace latinime
34