|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#pragma once |
|
#include <iostream> |
|
#include <string> |
|
#include "TypeDef.h" |
|
#include "MemPool.h" |
|
|
|
namespace Moses2 |
|
{ |
|
|
|
class FeatureFunction; |
|
class FeatureFunctions; |
|
class System; |
|
|
|
class Scores |
|
{ |
|
public: |
|
Scores(const System &system, MemPool &pool, size_t numScores); |
|
Scores(const System &system, MemPool &pool, size_t numScores, |
|
const Scores &origScores); |
|
|
|
virtual ~Scores(); |
|
|
|
SCORE GetTotalScore() const { |
|
return m_total; |
|
} |
|
|
|
const SCORE *GetScores(const FeatureFunction &featureFunction) const; |
|
|
|
void Reset(const System &system); |
|
|
|
void CreateFromString(const std::string &str, |
|
const FeatureFunction &featureFunction, const System &system, |
|
bool transformScores); |
|
|
|
void PlusEquals(const System &system, const FeatureFunction &featureFunction, |
|
const SCORE &score); |
|
|
|
void PlusEquals(const System &system, const FeatureFunction &featureFunction, |
|
const SCORE &score, size_t offset); |
|
|
|
void PlusEquals(const System &system, const FeatureFunction &featureFunction, |
|
const std::vector<SCORE> &scores); |
|
|
|
void PlusEquals(const System &system, const FeatureFunction &featureFunction, |
|
SCORE scores[]); |
|
|
|
void PlusEquals(const System &system, const Scores &scores); |
|
|
|
void MinusEquals(const System &system, const Scores &scores); |
|
|
|
void Assign(const System &system, const FeatureFunction &featureFunction, |
|
const SCORE &score); |
|
|
|
void Assign(const System &system, const FeatureFunction &featureFunction, |
|
const std::vector<SCORE> &scores); |
|
|
|
std::string Debug(const System &system) const; |
|
|
|
void OutputBreakdown(std::ostream &out, const System &system) const; |
|
|
|
|
|
static SCORE CalcWeightedScore(const System &system, |
|
const FeatureFunction &featureFunction, SCORE scores[]); |
|
|
|
static SCORE CalcWeightedScore(const System &system, |
|
const FeatureFunction &featureFunction, SCORE score); |
|
|
|
protected: |
|
SCORE *m_scores; |
|
SCORE m_total; |
|
}; |
|
|
|
} |
|
|
|
|