1 /* 2 * Copyright (C) 2012 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 #ifndef LATINIME_SCORING_PARAMS_H 18 #define LATINIME_SCORING_PARAMS_H 19 20 #include "defines.h" 21 22 namespace latinime { 23 24 class ScoringParams { 25 public: 26 // Fixed model parameters 27 static const float MAX_SPATIAL_DISTANCE; 28 static const int THRESHOLD_NEXT_WORD_PROBABILITY; 29 static const int THRESHOLD_NEXT_WORD_PROBABILITY_FOR_CAPPED; 30 static const float AUTOCORRECT_OUTPUT_THRESHOLD; 31 static const int MAX_CACHE_DIC_NODE_SIZE; 32 static const int MAX_CACHE_DIC_NODE_SIZE_FOR_SINGLE_POINT; 33 static const int MAX_CACHE_DIC_NODE_SIZE_FOR_LOW_PROBABILITY_LOCALE; 34 static const int THRESHOLD_SHORT_WORD_LENGTH; 35 36 static const float EXACT_MATCH_PROMOTION; 37 static const float PERFECT_MATCH_PROMOTION; 38 static const float CASE_ERROR_PENALTY_FOR_EXACT_MATCH; 39 static const float ACCENT_ERROR_PENALTY_FOR_EXACT_MATCH; 40 static const float DIGRAPH_PENALTY_FOR_EXACT_MATCH; 41 42 // Numerically optimized parameters (currently for tap typing only). 43 // TODO: add ability to modify these constants programmatically. 44 // TODO: explore optimization of gesture parameters. 45 static const float DISTANCE_WEIGHT_LENGTH; 46 static const float PROXIMITY_COST; 47 static const float FIRST_CHAR_PROXIMITY_COST; 48 static const float FIRST_PROXIMITY_COST; 49 static const float INTENTIONAL_OMISSION_COST; 50 static const float OMISSION_COST; 51 static const float OMISSION_COST_SAME_CHAR; 52 static const float OMISSION_COST_FIRST_CHAR; 53 static const float INSERTION_COST; 54 static const float TERMINAL_INSERTION_COST; 55 static const float INSERTION_COST_SAME_CHAR; 56 static const float INSERTION_COST_PROXIMITY_CHAR; 57 static const float INSERTION_COST_FIRST_CHAR; 58 static const float TRANSPOSITION_COST; 59 static const float SPACE_SUBSTITUTION_COST; 60 static const float SPACE_OMISSION_COST; 61 static const float ADDITIONAL_PROXIMITY_COST; 62 static const float SUBSTITUTION_COST; 63 static const float COST_SECOND_OR_LATER_WORD_FIRST_CHAR_UPPERCASE; 64 static const float DISTANCE_WEIGHT_LANGUAGE; 65 static const float COST_FIRST_COMPLETION; 66 static const float COST_COMPLETION; 67 static const float HAS_PROXIMITY_TERMINAL_COST; 68 static const float HAS_EDIT_CORRECTION_TERMINAL_COST; 69 static const float HAS_MULTI_WORD_TERMINAL_COST; 70 static const float TYPING_BASE_OUTPUT_SCORE; 71 static const float TYPING_MAX_OUTPUT_SCORE_PER_INPUT; 72 static const float NORMALIZED_SPATIAL_DISTANCE_THRESHOLD_FOR_EDIT; 73 static const float LOCALE_WEIGHT_THRESHOLD_FOR_SPACE_SUBSTITUTION; 74 static const float LOCALE_WEIGHT_THRESHOLD_FOR_SPACE_OMISSION; 75 static const float LOCALE_WEIGHT_THRESHOLD_FOR_SMALL_CACHE_SIZE; 76 77 private: 78 DISALLOW_IMPLICIT_CONSTRUCTORS(ScoringParams); 79 }; 80 } // namespace latinime 81 #endif // LATINIME_SCORING_PARAMS_H 82