#pragma once #include "SingleFactor.h" #include namespace nplm { class neuralLM; } namespace Moses { class NeuralLMWrapper : public LanguageModelSingleFactor { protected: // big data (vocab, weights, cache) shared among threads nplm::neuralLM *m_neuralLM_shared; // thread-specific nplm for thread-safety mutable boost::thread_specific_ptr m_neuralLM; int m_unk; public: NeuralLMWrapper(const std::string &line); ~NeuralLMWrapper(); virtual LMResult GetValue(const std::vector &contextFactor, State* finalState = 0) const; virtual void Load(AllOptions::ptr const& opts); }; } // namespace