00001 00002 #pragma once 00003 00004 #include "PhraseDictionary.h" 00005 #include <boost/thread/tss.hpp> 00006 00007 namespace Moses 00008 { 00009 class ChartParser; 00010 class ChartCellCollectionBase; 00011 class ChartRuleLookupManager; 00012 class InputPath; 00013 00014 class PhraseDictionaryTransliteration : public PhraseDictionary 00015 { 00016 friend std::ostream& operator<<(std::ostream&, const PhraseDictionaryTransliteration&); 00017 00018 public: 00019 PhraseDictionaryTransliteration(const std::string &line); 00020 00021 void Load(AllOptions::ptr const& opts); 00022 00023 virtual void CleanUpAfterSentenceProcessing(const InputType& source); 00024 00025 // for phrase-based model 00026 void GetTargetPhraseCollectionBatch(const InputPathList &inputPathQueue) const; 00027 00028 // for syntax/hiero model (CKY+ decoding) 00029 ChartRuleLookupManager* CreateRuleLookupManager(const ChartParser&, const ChartCellCollectionBase&, std::size_t); 00030 00031 void SetParameter(const std::string& key, const std::string& value); 00032 00033 TO_STRING(); 00034 00035 protected: 00036 std::string m_mosesDir, m_scriptDir, m_externalDir, m_inputLang, m_outputLang; 00037 00038 std::vector<TargetPhrase*> CreateTargetPhrases(const Phrase &sourcePhrase, const std::string &outDir) const; 00039 00040 void GetTargetPhraseCollection(InputPath &inputPath) const; 00041 00042 }; 00043 00044 } // namespace Moses