diff options
author | Nicola Bertoldi <bertoldi@fbk.eu> | 2014-12-13 14:52:47 +0300 |
---|---|---|
committer | Nicola Bertoldi <bertoldi@fbk.eu> | 2014-12-13 14:52:47 +0300 |
commit | e4eb201c52be74fee74399a6f35fcbe8eb85d834 (patch) | |
tree | 7792ef96d63262f6e28f1857741e1162c7dccbc4 /moses/ChartParser.cpp | |
parent | cea2d9d8bb34a81660974cae20d66aefec4e0468 (diff) | |
parent | a0b6b6a341e74b47bbef4652ad7fd928cf91e17c (diff) |
merged master into dynamic-models and solved conflicts
Diffstat (limited to 'moses/ChartParser.cpp')
-rw-r--r-- | moses/ChartParser.cpp | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/moses/ChartParser.cpp b/moses/ChartParser.cpp index 36bc9476c..a9a1e6aa1 100644 --- a/moses/ChartParser.cpp +++ b/moses/ChartParser.cpp @@ -68,6 +68,12 @@ void ChartParserUnknown::Process(const Word &sourceWord, const WordsRange &range m_unksrcs.push_back(unksrc); + // hack. Once the OOV FF is a phrase table, get rid of this + PhraseDictionary *firstPt = NULL; + if (PhraseDictionary::GetColl().size() == 0) { + firstPt = PhraseDictionary::GetColl()[0]; + } + //TranslationOption *transOpt; if (! staticData.GetDropUnknown() || isDigit) { // loop @@ -85,7 +91,7 @@ void ChartParserUnknown::Process(const Word &sourceWord, const WordsRange &range UTIL_THROW_IF2(targetLHS->GetFactor(0) == NULL, "Null factor for target LHS"); // add to dictionary - TargetPhrase *targetPhrase = new TargetPhrase(); + TargetPhrase *targetPhrase = new TargetPhrase(firstPt); Word &targetWord = targetPhrase->AddWord(); targetWord.CreateUnknownWord(sourceWord); @@ -93,11 +99,10 @@ void ChartParserUnknown::Process(const Word &sourceWord, const WordsRange &range float unknownScore = FloorScore(TransformScore(prob)); targetPhrase->GetScoreBreakdown().Assign(&unknownWordPenaltyProducer, unknownScore); - targetPhrase->Evaluate(*unksrc); - + targetPhrase->EvaluateInIsolation(*unksrc); targetPhrase->SetTargetLHS(targetLHS); targetPhrase->SetAlignmentInfo("0-0"); - if (staticData.IsDetailedTreeFragmentsTranslationReportingEnabled() || staticData.GetTreeStructure() != NULL) { + if (staticData.IsDetailedTreeFragmentsTranslationReportingEnabled() || staticData.PrintNBestTrees() || staticData.GetTreeStructure() != NULL) { targetPhrase->SetProperty("Tree","[ " + (*targetLHS)[0]->GetString().as_string() + " "+sourceWord[0]->GetString().as_string()+" ]"); } @@ -108,7 +113,7 @@ void ChartParserUnknown::Process(const Word &sourceWord, const WordsRange &range // drop source word. create blank trans opt float unknownScore = FloorScore(-numeric_limits<float>::infinity()); - TargetPhrase *targetPhrase = new TargetPhrase(); + TargetPhrase *targetPhrase = new TargetPhrase(firstPt); // loop const UnknownLHSList &lhsList = staticData.GetUnknownLHS(); UnknownLHSList::const_iterator iterLHS; @@ -121,7 +126,7 @@ void ChartParserUnknown::Process(const Word &sourceWord, const WordsRange &range UTIL_THROW_IF2(targetLHS->GetFactor(0) == NULL, "Null factor for target LHS"); targetPhrase->GetScoreBreakdown().Assign(&unknownWordPenaltyProducer, unknownScore); - targetPhrase->Evaluate(*unksrc); + targetPhrase->EvaluateInIsolation(*unksrc); targetPhrase->SetTargetLHS(targetLHS); |