diff options
author | Chris Dyer <cdyer@cs.cmu.edu> | 2011-07-16 19:13:21 -0400 |
---|---|---|
committer | Chris Dyer <cdyer@cs.cmu.edu> | 2011-07-16 19:13:21 -0400 |
commit | c3828b0a2deb42de5c7378e93f93f5e69efb304c (patch) | |
tree | 0f7c0dc043caac5fc28e52c54da2746272bf1887 /mteval | |
parent | 816bee82abc909335d4f3a300cff99afa4dd1da5 (diff) |
tune regularizer
Diffstat (limited to 'mteval')
-rw-r--r-- | mteval/scorer.cc | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/mteval/scorer.cc b/mteval/scorer.cc index 2daa0daa..a83b9e2f 100644 --- a/mteval/scorer.cc +++ b/mteval/scorer.cc @@ -430,6 +430,7 @@ float BLEUScore::ComputeScore(vector<float>* precs, float* bp) const { float log_bleu = 0; if (precs) precs->clear(); int count = 0; + vector<float> total_precs(N()); for (int i = 0; i < N(); ++i) { if (hyp_ngram_counts[i] > 0) { float cor_count = correct_ngram_hit_counts[i]; @@ -440,14 +441,21 @@ float BLEUScore::ComputeScore(vector<float>* precs, float* bp) const { log_bleu += lprec; ++count; } + total_precs[i] = log_bleu; } - log_bleu /= static_cast<float>(count); + vector<float> bleus(N()); float lbp = 0.0; if (hyp_len < ref_len) lbp = (hyp_len - ref_len) / hyp_len; log_bleu += lbp; if (bp) *bp = exp(lbp); - return exp(log_bleu); + float wb = 0; + for (int i = 0; i < N(); ++i) { + bleus[i] = exp(total_precs[i] / (i+1) + lbp); + wb += bleus[i] / pow(2.0, 4.0 - i); + } + //return wb; + return bleus.back(); } |