00001 #ifndef MERT_TER_SCORER_H_
00002 #define MERT_TER_SCORER_H_
00003
00004 #include <set>
00005 #include <string>
00006 #include <vector>
00007
00008 #include "Types.h"
00009 #include "StatisticsBasedScorer.h"
00010
00011 namespace MosesTuning
00012 {
00013
00014
00015 class ScoreStats;
00016
00020 class TerScorer: public StatisticsBasedScorer
00021 {
00022 public:
00023 explicit TerScorer(const std::string& config = "");
00024 ~TerScorer();
00025
00026 virtual void setReferenceFiles(const std::vector<std::string>& referenceFiles);
00027 virtual void prepareStats(std::size_t sid, const std::string& text, ScoreStats& entry);
00028
00029 virtual std::size_t NumberOfScores() const {
00030
00031 return kLENGTH + 1;
00032 }
00033
00034 virtual float calculateScore(const std::vector<ScoreStatsType>& comps) const;
00035
00036 private:
00037 const int kLENGTH;
00038
00039 std::string m_java_env;
00040 std::string m_ter_com_env;
00041
00042
00043 std::vector<std::size_t> m_ref_lengths;
00044 std::vector<std::multiset<int> > m_ref_tokens;
00045 std::vector<std::vector<int> > m_references;
00046 std::vector<std::vector<std::vector<int> > > m_multi_references;
00047 std::string m_pid;
00048
00049
00050 TerScorer(const TerScorer&);
00051 TerScorer& operator=(const TerScorer&);
00052 };
00053
00054 }
00055
00056 #endif // MERT_TER_SCORER_H_