mosesdecoder/phrase-extract/postprocess-egret-forests/Forest.h
Phil Williams 9e88f794e6 Add phrase-extract/postprocess-egret-forests
This performs some minor transformations to Egret forests: escaping of
Moses special characters; removal of "^g" suffixes from constituent labels;
and marking of slash/hyphen split points (using @ characters).
2015-03-10 13:51:30 +00:00

47 lines
702 B
C++

#pragma once
#include "vector"
#include <boost/shared_ptr.hpp>
#include "Symbol.h"
namespace MosesTraining
{
namespace Syntax
{
namespace PostprocessEgretForests
{
class Forest
{
public:
struct Vertex;
struct Hyperedge {
double weight;
Vertex *head;
std::vector<Vertex *> tail;
};
struct Vertex {
Symbol symbol;
int start;
int end;
std::vector<boost::shared_ptr<Hyperedge> > incoming;
};
Forest() {}
std::vector<boost::shared_ptr<Vertex> > vertices;
private:
// Copying is not allowed.
Forest(const Forest &);
Forest &operator=(const Forest &);
};
} // namespace PostprocessEgretForests
} // namespace Syntax
} // namespace MosesTraining