Welcome to mirror list, hosted at ThFree Co, Russian Federation.

BaseManager.h « moses - github.com/moses-smt/mosesdecoder.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 70316274d091b81bbca7a2f2322fcd40f75a2ed6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#pragma once

#include <iostream>
#include <string>
#include "ScoreComponentCollection.h"

namespace Moses
{
class ScoreComponentCollection;
class FeatureFunction;
class OutputCollector;

class BaseManager
{
protected:

  // output
  typedef std::vector<std::pair<Moses::Word, Moses::WordsRange> > ApplicationContext;
  typedef std::set< std::pair<size_t, size_t>  > Alignments;

  void OutputAllFeatureScores(const Moses::ScoreComponentCollection &features,
							  std::ostream &out) const;
  void OutputFeatureScores( std::ostream& out,
							const ScoreComponentCollection &features,
							const FeatureFunction *ff,
							std::string &lastName ) const;
  void OutputSurface(std::ostream &out,
		  	  	  	  const Phrase &phrase,
		  	  	  	  const std::vector<FactorType> &outputFactorOrder,
		  	  	  	  bool reportAllFactors) 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 void Decode() = 0;
  // outputs
  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;


};

}