2011-11-06 12:31:11 +04:00
|
|
|
//
|
|
|
|
// PhraseDictionaryALSuffixArray.h
|
|
|
|
// moses
|
|
|
|
//
|
|
|
|
// Created by Hieu Hoang on 06/11/2011.
|
|
|
|
// Copyright 2011 __MyCompanyName__. All rights reserved.
|
|
|
|
//
|
|
|
|
|
|
|
|
#ifndef moses_PhraseDictionaryALSuffixArray_h
|
|
|
|
#define moses_PhraseDictionaryALSuffixArray_h
|
|
|
|
|
2011-11-06 13:08:37 +04:00
|
|
|
#include "PhraseDictionarySCFG.h"
|
2011-11-06 12:31:11 +04:00
|
|
|
|
|
|
|
namespace Moses {
|
|
|
|
|
2012-06-29 02:29:46 +04:00
|
|
|
/** Implementation of in-memory phrase table for use with Adam Lopez's suffix array.
|
|
|
|
* Does 2 things that the normal in-memory pt doesn't do:
|
|
|
|
* 1. Loads grammar for a sentence to be decoded only when the sentence is being decoded. Unload afterwards
|
|
|
|
2. Format of the pt file follows Hiero, rather than Moses
|
|
|
|
*/
|
2011-11-06 13:08:37 +04:00
|
|
|
class PhraseDictionaryALSuffixArray : public PhraseDictionarySCFG
|
2011-11-06 12:31:11 +04:00
|
|
|
{
|
|
|
|
public:
|
2013-02-22 23:17:57 +04:00
|
|
|
PhraseDictionaryALSuffixArray(const std::string &line)
|
|
|
|
: PhraseDictionarySCFG("PhraseDictionaryALSuffixArray", line)
|
|
|
|
{}
|
2011-11-06 13:08:37 +04:00
|
|
|
|
|
|
|
bool Load(const std::vector<FactorType> &input
|
|
|
|
, const std::vector<FactorType> &output
|
|
|
|
, const std::string &filePath
|
|
|
|
, const std::vector<float> &weight
|
|
|
|
, size_t tableLimit
|
|
|
|
, const LMList &languageModels
|
|
|
|
, const WordPenaltyProducer* wpProducer);
|
|
|
|
|
|
|
|
void InitializeForInput(InputType const& source);
|
|
|
|
|
|
|
|
protected:
|
|
|
|
const std::vector<FactorType> *m_input, *m_output;
|
|
|
|
const LMList *m_languageModels;
|
|
|
|
const WordPenaltyProducer *m_wpProducer;
|
|
|
|
const std::vector<float> *m_weight;
|
|
|
|
|
2011-11-06 12:35:05 +04:00
|
|
|
};
|
|
|
|
|
2011-11-06 12:31:11 +04:00
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif
|