#ifndef __TERSCORER_H__ #define __TERSCORER_H__ #include #include #include #include #include "Types.h" #include "Scorer.h" using namespace std; // enum TerReferenceLengthStrategy { TER_AVERAGE, TER_SHORTEST, TER_CLOSEST }; class ScoreStats; /** * TER scoring */ class TerScorer: public StatisticsBasedScorer { public: explicit TerScorer(const string& config = ""); ~TerScorer(); virtual void setReferenceFiles(const vector& referenceFiles); virtual void prepareStats(size_t sid, const string& text, ScoreStats& entry); virtual void whoami() const { cerr << "I AM TerScorer" << std::endl; } virtual size_t NumberOfScores() const { // cerr << "TerScorer: " << (LENGTH + 1) << endl; return kLENGTH + 1; } 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; vector > > m_multi_references; string m_pid; // no copying allowed TerScorer(const TerScorer&); TerScorer& operator=(const TerScorer&); }; #endif // __TERSCORER_H__