| | |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| | #include <limits> |
| | #include <iostream> |
| | #include <sstream> |
| |
|
| | #include "SingleFactor.h" |
| | #include "PointerState.h" |
| | #include "moses/FF/FFState.h" |
| | #include "moses/TypeDef.h" |
| | #include "moses/Util.h" |
| | #include "moses/FactorCollection.h" |
| | #include "moses/Phrase.h" |
| | #include "moses/StaticData.h" |
| | #include "moses/FactorTypeSet.h" |
| |
|
| | using namespace std; |
| |
|
| | namespace Moses |
| | { |
| |
|
| | LanguageModelSingleFactor::LanguageModelSingleFactor(const std::string &line) |
| | :LanguageModelImplementation(line) |
| | ,m_factorType(0) |
| | { |
| | m_nullContextState = new PointerState(NULL); |
| | m_beginSentenceState = new PointerState(NULL); |
| | } |
| |
|
| | LanguageModelSingleFactor::~LanguageModelSingleFactor() |
| | { |
| | delete m_nullContextState; |
| | delete m_beginSentenceState; |
| | } |
| |
|
| | const FFState *LanguageModelSingleFactor::GetNullContextState() const |
| | { |
| | return m_nullContextState; |
| | } |
| |
|
| | const FFState *LanguageModelSingleFactor::GetBeginSentenceState() const |
| | { |
| | return m_beginSentenceState; |
| | } |
| |
|
| | FFState *LanguageModelSingleFactor::NewState(const FFState *from) const |
| | { |
| | return new PointerState(from ? static_cast<const PointerState*>(from)->lmstate : NULL); |
| | } |
| |
|
| | LMResult LanguageModelSingleFactor::GetValueForgotState(const std::vector<const Word*> &contextFactor, FFState &outState) const |
| | { |
| | return GetValue(contextFactor, &static_cast<PointerState&>(outState).lmstate); |
| | } |
| |
|
| | bool LanguageModelSingleFactor::IsUseable(const FactorMask &mask) const |
| | { |
| | bool ret = mask[m_factorType]; |
| | return ret; |
| | } |
| |
|
| | void LanguageModelSingleFactor::SetParameter(const std::string& key, const std::string& value) |
| | { |
| | if (key == "factor") { |
| | m_factorType = Scan<FactorType>(value); |
| | } else { |
| | LanguageModelImplementation::SetParameter(key, value); |
| | } |
| | } |
| |
|
| | std::string LanguageModelSingleFactor::DebugContextFactor(const std::vector<const Word*> &contextFactor) const |
| | { |
| | std::string ret; |
| | for (size_t i = 0; i < contextFactor.size(); ++i) { |
| | const Word &word = *contextFactor[i]; |
| | ret += word.ToString(); |
| | } |
| |
|
| | return ret; |
| | } |
| |
|
| | } |
| |
|
| |
|
| |
|
| |
|
| |
|