|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#pragma once |
|
|
|
|
|
#include "PhraseBased/ReorderingConstraint.h" |
|
|
#include "TypeDef.h" |
|
|
|
|
|
namespace Moses2 |
|
|
{ |
|
|
|
|
|
class InputType |
|
|
{ |
|
|
public: |
|
|
|
|
|
class XMLOption |
|
|
{ |
|
|
public: |
|
|
size_t startPos, phraseSize; |
|
|
|
|
|
SCORE prob; |
|
|
|
|
|
XMLOption(MemPool &pool, const std::string &nodeName, size_t vStartPos); |
|
|
|
|
|
const char *GetNodeName() const { |
|
|
return m_nodeName; |
|
|
} |
|
|
|
|
|
const char *GetTranslation() const { |
|
|
return m_translation; |
|
|
} |
|
|
|
|
|
const char *GetEntity() const { |
|
|
return m_entity; |
|
|
} |
|
|
|
|
|
void SetTranslation(MemPool &pool, const std::string &val); |
|
|
void SetEntity(MemPool &pool, const std::string &val); |
|
|
|
|
|
std::string Debug(const System &system) const; |
|
|
public: |
|
|
char *m_nodeName; |
|
|
char *m_translation; |
|
|
char *m_entity; |
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
InputType(MemPool &pool); |
|
|
virtual ~InputType(); |
|
|
|
|
|
virtual void Init(const System &system, size_t size, int max_distortion); |
|
|
|
|
|
ReorderingConstraint &GetReorderingConstraint() { |
|
|
return m_reorderingConstraint; |
|
|
} |
|
|
|
|
|
const ReorderingConstraint &GetReorderingConstraint() const { |
|
|
return m_reorderingConstraint; |
|
|
} |
|
|
|
|
|
const Vector<const XMLOption*> &GetXMLOptions() const { |
|
|
return m_xmlOptions; |
|
|
} |
|
|
|
|
|
void AddXMLOption(const System &system, const XMLOption *xmlOption); |
|
|
|
|
|
|
|
|
bool XmlOverlap(size_t startPos, size_t endPos) const; |
|
|
|
|
|
virtual std::string Debug(const System &system) const; |
|
|
|
|
|
protected: |
|
|
ReorderingConstraint m_reorderingConstraint; |
|
|
Vector<const XMLOption*> m_xmlOptions; |
|
|
Vector<bool> m_xmlCoverageMap; |
|
|
|
|
|
}; |
|
|
|
|
|
} |
|
|
|
|
|
|