summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPeng Wu <alexepico@gmail.com>2024-10-10 10:59:05 +0800
committerPeng Wu <alexepico@gmail.com>2024-10-10 10:59:05 +0800
commit954cb8978b72e55511b03c9486d99761d0015532 (patch)
treefaf25b4b6735abc11f03f7e8cfe906feeef2bded /src
parentb6369a4d065ca0bbc209f5bcd0c8f7a28bbac1ef (diff)
downloadlibpinyin-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.cpp7
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