diff options
author | Tetsuo Kiso <tetsuo-s@is.naist.jp> | 2012-03-18 00:58:40 +0400 |
---|---|---|
committer | Tetsuo Kiso <tetsuo-s@is.naist.jp> | 2012-03-18 00:58:40 +0400 |
commit | 6b95a19eda818fb772767a0037c70a7bbb6c32e5 (patch) | |
tree | e1b7d608005bcc33ee00646263583e83d03a53a2 /mert/BleuScorer.h | |
parent | 918bcafb808fe3067a4d689607bffb7dbbf0a914 (diff) |
Create Reference class to clean up BleuScorer.
- Add an unit test for Reference.
- Move functions to calculate the reference length from
BleuScorer to Reference.
Diffstat (limited to 'mert/BleuScorer.h')
-rw-r--r-- | mert/BleuScorer.h | 16 |
1 files changed, 5 insertions, 11 deletions
diff --git a/mert/BleuScorer.h b/mert/BleuScorer.h index c35d4ad1d..d58277a41 100644 --- a/mert/BleuScorer.h +++ b/mert/BleuScorer.h @@ -15,6 +15,7 @@ using namespace std; const int kBleuNgramOrder = 4; class NgramCounts; +class Reference; /** * Bleu scoring @@ -30,6 +31,8 @@ public: virtual float calculateScore(const vector<int>& comps) const; virtual size_t NumberOfScores() const { return 2 * kBleuNgramOrder + 1; } + int CalcReferenceLength(size_t sentence_id, size_t length); + private: enum ReferenceLengthType { AVERAGE, @@ -44,19 +47,10 @@ private: void dump_counts(std::ostream* os, const NgramCounts& counts) const; - // For calculating effective reference length. - void CalcAverage(size_t sentence_id, - vector<ScoreStatsType>& stats) const; - void CalcClosest(size_t sentence_id, size_t length, - vector<ScoreStatsType>& stats) const; - void CalcShortest(size_t sentence_id, - vector<ScoreStatsType>& stats) const; - ReferenceLengthType m_ref_length_type; - // data extracted from reference files - ScopedVector<NgramCounts> m_ref_counts; - vector<vector<size_t> > m_ref_lengths; + // reference translations. + ScopedVector<Reference> m_references; // no copying allowed BleuScorer(const BleuScorer&); |