ChartRuleLookupManagerOnDisk::ChartRuleLookupManagerOnDisk( const ChartParser &parser, const ChartCellCollectionBase &cellColl, const PhraseDictionaryOnDisk &dictionary, OnDiskPt::OnDiskWrapper &dbWrapper, const std::vector<FactorType> &inputFactorsVec, const std::vector<FactorType> &outputFactorsVec) : ChartRuleLookupManagerCYKPlus(parser, cellColl) , m_dictionary(dictionary) , m_dbWrapper(dbWrapper) , m_inputFactorsVec(inputFactorsVec) , m_outputFactorsVec(outputFactorsVec) { UTIL_THROW_IF2(m_expandableDottedRuleListVec.size() != 0, "Dotted rule collection not correctly initialized"); size_t sourceSize = parser.GetSize(); m_expandableDottedRuleListVec.resize(sourceSize); for (size_t ind = 0; ind < m_expandableDottedRuleListVec.size(); ++ind) { DottedRuleOnDisk *initDottedRule = new DottedRuleOnDisk(m_dbWrapper.GetRootSourceNode()); DottedRuleStackOnDisk *processedStack = new DottedRuleStackOnDisk(sourceSize - ind + 1); processedStack->Add(0, initDottedRule); // init rule. stores the top node in tree m_expandableDottedRuleListVec[ind] = processedStack; } }
ChartRuleLookupManagerOnDisk::ChartRuleLookupManagerOnDisk( const InputType &sentence, const ChartCellCollectionBase &cellColl, const PhraseDictionaryOnDisk &dictionary, OnDiskPt::OnDiskWrapper &dbWrapper, const std::vector<FactorType> &inputFactorsVec, const std::vector<FactorType> &outputFactorsVec, const std::string &filePath) : ChartRuleLookupManagerCYKPlus(sentence, cellColl) , m_dictionary(dictionary) , m_dbWrapper(dbWrapper) , m_inputFactorsVec(inputFactorsVec) , m_outputFactorsVec(outputFactorsVec) , m_filePath(filePath) { CHECK(m_expandableDottedRuleListVec.size() == 0); size_t sourceSize = sentence.GetSize(); m_expandableDottedRuleListVec.resize(sourceSize); for (size_t ind = 0; ind < m_expandableDottedRuleListVec.size(); ++ind) { DottedRuleOnDisk *initDottedRule = new DottedRuleOnDisk(m_dbWrapper.GetRootSourceNode()); DottedRuleStackOnDisk *processedStack = new DottedRuleStackOnDisk(sourceSize - ind + 1); processedStack->Add(0, initDottedRule); // init rule. stores the top node in tree m_expandableDottedRuleListVec[ind] = processedStack; } }
ChartRuleLookupManagerOnDisk::ChartRuleLookupManagerOnDisk( const InputType &sentence, const ChartCellCollection &cellColl, const PhraseDictionaryOnDisk &dictionary, OnDiskPt::OnDiskWrapper &dbWrapper, const LMList *languageModels, const WordPenaltyProducer *wpProducer, const std::vector<FactorType> &inputFactorsVec, const std::vector<FactorType> &outputFactorsVec, const std::vector<float> &weight, const std::string &filePath) : ChartRuleLookupManager(sentence, cellColl) , m_dictionary(dictionary) , m_dbWrapper(dbWrapper) , m_languageModels(languageModels) , m_wpProducer(wpProducer) , m_inputFactorsVec(inputFactorsVec) , m_outputFactorsVec(outputFactorsVec) , m_weight(weight) , m_filePath(filePath) { assert(m_expandableDottedRuleListVec.size() == 0); size_t sourceSize = sentence.GetSize(); m_expandableDottedRuleListVec.resize(sourceSize); for (size_t ind = 0; ind < m_expandableDottedRuleListVec.size(); ++ind) { DottedRuleOnDisk *initDottedRule = new DottedRuleOnDisk(m_dbWrapper.GetRootSourceNode()); DottedRuleStackOnDisk *processedStack = new DottedRuleStackOnDisk(sourceSize - ind + 1); processedStack->Add(0, initDottedRule); // init rule. stores the top node in tree m_expandableDottedRuleListVec[ind] = processedStack; } }