start lexicalised re-ordering

This commit is contained in:
Hieu Hoang 2015-12-15 10:27:37 +00:00
parent bac4dbe233
commit aa6182522e
4 changed files with 135 additions and 1 deletions

View File

@ -17,6 +17,7 @@
#include "WordPenalty.h"
#include "PhrasePenalty.h"
#include "Distortion.h"
#include "LexicalReordering.h"
#include "../TranslationModel/PhraseTableMemory.h"
#include "../TranslationModel/ProbingPT.h"
#include "../TranslationModel/UnknownWordPenalty.h"
@ -126,7 +127,9 @@ FeatureFunction *FeatureFunctions::Create(const std::string &line)
}
else if (toks[0] == "PhrasePenalty") {
ret = new PhrasePenalty(m_ffStartInd, line);
//ret = new KENLMBatch(m_ffStartInd, line);
}
else if (toks[0] == "LexicalReordering") {
ret = new LexicalReordering(m_ffStartInd, line);
}
else {
//ret = new SkeletonStatefulFF(m_ffStartInd, line);

View File

@ -0,0 +1,85 @@
/*
* LexicalReordering.cpp
*
* Created on: 15 Dec 2015
* Author: hieu
*/
#include "LexicalReordering.h"
#include "../Search/Manager.h"
namespace Moses2 {
struct LexicalReorderingState : public FFState
{
LexicalReorderingState()
{
// uninitialised
}
size_t hash() const {
return 0;
}
virtual bool operator==(const FFState& other) const {
return true;
}
virtual std::string ToString() const
{
return "";
}
};
///////////////////////////////////////////////////////////////////////
LexicalReordering::LexicalReordering(size_t startInd, const std::string &line)
:StatefulFeatureFunction(startInd, line)
{
ReadParameters();
}
LexicalReordering::~LexicalReordering()
{
// TODO Auto-generated destructor stub
}
void LexicalReordering::Load(System &system)
{
}
void LexicalReordering::SetParameter(const std::string& key, const std::string& value)
{
if (key == "path") {
m_path = value;
}
else {
StatefulFeatureFunction::SetParameter(key, value);
}
}
FFState* LexicalReordering::BlankState(const Manager &mgr, const InputType &input) const
{
MemPool &pool = mgr.GetPool();
return new (pool.Allocate<LexicalReorderingState>()) LexicalReorderingState();
}
void LexicalReordering::EmptyHypothesisState(FFState &state, const Manager &mgr, const InputType &input) const
{
}
void LexicalReordering::EvaluateWhenApplied(const Manager &mgr,
const Hypothesis &hypo,
const FFState &prevState,
Scores &scores,
FFState &state) const
{
}
} /* namespace Moses2 */

View File

@ -0,0 +1,45 @@
/*
* LexicalReordering.h
*
* Created on: 15 Dec 2015
* Author: hieu
*/
#pragma once
#include "StatefulFeatureFunction.h"
namespace Moses2 {
class LexicalReordering : public StatefulFeatureFunction
{
public:
LexicalReordering(size_t startInd, const std::string &line);
virtual ~LexicalReordering();
virtual void Load(System &system);
virtual void SetParameter(const std::string& key, const std::string& value);
virtual FFState* BlankState(const Manager &mgr, const InputType &input) const;
virtual void EmptyHypothesisState(FFState &state, const Manager &mgr, const InputType &input) const;
virtual void
EvaluateInIsolation(const System &system,
const Phrase &source,
const TargetPhrase &targetPhrase,
Scores &scores,
Scores *estimatedScores) const
{}
virtual void EvaluateWhenApplied(const Manager &mgr,
const Hypothesis &hypo,
const FFState &prevState,
Scores &scores,
FFState &state) const;
protected:
std::string m_path;
};
} /* namespace Moses2 */

View File

@ -30,6 +30,7 @@ external-lib boost_serialization ;
FF/Distortion.cpp
FF/FeatureFunction.cpp
FF/FeatureFunctions.cpp
FF/LexicalReordering.cpp
FF/PhrasePenalty.cpp
FF/SkeletonStatefulFF.cpp
FF/SkeletonStatelessFF.cpp