https://github.com/wilkeraziz/mosesdecoder
Tip revision: c55161dff40ef01fea15d6c0a8ed30b8ce1c7d46 authored by jiejiang on 16 January 2014, 01:08:01 UTC
merge c11 revert with mingw changes
merge c11 revert with mingw changes
Tip revision: c55161d
SyntacticLanguageModel.h
//
#ifndef moses_SyntacticLanguageModel_h
#define moses_SyntacticLanguageModel_h
#include "FeatureFunction.h"
#include <stdexcept>
class YModel; // hidden model
class XModel; // observed model
namespace Moses
{
template <class MH, class MO> class SyntacticLanguageModelFiles;
class SyntacticLanguageModel : public StatefulFeatureFunction
{
public:
SyntacticLanguageModel(const std::string &line);
~SyntacticLanguageModel();
size_t GetNumScoreComponents() const;
const FFState* EmptyHypothesisState(const InputType &input) const;
FFState* Evaluate(const Hypothesis& cur_hypo,
const FFState* prev_state,
ScoreComponentCollection* accumulator) const;
FFState* EvaluateChart(const ChartHypothesis& cur_hypo,
int featureID,
ScoreComponentCollection* accumulator) const {
throw std::runtime_error("Syntactic LM can only be used with phrase-based decoder.");
}
// double perplexity();
private:
const size_t m_NumScoreComponents;
SyntacticLanguageModelFiles<YModel,XModel>* m_files;
const FactorType m_factorType;
const size_t m_beamWidth;
};
}
#endif