|
|
#pragma once |
|
|
|
|
|
#include <string> |
|
|
#include <map> |
|
|
#include <vector> |
|
|
#include "moses/FF/StatefulFeatureFunction.h" |
|
|
#include "moses/Manager.h" |
|
|
#include "moses/FF/Dsg-Feature/dsgHyp.h" |
|
|
#include "moses/FF/Dsg-Feature/Desegmenter.h" |
|
|
#include "KenDsg.h" |
|
|
|
|
|
|
|
|
namespace Moses |
|
|
{ |
|
|
|
|
|
class DesegModel : public StatefulFeatureFunction |
|
|
{ |
|
|
public: |
|
|
|
|
|
DsgLM * DSGM; |
|
|
Desegmenter* desegT; |
|
|
int tFactor; |
|
|
int order; |
|
|
int numFeatures; |
|
|
bool optimistic; |
|
|
|
|
|
DesegModel(const std::string &line); |
|
|
~DesegModel(); |
|
|
|
|
|
void readLanguageModel(const char *); |
|
|
void Load(AllOptions::ptr const& opts); |
|
|
|
|
|
FFState* EvaluateWhenApplied( |
|
|
const Hypothesis& cur_hypo, |
|
|
const FFState* prev_state, |
|
|
ScoreComponentCollection* accumulator) const; |
|
|
|
|
|
virtual FFState* EvaluateWhenApplied( |
|
|
const ChartHypothesis& , |
|
|
int , |
|
|
ScoreComponentCollection* accumulator) const; |
|
|
|
|
|
void EvaluateInIsolation(const Phrase &source |
|
|
, const TargetPhrase &targetPhrase |
|
|
, ScoreComponentCollection &scoreBreakdown |
|
|
, ScoreComponentCollection &estimatedScores) const; |
|
|
|
|
|
virtual const FFState* EmptyHypothesisState(const InputType &input) const; |
|
|
|
|
|
virtual std::string GetScoreProducerWeightShortName(unsigned idx=0) const; |
|
|
|
|
|
void SetParameter(const std::string& key, const std::string& value); |
|
|
|
|
|
bool IsUseable(const FactorMask &mask) const; |
|
|
|
|
|
protected: |
|
|
typedef std::vector<float> Scores; |
|
|
std::string m_lmPath; |
|
|
std::string m_desegPath; |
|
|
bool m_simple; |
|
|
}; |
|
|
|
|
|
|
|
|
} |
|
|
|