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