#ifndef MERT_TER_SCORER_H_ #define MERT_TER_SCORER_H_ #include #include #include #include "Types.h" #include "StatisticsBasedScorer.h" namespace MosesTuning { class ScoreStats; /** * TER scoring */ class TerScorer: public StatisticsBasedScorer { public: explicit TerScorer(const std::string& config = ""); ~TerScorer(); virtual void setReferenceFiles(const std::vector& referenceFiles); virtual void prepareStats(std::size_t sid, const std::string& text, ScoreStats& entry); virtual std::size_t NumberOfScores() const { // cerr << "TerScorer: " << (LENGTH + 1) << endl; return kLENGTH + 1; } virtual float calculateScore(const std::vector& comps) const; private: const int kLENGTH; std::string m_java_env; std::string m_ter_com_env; // data extracted from reference files std::vector m_ref_lengths; std::vector > m_ref_tokens; std::vector > m_references; std::vector > > m_multi_references; std::string m_pid; // no copying allowed TerScorer(const TerScorer&); TerScorer& operator=(const TerScorer&); }; } #endif // MERT_TER_SCORER_H_