20 using namespace shogun;
61 SG_ERROR(
"Expected features of class string type word!\n")
67 int32_t* int_transition_probs=SG_MALLOC(int32_t,
num_params);
73 int_transition_probs[i]=0;
81 get_feature_vector(vec, len, free_vec);
84 for (int32_t feat=0; feat<len ; feat++)
85 int_transition_probs[feat*
num_symbols+vector[feat]]++;
88 free_feature_vector(vector, vec, free_vec);
100 int32_t offs=i*num_symbols+
102 get_masked_symbols((uint16_t)j,(uint8_t) 254);
103 int32_t original_num_symbols=(int32_t)
105 get_original_num_symbols();
107 for (int32_t k=0; k<original_num_symbols; k++)
108 sum+=int_transition_probs[offs+k];
119 SG_FREE(int_transition_probs);
124 const int32_t* indizes, int32_t num_indizes,
float64_t pseudo)
128 int32_t* int_transition_probs=SG_MALLOC(int32_t,
num_params);
133 int_transition_probs[i]=0;
135 for (vec=0; vec<num_indizes; vec++)
144 get_feature_vector(indizes[vec], len, free_vec);
146 free_feature_vector(vector, indizes[vec], free_vec);
150 for (int32_t feat=0; feat<len ; feat++)
151 int_transition_probs[feat*
num_symbols+vector[feat]]++;
163 int32_t original_num_symbols=(int32_t)
165 get_original_num_symbols();
166 for (int32_t k=0; k<original_num_symbols; k++)
168 sum+=int_transition_probs[i*num_symbols+
170 get_masked_symbols((uint16_t)j,(uint8_t) 254)+k];
174 (int_transition_probs[i*num_symbols+j]+pseudo)/
176 get_original_num_symbols()*pseudo);
182 SG_FREE(int_transition_probs);
190 for (int32_t i=1; i<len; i++)
201 get_feature_vector(num_example, len, free_vec);
204 for (int32_t i=1; i<len; i++)
208 free_feature_vector(vector, num_example, free_vec);
217 for (int32_t i=1; i<len; i++)
228 get_feature_vector(num_example, len, free_vec);
231 ASSERT(position>=0 && position<len)
232 uint16_t sym=(uint16_t) (num_param-position*
num_symbols);
237 free_feature_vector(vector, num_example, free_vec);
297 void CLinearHMM::init()
306 "transition_probs",
"Transition probabilities.");
308 "log_transition_probs",
"Transition probabilities (logspace).");