00001 00002 #pragma once 00003 00004 #include "PhraseDictionary.h" 00005 00006 namespace Moses 00007 { 00008 class ChartParser; 00009 class ChartCellCollectionBase; 00010 class ChartRuleLookupManager; 00011 00012 class ExamplePT : public PhraseDictionary 00013 { 00014 friend std::ostream& operator<<(std::ostream&, const ExamplePT&); 00015 00016 public: 00017 ExamplePT(const std::string &line); 00018 00019 void Load(AllOptions::ptr const& opts); 00020 00021 void InitializeForInput(ttasksptr const& ttask); 00022 00023 // for phrase-based model 00024 void GetTargetPhraseCollectionBatch(const InputPathList &inputPathQueue) const; 00025 00026 // for syntax/hiero model (CKY+ decoding) 00027 ChartRuleLookupManager* CreateRuleLookupManager(const ChartParser&, const ChartCellCollectionBase&, std::size_t); 00028 00029 TO_STRING(); 00030 00031 00032 protected: 00033 TargetPhrase *CreateTargetPhrase(const Phrase &sourcePhrase) const; 00034 }; 00035 00036 } // namespace Moses