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:
authorHieu Hoang <hieuhoang@gmail.com>2013-07-08 22:01:28 +0400
committerHieu Hoang <hieuhoang@gmail.com>2013-07-08 22:01:28 +0400
commit8d857fa26e061ca41a1cc0a63bc14510465d88ae (patch)
tree061b80f6e6d618f9b966c0c5f0f730cb1a9bb2a2 /OnDiskPt
parentb03ac10a2df0f44f18c554ac05a1b7912127e031 (diff)
OnDisk pt passes regression
Diffstat (limited to 'OnDiskPt')
-rw-r--r--OnDiskPt/TargetPhrase.cpp15
-rw-r--r--OnDiskPt/TargetPhrase.h3
-rw-r--r--OnDiskPt/TargetPhraseCollection.cpp6
-rw-r--r--OnDiskPt/TargetPhraseCollection.h3
4 files changed, 18 insertions, 9 deletions
diff --git a/OnDiskPt/TargetPhrase.cpp b/OnDiskPt/TargetPhrase.cpp
index 2e3e3511b..1e5cf53d1 100644
--- a/OnDiskPt/TargetPhrase.cpp
+++ b/OnDiskPt/TargetPhrase.cpp
@@ -227,14 +227,17 @@ Moses::TargetPhrase *TargetPhrase::ConvertToMoses(const std::vector<Moses::Facto
, const std::vector<Moses::FactorType> &outputFactors
, const Vocab &vocab
, const Moses::PhraseDictionary &phraseDict
- , const std::vector<float> &weightT) const
+ , const std::vector<float> &weightT
+ , bool isSyntax) const
{
Moses::TargetPhrase *ret = new Moses::TargetPhrase();
// words
size_t phraseSize = GetSize();
CHECK(phraseSize > 0); // last word is lhs
- --phraseSize;
+ if (isSyntax) {
+ --phraseSize;
+ }
for (size_t pos = 0; pos < phraseSize; ++pos) {
GetWord(pos).ConvertToMoses(outputFactors, vocab, ret->AddWord());
@@ -261,9 +264,11 @@ Moses::TargetPhrase *TargetPhrase::ConvertToMoses(const std::vector<Moses::Facto
ret->SetAlignTerm(alignTerm);
ret->SetAlignNonTerm(alignNonTerm);
- Moses::Word *lhsTarget = new Moses::Word(true);
- GetWord(GetSize() - 1).ConvertToMoses(outputFactors, vocab, *lhsTarget);
- ret->SetTargetLHS(lhsTarget);
+ if (isSyntax) {
+ Moses::Word *lhsTarget = new Moses::Word(true);
+ GetWord(GetSize() - 1).ConvertToMoses(outputFactors, vocab, *lhsTarget);
+ ret->SetTargetLHS(lhsTarget);
+ }
// set source phrase
Moses::Phrase mosesSP(Moses::Input);
diff --git a/OnDiskPt/TargetPhrase.h b/OnDiskPt/TargetPhrase.h
index a73ab75e1..5b8a30296 100644
--- a/OnDiskPt/TargetPhrase.h
+++ b/OnDiskPt/TargetPhrase.h
@@ -103,7 +103,8 @@ public:
, const std::vector<Moses::FactorType> &outputFactors
, const Vocab &vocab
, const Moses::PhraseDictionary &phraseDict
- , const std::vector<float> &weightT) const;
+ , const std::vector<float> &weightT
+ , bool isSyntax) const;
UINT64 ReadOtherInfoFromFile(UINT64 filePos, std::fstream &fileTPColl);
UINT64 ReadFromFile(std::fstream &fileTP);
diff --git a/OnDiskPt/TargetPhraseCollection.cpp b/OnDiskPt/TargetPhraseCollection.cpp
index fb1090c93..300dd4e99 100644
--- a/OnDiskPt/TargetPhraseCollection.cpp
+++ b/OnDiskPt/TargetPhraseCollection.cpp
@@ -117,7 +117,8 @@ Moses::TargetPhraseCollection *TargetPhraseCollection::ConvertToMoses(const std:
, const std::vector<Moses::FactorType> &outputFactors
, const Moses::PhraseDictionary &phraseDict
, const std::vector<float> &weightT
- , Vocab &vocab) const
+ , Vocab &vocab
+ , bool isSyntax) const
{
Moses::TargetPhraseCollection *ret = new Moses::TargetPhraseCollection();
@@ -127,7 +128,8 @@ Moses::TargetPhraseCollection *TargetPhraseCollection::ConvertToMoses(const std:
Moses::TargetPhrase *mosesPhrase = tp.ConvertToMoses(inputFactors, outputFactors
, vocab
, phraseDict
- , weightT);
+ , weightT
+ , isSyntax);
/*
// debugging output
diff --git a/OnDiskPt/TargetPhraseCollection.h b/OnDiskPt/TargetPhraseCollection.h
index 684dde86d..72885ca12 100644
--- a/OnDiskPt/TargetPhraseCollection.h
+++ b/OnDiskPt/TargetPhraseCollection.h
@@ -73,7 +73,8 @@ public:
, const std::vector<Moses::FactorType> &outputFactors
, const Moses::PhraseDictionary &phraseDict
, const std::vector<float> &weightT
- , Vocab &vocab) const;
+ , Vocab &vocab
+ , bool isSyntax) const;
void ReadFromFile(size_t tableLimit, UINT64 filePos, OnDiskWrapper &onDiskWrapper);
const std::string GetDebugStr() const;