diff options
author | Peng Wu <alexepico@gmail.com> | 2010-10-14 14:18:48 +0800 |
---|---|---|
committer | Peng Wu <alexepico@gmail.com> | 2010-10-14 14:18:48 +0800 |
commit | ed23a551db0952a796fe04b3a582b3e67db0e76c (patch) | |
tree | 7a35677c50eb47f57418064ea0c7628843a4c207 /src/lookup | |
parent | 1568cf19f696b549fbb373e7b8f9df0e48be052d (diff) | |
download | libpinyin-ed23a551db0952a796fe04b3a582b3e67db0e76c.tar.gz libpinyin-ed23a551db0952a796fe04b3a582b3e67db0e76c.tar.xz libpinyin-ed23a551db0952a796fe04b3a582b3e67db0e76c.zip |
add comment to pinyin_lookup.h
Diffstat (limited to 'src/lookup')
-rw-r--r-- | src/lookup/pinyin_lookup.h | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/src/lookup/pinyin_lookup.h b/src/lookup/pinyin_lookup.h index e880680..e585788 100644 --- a/src/lookup/pinyin_lookup.h +++ b/src/lookup/pinyin_lookup.h @@ -37,9 +37,13 @@ class WinnerTree; typedef phrase_token_t lookup_key_t; struct lookup_value_t{ + /* previous and current tokens of the node */ phrase_token_t m_handles[2]; + /* maximum possibility of current node */ gfloat m_poss; + /* trace back information for final step */ gint32 m_last_step; + lookup_value_t(gfloat poss = FLT_MAX){ m_handles[0] = NULL; m_handles[1] = NULL; m_poss = poss; @@ -50,7 +54,24 @@ struct lookup_value_t{ enum constraint_type{NO_CONSTRAINT, CONSTRAINT_ONESTEP, CONSTRAINT_NOSEARCH }; struct lookup_constraint_t{ + /* current type of the step */ constraint_type m_type; + + /* Note: + * value of m_type: + * NO_CONSTRAINT: + * no values in the below union. + * search all possible next words. + * CONSTRAINT_ONESTEP: + * m_token contains the next word. + * only one word can be used to search for the next step, + * use case for user selected candidates. + * CONSTRAINT_NOSEARCH: + * m_constraint_step contains the value + * which points back to the CONSTRAINT_ONESTEP step. + * no search is allowed for the current step. + */ + union{ phrase_token_t m_token; guint32 m_constraint_step; /* index of m_token */ @@ -66,11 +87,26 @@ class FacadePhraseIndex; class Bigram; }; +/* Note: + * LookupStepIndex: + * the main purpose of lookup step index is served for an index + * for lookup step content, which can quickly merge the same node + * with different possibilities, + * then only keep the highest value of the node. + * LookupStepContent: + * the place to store the lookup values of current step, + * and indexed by lookup step index. + * See also comments on lookup_value_t. + */ + typedef GHashTable * LookupStepIndex; /* Key: lookup_key_t, Value: int m, index to m_steps_content[i][m] */ typedef GArray * LookupStepContent; /* array of lookup_value_t */ +/* Note: + * winner tree for beam search. + */ class IBranchIterator{ public: virtual ~IBranchIterator(){} |