|
|
|
#pragma once |
|
|
|
#include <iostream> |
|
#include <string> |
|
#include "ScoreComponentCollection.h" |
|
#include "InputType.h" |
|
#include "moses/parameters/AllOptions.h" |
|
namespace Moses |
|
{ |
|
class ScoreComponentCollection; |
|
class FeatureFunction; |
|
class OutputCollector; |
|
|
|
class BaseManager |
|
{ |
|
protected: |
|
|
|
ttaskwptr m_ttask; |
|
InputType const& m_source; |
|
|
|
BaseManager(ttasksptr const& ttask); |
|
|
|
|
|
typedef std::vector<std::pair<Moses::Word, Moses::Range> > ApplicationContext; |
|
typedef std::set< std::pair<size_t, size_t> > Alignments; |
|
|
|
void OutputSurface(std::ostream &out, Phrase const& phrase) const; |
|
|
|
void WriteApplicationContext(std::ostream &out, |
|
const ApplicationContext &context) const; |
|
|
|
template <class T> |
|
void ShiftOffsets(std::vector<T> &offsets, T shift) const { |
|
T currPos = shift; |
|
for (size_t i = 0; i < offsets.size(); ++i) { |
|
if (offsets[i] == 0) { |
|
offsets[i] = currPos; |
|
++currPos; |
|
} else { |
|
currPos += offsets[i]; |
|
} |
|
} |
|
} |
|
|
|
public: |
|
virtual ~BaseManager() { } |
|
|
|
|
|
const InputType& GetSource() const; |
|
const ttasksptr GetTtask() const; |
|
AllOptions::ptr const& options() const; |
|
|
|
virtual void Decode() = 0; |
|
|
|
virtual void OutputBest(OutputCollector *collector) const = 0; |
|
virtual void OutputNBest(OutputCollector *collector) const = 0; |
|
virtual void OutputLatticeSamples(OutputCollector *collector) const = 0; |
|
virtual void OutputAlignment(OutputCollector *collector) const = 0; |
|
virtual void OutputDetailedTranslationReport(OutputCollector *collector) const = 0; |
|
virtual void OutputDetailedTreeFragmentsTranslationReport(OutputCollector *collector) const = 0; |
|
virtual void OutputWordGraph(OutputCollector *collector) const = 0; |
|
virtual void OutputSearchGraph(OutputCollector *collector) const = 0; |
|
virtual void OutputUnknowns(OutputCollector *collector) const = 0; |
|
virtual void OutputSearchGraphSLF() const = 0; |
|
|
|
|
|
virtual void OutputSearchGraphAsHypergraph(std::ostream& out) const; |
|
virtual void OutputSearchGraphAsHypergraph(std::string const& fname, |
|
size_t const precision) const; |
|
|
|
|
|
|
|
virtual void CalcDecoderStatistics() const = 0; |
|
|
|
}; |
|
|
|
} |
|
|