#ifndef __MERGESCORER_H__ #define __MERGESCORER_H__ #include #include #include #include #include "Scorer.h" using namespace std; // enum MergeReferenceLengthStrategy { MERGE_AVERAGE, MERGE_SHORTEST, MERGE_CLOSEST }; class PerScorer; class ScoreStats; /** * Merge scoring. */ class MergeScorer: public StatisticsBasedScorer { public: explicit MergeScorer(const string& config = ""); ~MergeScorer(); virtual void setReferenceFiles(const vector& referenceFiles); virtual void prepareStats(size_t sid, const string& text, ScoreStats& entry); virtual void whoami() const { cerr << "I AM MergeScorer" << std::endl; } protected: friend class PerScorer; virtual float calculateScore(const vector& comps) const; private: const int kLENGTH; string javaEnv; string tercomEnv; // data extracted from reference files vector _reflengths; vector > _reftokens; vector > m_references; string m_pid; // no copying allowed MergeScorer(const MergeScorer&); MergeScorer& operator=(const MergeScorer&); }; #endif //__TERSCORER_H