File size: 1,652 Bytes
158b61b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
63
64
65
66
67
68
69
70
71
72
73
74

#pragma once

#include "moses/PP/PhraseProperty.h"
#include "util/exception.hh"
#include <string>

namespace Moses
{

class OrientationPhraseProperty : public PhraseProperty
{
public:
  OrientationPhraseProperty() {};

  virtual void ProcessValue(const std::string &value);


  double GetLeftToRightProbabilityMono() const {
    return m_l2rMonoProbability;
  };

  double GetLeftToRightProbabilitySwap() const {
    return m_l2rSwapProbability;
  };

  double GetLeftToRightProbabilityDleft() const {
    return m_l2rDleftProbability;
  };

  double GetLeftToRightProbabilityDright() const {
    return m_l2rDrightProbability;
  };

  double GetLeftToRightProbabilityDiscontinuous() const {
    return m_l2rDleftProbability + m_l2rDrightProbability;
  };


  double GetRightToLeftProbabilityMono() const {
    return m_r2lMonoProbability;
  };

  double GetRightToLeftProbabilitySwap() const {
    return m_r2lSwapProbability;
  };

  double GetRightToLeftProbabilityDleft() const {
    return m_r2lDleftProbability;
  };

  double GetRightToLeftProbabilityDright() const {
    return m_r2lDrightProbability;
  };

  double GetRightToLeftProbabilityDiscontinuous() const {
    return m_r2lDleftProbability + m_r2lDrightProbability;
  };


  virtual const std::string *GetValueString() const {
    UTIL_THROW2("OrientationPhraseProperty: value string not available in this phrase property");
    return NULL;
  };

protected:

  float m_l2rMonoProbability, m_l2rSwapProbability, m_l2rDrightProbability, m_l2rDleftProbability,
        m_r2lMonoProbability, m_r2lSwapProbability, m_r2lDrightProbability, m_r2lDleftProbability;
};

} // namespace Moses