diff options
author | Jonathan Clark <jon.h.clark@gmail.com> | 2011-05-03 12:13:39 -0400 |
---|---|---|
committer | Jonathan Clark <jon.h.clark@gmail.com> | 2011-05-03 12:13:39 -0400 |
commit | 3dec805a31b4542eee07adc6d2f42f77f7980045 (patch) | |
tree | 7d29e2b5f9e9a00953d1b6771816607c6d2de071 /decoder | |
parent | 148c0d57317e097f94a1562452bc50cdc23408dc (diff) | |
parent | c214f83e941b10daa47dc9a6f0352dde42dbadb4 (diff) |
Merge branch 'master' of github.com:redpony/cdec
Diffstat (limited to 'decoder')
-rw-r--r-- | decoder/decoder.cc | 5 | ||||
-rw-r--r-- | decoder/ff.h | 3 |
2 files changed, 7 insertions, 1 deletions
diff --git a/decoder/decoder.cc b/decoder/decoder.cc index 0d7e84ad..d8dd0c61 100644 --- a/decoder/decoder.cc +++ b/decoder/decoder.cc @@ -176,8 +176,11 @@ struct DecoderImpl { bool Decode(const string& input, DecoderObserver*); void SetWeights(const vector<double>& weights) { init_weights = weights; - for (int i = 0; i < rescoring_passes.size(); ++i) + for (int i = 0; i < rescoring_passes.size(); ++i) { + if (rescoring_passes[i].models) + rescoring_passes[i].models->SetWeights(weights); rescoring_passes[i].weight_vector = weights; + } } void SetId(int next_sent_id) { sent_id = next_sent_id - 1; } diff --git a/decoder/ff.h b/decoder/ff.h index 89b8b067..c3aa9b6d 100644 --- a/decoder/ff.h +++ b/decoder/ff.h @@ -264,6 +264,9 @@ class ModelSet { ModelSet(const std::vector<double>& weights, const std::vector<const FeatureFunction*>& models); + // TODO stop stupid copy + void SetWeights(const std::vector<double>& w) { weights_ = w; } + // sets edge->feature_values_ and edge->edge_prob_ // NOTE: edge must not necessarily be in hg.edges_ but its TAIL nodes // must be. edge features are supposed to be overwritten, not added to (possibly because rule features aren't in ModelSet so need to be left alone |