diff options
author | Hieu Hoang <hieu@hoang.co.uk> | 2014-05-08 21:48:10 +0400 |
---|---|---|
committer | Hieu Hoang <hieu@hoang.co.uk> | 2014-05-08 21:48:10 +0400 |
commit | 91afa4b4f17247f015c7a4cff7aa0c4425557ebe (patch) | |
tree | bfd460601e5e5471409e6351b84c1e22e1cdf7b2 /moses/ChartTranslationOptions.cpp | |
parent | b64d87f1ba95335381188ef9461cf5418617ba96 (diff) |
delete chart translation option if -inf score
Diffstat (limited to 'moses/ChartTranslationOptions.cpp')
-rw-r--r-- | moses/ChartTranslationOptions.cpp | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/moses/ChartTranslationOptions.cpp b/moses/ChartTranslationOptions.cpp index 103d6e5b0..0bdad2b12 100644 --- a/moses/ChartTranslationOptions.cpp +++ b/moses/ChartTranslationOptions.cpp @@ -65,6 +65,22 @@ void ChartTranslationOptions::Evaluate(const InputType &input, const InputPath & transOpt.Evaluate(input, inputPath, m_stackVec); } + // get rid of -inf trans opts + size_t numDiscard = 0; + for (size_t i = 0; i < m_collection.size(); ++i) { + ChartTranslationOption *transOpt = m_collection[i].get(); + + if (transOpt->GetScores().GetWeightedScore() == - std::numeric_limits<float>::infinity()) { + ++numDiscard; + } + else if (numDiscard) { + m_collection[i - numDiscard] = boost::shared_ptr<ChartTranslationOption>(transOpt); + } + } + + m_collection.resize(m_collection.size() - numDiscard); + + } void ChartTranslationOptions::SetInputPath(const InputPath *inputPath) |