#ifndef __CDERSCORER_H__ #define __CDERSCORER_H__ #include #include #include #include #include #include "Types.h" #include "Scorer.h" using namespace std; class CderScorer: public StatisticsBasedScorer { public: explicit CderScorer(const string& config); ~CderScorer(); virtual void setReferenceFiles(const vector& referenceFiles); virtual void prepareStats(size_t sid, const string& text, ScoreStats& entry) { vector stats; prepareStatsVector(sid, text, stats); stringstream sout; copy(stats.begin(),stats.end(),ostream_iterator(sout," ")); string stats_str = sout.str(); entry.set(stats_str); } virtual void prepareStatsVector(size_t sid, const string& text, vector& stats); virtual size_t NumberOfScores() const { return 2; } virtual float calculateScore(const vector& comps) const; private: typedef vector sent_t; vector > ref_sentences; vector computeCD(const sent_t& cand, const sent_t& ref) const; int distance(int word1, int word2) const { return word1 == word2 ? 0 : 1; } // no copying allowed CderScorer(const CderScorer&); CderScorer& operator=(const CderScorer&); }; #endif // __CDERSCORER_H__