diff options
Diffstat (limited to 'mteval')
| -rw-r--r-- | mteval/ns.cc | 4 | ||||
| -rw-r--r-- | mteval/ns.h | 4 | ||||
| -rw-r--r-- | mteval/ns_ter.h | 1 | 
3 files changed, 9 insertions, 0 deletions
diff --git a/mteval/ns.cc b/mteval/ns.cc index da678b84..788f809a 100644 --- a/mteval/ns.cc +++ b/mteval/ns.cc @@ -21,6 +21,10 @@ map<string, EvaluationMetric*> EvaluationMetric::instances_;  SegmentEvaluator::~SegmentEvaluator() {}  EvaluationMetric::~EvaluationMetric() {} +bool EvaluationMetric::IsErrorMetric() const { +  return false; +} +  struct DefaultSegmentEvaluator : public SegmentEvaluator {    DefaultSegmentEvaluator(const vector<vector<WordID> >& refs, const EvaluationMetric* em) : refs_(refs), em_(em) {}    void Evaluate(const vector<WordID>& hyp, SufficientStats* out) const { diff --git a/mteval/ns.h b/mteval/ns.h index d88c263b..4e4c6975 100644 --- a/mteval/ns.h +++ b/mteval/ns.h @@ -94,6 +94,10 @@ class EvaluationMetric {   public:    const std::string& MetricId() const { return name_; } +  // returns true for metrics like WER and TER where lower scores are better +  // false for metrics like BLEU and METEOR where higher scores are better +  virtual bool IsErrorMetric() const; +    virtual unsigned SufficientStatisticsVectorSize() const;    virtual float ComputeScore(const SufficientStats& stats) const = 0;    virtual std::string DetailedScore(const SufficientStats& stats) const; diff --git a/mteval/ns_ter.h b/mteval/ns_ter.h index 3190fc1b..c5c25413 100644 --- a/mteval/ns_ter.h +++ b/mteval/ns_ter.h @@ -9,6 +9,7 @@ class TERMetric : public EvaluationMetric {    TERMetric() : EvaluationMetric("TER") {}   public: +  virtual bool IsErrorMetric() const;    virtual unsigned SufficientStatisticsVectorSize() const;    virtual std::string DetailedScore(const SufficientStats& stats) const;    virtual void ComputeSufficientStatistics(const std::vector<WordID>& hyp,  | 
