diff options
author | Hieu Hoang <hieuhoang@gmail.com> | 2013-07-08 22:01:28 +0400 |
---|---|---|
committer | Hieu Hoang <hieuhoang@gmail.com> | 2013-07-08 22:01:28 +0400 |
commit | 8d857fa26e061ca41a1cc0a63bc14510465d88ae (patch) | |
tree | 061b80f6e6d618f9b966c0c5f0f730cb1a9bb2a2 /OnDiskPt | |
parent | b03ac10a2df0f44f18c554ac05a1b7912127e031 (diff) |
OnDisk pt passes regression
Diffstat (limited to 'OnDiskPt')
-rw-r--r-- | OnDiskPt/TargetPhrase.cpp | 15 | ||||
-rw-r--r-- | OnDiskPt/TargetPhrase.h | 3 | ||||
-rw-r--r-- | OnDiskPt/TargetPhraseCollection.cpp | 6 | ||||
-rw-r--r-- | OnDiskPt/TargetPhraseCollection.h | 3 |
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; |