summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPeng Wu <alexepico@gmail.com>2013-11-25 12:43:43 +0800
committerPeng Wu <alexepico@gmail.com>2013-11-29 15:09:14 +0800
commit810e3780c7eccf45cdff2ac570db487656583d86 (patch)
tree0fd6cce16a4289a57061852dc406a84ca430482c
parent605e8ff9e28f372c43e5f133fe8a540857f819ae (diff)
downloadlibpinyin-810e3780c7eccf45cdff2ac570db487656583d86.tar.gz
libpinyin-810e3780c7eccf45cdff2ac570db487656583d86.tar.xz
libpinyin-810e3780c7eccf45cdff2ac570db487656583d86.zip
add filter to guess predicted candidates
-rw-r--r--src/pinyin.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/pinyin.cpp b/src/pinyin.cpp
index 975859d..28f7c2a 100644
--- a/src/pinyin.cpp
+++ b/src/pinyin.cpp
@@ -1761,6 +1761,8 @@ bool pinyin_guess_full_pinyin_candidates(pinyin_instance_t * instance,
bool pinyin_guess_predicted_candidates(pinyin_instance_t * instance,
const char * prefix) {
+ const guint32 filter = 256;
+
pinyin_context_t * & context = instance->m_context;
FacadePhraseIndex * & phrase_index = context->m_phrase_index;
GArray * & prefixes = instance->m_prefixes;
@@ -1795,10 +1797,14 @@ bool pinyin_guess_predicted_candidates(pinyin_instance_t * instance,
BigramPhraseItemWithCount * phrase_item = &g_array_index
(tokens, BigramPhraseItemWithCount, k);
+ if (phrase_item->m_count < filter)
+ continue;
+
int result = phrase_index->get_phrase_item
(phrase_item->m_token, cached_item);
if (ERROR_NO_SUB_PHRASE_INDEX == result)
continue;
+
if (len != cached_item.get_phrase_length())
continue;