diff options
Diffstat (limited to 'decoder')
-rw-r--r-- | decoder/ff_soft_syn.cc | 51 |
1 files changed, 9 insertions, 42 deletions
diff --git a/decoder/ff_soft_syn.cc b/decoder/ff_soft_syn.cc index 50c2365e..c108e58c 100644 --- a/decoder/ff_soft_syn.cc +++ b/decoder/ff_soft_syn.cc @@ -45,8 +45,6 @@ struct SoftSynFeatureImpl { ~SoftSynFeatureImpl() { FreeSentenceVariables(); } - static int ReserveStateSize() { return 2 * sizeof(uint16_t); } - void InitializeInputSentence(const std::string& parse_file, const std::string& index_map_file) { FreeSentenceVariables(); @@ -210,25 +208,12 @@ struct SoftSynFeatureImpl { } void SetSoftSynFeature(const Hypergraph::Edge& edge, - SparseVector<double>* features, - const vector<const void*>& ant_states, void* state) { - vector<uint16_t> vec_pos; + SparseVector<double>* features) { if (parsed_tree_ == NULL) return; - uint16_t* remnant = reinterpret_cast<uint16_t*>(state); - short int mapped_begin, mapped_end; MapIndex(edge.i_, edge.j_ - 1, mapped_begin, mapped_end); - remnant[0] = mapped_begin; - remnant[1] = mapped_end; - - for (size_t i = 0; i < edge.tail_nodes_.size(); i++) { - const uint16_t* astate = reinterpret_cast<const uint16_t*>(ant_states[i]); - vec_pos.push_back(astate[0]); - vec_pos.push_back(astate[1]); - } - // soft feature for the whole span const vector<string> vecFeature = GenerateSoftFeature(mapped_begin, mapped_end, map_features_); @@ -300,7 +285,6 @@ struct SoftSynFeatureImpl { SoftSynFeature::SoftSynFeature(std::string param) { pimpl_ = new SoftSynFeatureImpl(param); - SetStateSize(SoftSynFeatureImpl::ReserveStateSize()); name_ = "SoftSynFeature"; } @@ -316,10 +300,10 @@ void SoftSynFeature::PrepareForInput(const SentenceMetadata& smeta) { } void SoftSynFeature::TraversalFeaturesImpl( - const SentenceMetadata& /* smeta */, const Hypergraph::Edge& edge, - const vector<const void*>& ant_states, SparseVector<double>* features, - SparseVector<double>* /*estimated_features*/, void* state) const { - pimpl_->SetSoftSynFeature(edge, features, ant_states, state); + const SentenceMetadata& /*smeta*/, const Hypergraph::Edge& edge, + const vector<const void*>& /*ant_states*/, SparseVector<double>* features, + SparseVector<double>* /*estimated_features*/, void* /*state*/) const { + pimpl_->SetSoftSynFeature(edge, features); } string SoftSynFeature::usage(bool /*param*/, bool /*verbose*/) { @@ -369,8 +353,6 @@ struct SoftKBestSynFeatureImpl { ~SoftKBestSynFeatureImpl() { FreeSentenceVariables(); } - static int ReserveStateSize() { return 2 * sizeof(uint16_t); } - void InitializeInputSentence(const std::string& parse_file, const std::string& index_map_file) { FreeSentenceVariables(); @@ -384,26 +366,12 @@ struct SoftKBestSynFeatureImpl { } void SetSoftKBestSynFeature(const Hypergraph::Edge& edge, - SparseVector<double>* features, - const vector<const void*>& ant_states, - void* state) { - vector<uint16_t> vec_pos; + SparseVector<double>* features) { if (vec_parsed_tree_.size() == 0) return; - uint16_t* remnant = reinterpret_cast<uint16_t*>(state); - short int mapped_begin, mapped_end; MapIndex(edge.i_, edge.j_ - 1, mapped_begin, mapped_end); - remnant[0] = mapped_begin; - remnant[1] = mapped_end; - - for (size_t i = 0; i < edge.tail_nodes_.size(); i++) { - const uint16_t* astate = reinterpret_cast<const uint16_t*>(ant_states[i]); - vec_pos.push_back(astate[0]); - vec_pos.push_back(astate[1]); - } - // soft feature for the whole span const MapDouble* pMapFeature = GenerateSoftFeature(mapped_begin, mapped_end, map_features_); @@ -646,7 +614,6 @@ struct SoftKBestSynFeatureImpl { SoftKBestSynFeature::SoftKBestSynFeature(std::string param) { pimpl_ = new SoftKBestSynFeatureImpl(param); - SetStateSize(SoftKBestSynFeatureImpl::ReserveStateSize()); name_ = "SoftKBestSynFeature"; } @@ -663,9 +630,9 @@ void SoftKBestSynFeature::PrepareForInput(const SentenceMetadata& smeta) { void SoftKBestSynFeature::TraversalFeaturesImpl( const SentenceMetadata& /* smeta */, const Hypergraph::Edge& edge, - const vector<const void*>& ant_states, SparseVector<double>* features, - SparseVector<double>* /*estimated_features*/, void* state) const { - pimpl_->SetSoftKBestSynFeature(edge, features, ant_states, state); + const vector<const void*>& /*ant_states*/, SparseVector<double>* features, + SparseVector<double>* /*estimated_features*/, void* /*state*/) const { + pimpl_->SetSoftKBestSynFeature(edge, features); } string SoftKBestSynFeature::usage(bool /*param*/, bool /*verbose*/) { |