From 01e219ec7d0bbd81471d7e6978397a2d53a71246 Mon Sep 17 00:00:00 2001 From: Chris Dyer Date: Tue, 3 May 2011 17:30:30 -0400 Subject: mira finished, clean up --- decoder/decoder.cc | 2 +- mteval/scorer.cc | 8 +++++--- utils/sparse_vector.h | 6 +++--- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/decoder/decoder.cc b/decoder/decoder.cc index d8dd0c61..ff068be9 100644 --- a/decoder/decoder.cc +++ b/decoder/decoder.cc @@ -942,7 +942,7 @@ bool DecoderImpl::Decode(const string& input, DecoderObserver* o) { } else if (csplit_output_plf) { cout << HypergraphIO::AsPLF(forest, false) << endl; } else { - if (!graphviz && !has_ref && !joshua_viz) { + if (!graphviz && !has_ref && !joshua_viz && !SILENT) { vector trans; ViterbiESentence(forest, &trans); cout << TD::GetString(trans) << endl << flush; diff --git a/mteval/scorer.cc b/mteval/scorer.cc index 04eeaa93..64ce63af 100644 --- a/mteval/scorer.cc +++ b/mteval/scorer.cc @@ -410,8 +410,7 @@ void BLEUScore::ScoreDetails(string* details) const { float bleu = ComputeScore(&precs, &bp); for (int i=N();i<4;++i) precs[i]=0.; - char *bufn; - bufn=buf+sprintf(buf, "BLEU = %.2f, %.1f|%.1f|%.1f|%.1f (brev=%.3f)", + sprintf(buf, "BLEU = %.2f, %.1f|%.1f|%.1f|%.1f (brev=%.3f)", bleu*100.0, precs[0]*100.0, precs[1]*100.0, @@ -427,7 +426,10 @@ float BLEUScore::ComputeScore(vector* precs, float* bp) const { int count = 0; for (int i = 0; i < N(); ++i) { if (hyp_ngram_counts[i] > 0) { - float lprec = log(correct_ngram_hit_counts[i]) - log(hyp_ngram_counts[i]); + float cor_count = correct_ngram_hit_counts[i]; + // smooth bleu + if (!cor_count) { cor_count = 0.01; } + float lprec = log(cor_count) - log(hyp_ngram_counts[i]); if (precs) precs->push_back(exp(lprec)); log_bleu += lprec; ++count; diff --git a/utils/sparse_vector.h b/utils/sparse_vector.h index e3721b50..a55436fb 100644 --- a/utils/sparse_vector.h +++ b/utils/sparse_vector.h @@ -42,14 +42,14 @@ BOOST_CLASS_TRACKING(SparseVector,track_never) #include "fast_sparse_vector.h" #define SparseVector FastSparseVector -template -SparseVector operator*(const SparseVector& a, const double& b) { +template +SparseVector operator*(const SparseVector& a, const S& b) { SparseVector result = a; return result *= b; } template -SparseVector operator*(const SparseVector& a, const T& b) { +SparseVector operator*(const SparseVector& a, const double& b) { SparseVector result = a; return result *= b; } -- cgit v1.2.3