/* * StoreTarget.h * * Created on: 19 Jan 2016 * Author: hieu */ #pragma once #include #include #include #include #include #include #include "StoreVocab.h" namespace probingpt { class line_text; class target_text; class StoreTarget { public: StoreTarget(const std::string &basepath); virtual ~StoreTarget(); uint64_t Save(); void SaveAlignment(); void Append(const line_text &line, bool log_prob, bool scfg); protected: std::string m_basePath; std::fstream m_fileTargetColl; StoreVocab m_vocab; typedef boost::unordered_map, uint32_t> Alignments; Alignments m_aligns; std::vector m_coll; uint32_t GetAlignId(const std::vector &align); void Save(const target_text &rule); void AppendLexRO(std::string &prop, std::vector &retvector, bool log_prob) const; }; } /* namespace Moses2 */