| |
| |
| |
| |
| |
| |
|
|
| #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; |
| }; |
|
|
| } |
|
|
|
|