diff options
| author | Peng Wu <alexepico@gmail.com> | 2024-10-10 10:59:05 +0800 |
|---|---|---|
| committer | Peng Wu <alexepico@gmail.com> | 2024-10-10 10:59:05 +0800 |
| commit | 954cb8978b72e55511b03c9486d99761d0015532 (patch) | |
| tree | faf25b4b6735abc11f03f7e8cfe906feeef2bded /src | |
| parent | b6369a4d065ca0bbc209f5bcd0c8f7a28bbac1ef (diff) | |
| download | libpinyin-954cb8978b72e55511b03c9486d99761d0015532.tar.gz libpinyin-954cb8978b72e55511b03c9486d99761d0015532.tar.xz libpinyin-954cb8978b72e55511b03c9486d99761d0015532.zip | |
Update pinyin_choose_predicted_candidate function
Diffstat (limited to 'src')
| -rw-r--r-- | src/pinyin.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/pinyin.cpp b/src/pinyin.cpp index 47e2c0e..7ec7fa8 100644 --- a/src/pinyin.cpp +++ b/src/pinyin.cpp @@ -2588,7 +2588,8 @@ int pinyin_choose_candidate(pinyin_instance_t * instance, bool pinyin_choose_predicted_candidate(pinyin_instance_t * instance, lookup_candidate_t * candidate){ assert(PREDICTED_BIGRAM_CANDIDATE == candidate->m_candidate_type || - PREDICTED_PREFIX_CANDIDATE == candidate->m_candidate_type); + PREDICTED_PREFIX_CANDIDATE == candidate->m_candidate_type || + PREDICTED_PUNCTUATION_CANDIDATE == candidate->m_candidate_type); const guint32 initial_seed = 23 * 3; const guint32 unigram_factor = 7; @@ -2596,6 +2597,10 @@ bool pinyin_choose_predicted_candidate(pinyin_instance_t * instance, pinyin_context_t * & context = instance->m_context; FacadePhraseIndex * & phrase_index = context->m_phrase_index; + /* the punctuation candidate does not have the frequency. */ + if (PREDICTED_PUNCTUATION_CANDIDATE == candidate->m_candidate_type) + return true; + /* train uni-gram */ phrase_token_t token = candidate->m_token; int error = phrase_index->add_unigram_frequency |
