00001
00002 #ifndef moses_TranslationOptionCollectionConfusionNet_h
00003 #define moses_TranslationOptionCollectionConfusionNet_h
00004
00005 #include "TranslationOptionCollection.h"
00006 #include "InputPath.h"
00007
00008 namespace Moses
00009 {
00010
00011 class ConfusionNet;
00012
00016 class TranslationOptionCollectionConfusionNet : public TranslationOptionCollection
00017 {
00018 public:
00019 typedef std::vector< std::vector<InputPathList> > InputPathMatrix;
00020
00021 protected:
00022 InputPathMatrix m_inputPathMatrix;
00023
00024 InputPathList &GetInputPathList(size_t startPos, size_t endPos);
00025 bool CreateTranslationOptionsForRangeNew(const DecodeGraph &decodeStepList
00026 , size_t startPosition
00027 , size_t endPosition
00028 , bool adhereTableLimit
00029 , size_t graphInd);
00030
00031 bool CreateTranslationOptionsForRangeLEGACY(const DecodeGraph &decodeStepList
00032 , size_t startPosition
00033 , size_t endPosition
00034 , bool adhereTableLimit
00035 , size_t graphInd);
00036
00037 public:
00038 TranslationOptionCollectionConfusionNet
00039 (ttasksptr const& ttask, const ConfusionNet &source);
00040
00041
00042 void ProcessUnknownWord(size_t sourcePos);
00043 void CreateTranslationOptions();
00044
00045 bool
00046 CreateTranslationOptionsForRange
00047 (const DecodeGraph &decodeStepList, size_t spos, size_t epos,
00048 bool adhereTableLimit, size_t graphInd);
00049
00050 protected:
00051
00052 };
00053
00054 }
00055 #endif
00056