diff options
author | 2011-08-02 00:05:42 -0700 | |
---|---|---|
committer | 2011-08-02 00:05:42 -0700 | |
commit | c1fd3cf50f248369c8b8960f7817d6c0bb55e02c (patch) | |
tree | cbafd274a3a0bf1535f36f4618bba9351dcbee87 /native/src/correction_state.h | |
parent | 8da9a13760896cd78235b60d0ea680ea13620532 (diff) | |
parent | 612c6e49c03dc49320a0bf141f51e45a8b969d43 (diff) | |
download | latinime-c1fd3cf50f248369c8b8960f7817d6c0bb55e02c.tar.gz latinime-c1fd3cf50f248369c8b8960f7817d6c0bb55e02c.tar.xz latinime-c1fd3cf50f248369c8b8960f7817d6c0bb55e02c.zip |
Merge "Move code related to ranking algorithm to the correction state"
Diffstat (limited to 'native/src/correction_state.h')
-rw-r--r-- | native/src/correction_state.h | 32 |
1 files changed, 29 insertions, 3 deletions
diff --git a/native/src/correction_state.h b/native/src/correction_state.h index 5b7392590..e03b2a17c 100644 --- a/native/src/correction_state.h +++ b/native/src/correction_state.h @@ -26,10 +26,12 @@ namespace latinime { class ProximityInfo; class CorrectionState { + public: - CorrectionState(); - void setCorrectionParams(const ProximityInfo *pi, const int inputLength, const int skipPos, - const int excessivePos, const int transposedPos); + CorrectionState(const int typedLetterMultiplier, const int fullWordMultiplier); + void initCorrectionState(const ProximityInfo *pi, const int inputLength); + void setCorrectionParams(const int skipPos, const int excessivePos, const int transposedPos, + const int spaceProximityPos, const int missingSpacePos); void checkState(); virtual ~CorrectionState(); int getSkipPos() const { @@ -41,12 +43,36 @@ public: int getTransposedPos() const { return mTransposedPos; } + int getSpaceProximityPos() const { + return mSpaceProximityPos; + } + int getMissingSpacePos() const { + return mMissingSpacePos; + } + int getFreqForSplitTwoWords(const int firstFreq, const int secondFreq); + int getFinalFreq(const int inputIndex, const int depth, const int matchWeight, const int freq, + const bool sameLength); + private: + + const int TYPED_LETTER_MULTIPLIER; + const int FULL_WORD_MULTIPLIER; const ProximityInfo *mProximityInfo; int mInputLength; int mSkipPos; int mExcessivePos; int mTransposedPos; + int mSpaceProximityPos; + int mMissingSpacePos; + + class RankingAlgorithm { + public: + static int calculateFinalFreq(const int inputIndex, const int depth, + const int matchCount, const int freq, const bool sameLength, + const CorrectionState* correctionState); + static int calcFreqForSplitTwoWords(const int firstFreq, const int secondFreq, + const CorrectionState* correctionState); + }; }; } // namespace latinime #endif // LATINIME_CORRECTION_INFO_H |