| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| | #pragma once |
| |
|
| | #include <iostream> |
| | #include "../Phrase.h" |
| | #include "../PhraseImplTemplate.h" |
| | #include "../TargetPhrase.h" |
| | #include "../MemPool.h" |
| | #include "../SubPhrase.h" |
| | #include "../AlignmentInfoCollection.h" |
| | #include "Word.h" |
| |
|
| | namespace Moses2 |
| | { |
| | class Scores; |
| | class Manager; |
| | class System; |
| | class PhraseTable; |
| | class AlignmentInfo; |
| |
|
| | namespace SCFG |
| | { |
| |
|
| | class TargetPhraseImpl: public Moses2::TargetPhrase<SCFG::Word> |
| | { |
| | public: |
| | typedef Moses2::TargetPhrase<SCFG::Word> Parent; |
| |
|
| | SCFG::Word lhs; |
| |
|
| | static TargetPhraseImpl *CreateFromString(MemPool &pool, |
| | const PhraseTable &pt, const System &system, const std::string &str); |
| |
|
| | TargetPhraseImpl(MemPool &pool, const PhraseTable &pt, const System &system, |
| | size_t size); |
| | |
| |
|
| | virtual ~TargetPhraseImpl(); |
| |
|
| | const AlignmentInfo &GetAlignNonTerm() const { |
| | return *m_alignNonTerm; |
| | } |
| |
|
| | void SetAlignNonTerm(const AlignmentInfo &alignInfo) { |
| | m_alignNonTerm = &alignInfo; |
| | } |
| |
|
| | void SetAlignmentInfo(const std::string &alignString); |
| |
|
| | SCORE GetFutureScore() const { |
| | return m_scores->GetTotalScore() + m_estimatedScore; |
| | } |
| |
|
| | virtual SCORE GetScoreForPruning() const { |
| | return GetFutureScore(); |
| | } |
| |
|
| | void SetEstimatedScore(const SCORE &value) { |
| | m_estimatedScore = value; |
| | } |
| |
|
| | std::string Debug(const System &system) const; |
| |
|
| | size_t GetNumNonTerms() const; |
| |
|
| | |
| | protected: |
| | SCORE m_estimatedScore; |
| |
|
| | const AlignmentInfo *m_alignNonTerm; |
| |
|
| | |
| | |
| | template<typename ALNREP> |
| | void |
| | SetAlignNonTerm(const ALNREP &coll) { |
| | m_alignNonTerm = AlignmentInfoCollection::Instance().Add(coll); |
| | } |
| |
|
| | }; |
| |
|
| |
|
| | } |
| | } |
| |
|
| |
|