Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/moses-smt/mosesdecoder.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/moses2/TranslationModel/Memory/PhraseTableMemory.h')
-rw-r--r--contrib/moses2/TranslationModel/Memory/PhraseTableMemory.h85
1 files changed, 85 insertions, 0 deletions
diff --git a/contrib/moses2/TranslationModel/Memory/PhraseTableMemory.h b/contrib/moses2/TranslationModel/Memory/PhraseTableMemory.h
new file mode 100644
index 000000000..035c7c9c5
--- /dev/null
+++ b/contrib/moses2/TranslationModel/Memory/PhraseTableMemory.h
@@ -0,0 +1,85 @@
+/*
+ * PhraseTableMemory.h
+ *
+ * Created on: 28 Oct 2015
+ * Author: hieu
+ */
+#pragma once
+
+#include "../PhraseTable.h"
+#include "../../legacy/Util2.h"
+#include "../../SCFG/InputPath.h"
+#include "Node.h"
+#include "../../PhraseBased/PhraseImpl.h"
+#include "../../PhraseBased/TargetPhraseImpl.h"
+#include "../../PhraseBased/TargetPhrases.h"
+#include "../../SCFG/PhraseImpl.h"
+#include "../../SCFG/TargetPhraseImpl.h"
+#include "../../SCFG/TargetPhrases.h"
+
+namespace Moses2
+{
+
+class PhraseTableMemory: public PhraseTable
+{
+ typedef PtMem::Node<Word, Phrase<Word>, TargetPhraseImpl, TargetPhrases> PBNODE;
+ typedef PtMem::Node<SCFG::Word, Phrase<SCFG::Word>, SCFG::TargetPhraseImpl, SCFG::TargetPhrases> SCFGNODE;
+
+//////////////////////////////////////
+ class ActiveChartEntryMem : public SCFG::ActiveChartEntry
+ {
+ typedef SCFG::ActiveChartEntry Parent;
+ public:
+ const PhraseTableMemory::SCFGNODE &node;
+
+ ActiveChartEntryMem(MemPool &pool, const PhraseTableMemory::SCFGNODE &vnode)
+ :Parent(pool)
+ ,node(vnode)
+ {}
+
+ ActiveChartEntryMem(
+ MemPool &pool,
+ const PhraseTableMemory::SCFGNODE &vnode,
+ const ActiveChartEntry &prevEntry)
+ :Parent(prevEntry)
+ ,node(vnode)
+ {}
+ };
+
+ //////////////////////////////////////
+public:
+ PhraseTableMemory(size_t startInd, const std::string &line);
+ virtual ~PhraseTableMemory();
+
+ virtual void Load(System &system);
+ virtual TargetPhrases *Lookup(const Manager &mgr, MemPool &pool,
+ InputPath &inputPath) const;
+
+ virtual void InitActiveChart(
+ MemPool &pool,
+ const SCFG::Manager &mgr,
+ SCFG::InputPath &path) const;
+
+ void Lookup(MemPool &pool,
+ const SCFG::Manager &mgr,
+ size_t maxChartSpan,
+ const SCFG::Stacks &stacks,
+ SCFG::InputPath &path) const;
+
+protected:
+ PBNODE *m_rootPb;
+ SCFGNODE *m_rootSCFG;
+
+ void LookupGivenNode(
+ MemPool &pool,
+ const SCFG::Manager &mgr,
+ const SCFG::ActiveChartEntry &prevEntry,
+ const SCFG::Word &wordSought,
+ const Moses2::Hypotheses *hypos,
+ const Moses2::Range &subPhraseRange,
+ SCFG::InputPath &outPath) const;
+
+};
+
+}
+