| | #pragma once |
| |
|
| | #include <set> |
| | #include <vector> |
| |
|
| | #include <boost/shared_ptr.hpp> |
| |
|
| | #include "moses/InputType.h" |
| | #include "moses/Syntax/KBestExtractor.h" |
| | #include "moses/Syntax/Manager.h" |
| | #include "moses/Syntax/SVertexStack.h" |
| | #include "moses/Word.h" |
| |
|
| | #include "OovHandler.h" |
| | #include "ParserCallback.h" |
| | #include "PChart.h" |
| | #include "SChart.h" |
| |
|
| | namespace Moses |
| | { |
| | namespace Syntax |
| | { |
| |
|
| | struct SHyperedge; |
| |
|
| | namespace S2T |
| | { |
| |
|
| | template<typename Parser> |
| | class Manager : public Syntax::Manager |
| | { |
| | public: |
| | Manager(ttasksptr const& ttask); |
| |
|
| | void Decode(); |
| |
|
| | |
| | const SHyperedge *GetBestSHyperedge() const; |
| |
|
| | void ExtractKBest( |
| | std::size_t k, |
| | std::vector<boost::shared_ptr<KBestExtractor::Derivation> > &kBestList, |
| | bool onlyDistinct=false) const; |
| |
|
| | void OutputDetailedTranslationReport(OutputCollector *collector) const; |
| |
|
| | private: |
| | void FindOovs(const PChart &, boost::unordered_set<Word> &, std::size_t); |
| |
|
| | void InitializeCharts(); |
| |
|
| | void InitializeParsers(PChart &, std::size_t); |
| |
|
| | void RecombineAndSort(const std::vector<SHyperedge*> &, SVertexStack &); |
| |
|
| | void PrunePChart(const SChart::Cell &, PChart::Cell &); |
| |
|
| | PChart m_pchart; |
| | SChart m_schart; |
| | boost::shared_ptr<typename Parser::RuleTrie> m_oovRuleTrie; |
| | std::vector<boost::shared_ptr<Parser> > m_parsers; |
| | }; |
| |
|
| | } |
| | } |
| | } |
| |
|
| | |
| | #include "Manager-inl.h" |
| |
|