diff options
author | Hieu Hoang <hieuhoang@gmail.com> | 2014-12-02 22:09:10 +0300 |
---|---|---|
committer | Hieu Hoang <hieuhoang@gmail.com> | 2014-12-02 22:09:10 +0300 |
commit | 3da84150959de4dc99edf3ee35665e81a23aae26 (patch) | |
tree | ee7c487a26f2d56f56763dd5fe8885f6d6130465 /moses/IOWrapper.cpp | |
parent | ba7afba9f6f325441387557ab8af487d5901f023 (diff) |
add OutputNBest() as abstract method to BaseManager. Tighten up framework
Diffstat (limited to 'moses/IOWrapper.cpp')
-rw-r--r-- | moses/IOWrapper.cpp | 38 |
1 files changed, 2 insertions, 36 deletions
diff --git a/moses/IOWrapper.cpp b/moses/IOWrapper.cpp index 057a10600..becde9b65 100644 --- a/moses/IOWrapper.cpp +++ b/moses/IOWrapper.cpp @@ -258,12 +258,6 @@ GetInput(InputType* inputType) } } -void IOWrapper::FixPrecision(std::ostream &stream, size_t size) -{ - stream.setf(std::ios::fixed); - stream.precision(size); -} - std::map<size_t, const Factor*> IOWrapper::GetPlaceholders(const Hypothesis &hypo, FactorType placeholderFactor) { const InputPath &inputPath = hypo.GetTranslationOption().GetInputPath(); @@ -628,34 +622,6 @@ void IOWrapper::OutputTreeFragmentsTranslationOptions(std::ostream &out, Applica } } -void IOWrapper::OutputNBestList(const std::vector<search::Applied> &nbest, long translationId) -{ - std::ostringstream out; - // wtf? copied from the original OutputNBestList - if (m_nBestOutputCollector->OutputIsCout()) { - FixPrecision(out); - } - Phrase outputPhrase; - ScoreComponentCollection features; - for (std::vector<search::Applied>::const_iterator i = nbest.begin(); i != nbest.end(); ++i) { - Incremental::PhraseAndFeatures(*i, outputPhrase, features); - // <s> and </s> - UTIL_THROW_IF2(outputPhrase.GetSize() < 2, - "Output phrase should have contained at least 2 words (beginning and end-of-sentence)"); - - outputPhrase.RemoveWord(0); - outputPhrase.RemoveWord(outputPhrase.GetSize() - 1); - out << translationId << " ||| "; - OutputSurface(out, outputPhrase, *m_outputFactorOrder, false); - out << " ||| "; - OutputAllFeatureScores(features, out); - out << " ||| " << i->GetScore() << '\n'; - } - out << std::flush; - assert(m_nBestOutputCollector); - m_nBestOutputCollector->Write(translationId, out.str()); -} - /*** * print surface factor only for the given phrase */ @@ -1353,7 +1319,7 @@ void IOWrapper::OutputBestHypo(const Syntax::SHyperedge *best, return; } std::ostringstream out; - IOWrapper::FixPrecision(out); + FixPrecision(out); if (best == NULL) { VERBOSE(1, "NO BEST TRANSLATION" << std::endl); if (StaticData::Instance().GetOutputHypoScore()) { @@ -1383,7 +1349,7 @@ void IOWrapper::OutputNBestList( if (m_nBestOutputCollector->OutputIsCout()) { // Set precision only if we're writing the n-best list to cout. This is to // preserve existing behaviour, but should probably be done either way. - IOWrapper::FixPrecision(out); + FixPrecision(out); } bool includeWordAlignment = |