diff options
-rw-r--r-- | src/lookup/lookup.h | 25 | ||||
-rw-r--r-- | src/lookup/phrase_lookup.h | 23 | ||||
-rw-r--r-- | src/lookup/pinyin_lookup.h | 29 |
3 files changed, 52 insertions, 25 deletions
diff --git a/src/lookup/lookup.h b/src/lookup/lookup.h index b85101c..8832fbc 100644 --- a/src/lookup/lookup.h +++ b/src/lookup/lookup.h @@ -43,4 +43,29 @@ struct lookup_value_t{ } }; +typedef GArray * MatchResults; /* Array of phrase_token_t */ + +namespace novel{ + class PinyinLargeTable; + class PhraseLargeTable; + 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 */ + #endif diff --git a/src/lookup/phrase_lookup.h b/src/lookup/phrase_lookup.h index 3565031..5473622 100644 --- a/src/lookup/phrase_lookup.h +++ b/src/lookup/phrase_lookup.h @@ -29,5 +29,28 @@ * @brief the definitions of phrase lookup related classes and structs. */ +class PhraseLookup{ +private: + +protected: + //saved varibles + novel::PhraseLargeTable * m_phrase_table; + novel::FacadePhraseIndex * m_phrase_index; + novel::Bigram * m_bigram; + + //internal step data structure + GPtrArray * m_steps_index; + /* Array of LookupStepIndex */ + GPtrArray * m_steps_content; + /* Array of LookupStepContent */ + + GArray * m_table_cache; + /* Array of phrase_token_t, for phrase lookup. */ + +public: + bool get_best_match(int sentence_length, utf16_t sentence[], MatchResults & results); + + bool convert_to_utf8(MatchResults results, /* out */ char * & result_string); +}; #endif diff --git a/src/lookup/pinyin_lookup.h b/src/lookup/pinyin_lookup.h index 244d15f..c95d16d 100644 --- a/src/lookup/pinyin_lookup.h +++ b/src/lookup/pinyin_lookup.h @@ -62,30 +62,6 @@ struct lookup_constraint_t{ }; typedef GArray * CandidateConstraints; /* Array of lookup_constraint_t */ -typedef GArray * MatchResults; /* Array of phrase_token_t */ - -namespace novel{ -class PinyinLargeTable; -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. @@ -121,7 +97,10 @@ protected: /* Array of LookupStepContent */ GArray * m_table_cache; - /* Array of PhraseIndexRanges */ + /* Array of PhraseIndexRanges, + * PhraseIndexRanges is an array of GArray of PhraseIndexRange, + * indexed by phrase library (only contains enabled phrase libraries). + */ WinnerTree * m_winner_tree; |