diff options
Diffstat (limited to 'moses/StaticData.cpp')
-rw-r--r-- | moses/StaticData.cpp | 28 |
1 files changed, 24 insertions, 4 deletions
diff --git a/moses/StaticData.cpp b/moses/StaticData.cpp index e15e1b355..4d3e96000 100644 --- a/moses/StaticData.cpp +++ b/moses/StaticData.cpp @@ -62,8 +62,6 @@ using namespace boost::algorithm; namespace Moses { -bool g_mosesDebug = false; - StaticData StaticData::s_instance; StaticData::StaticData() @@ -71,6 +69,7 @@ StaticData::StaticData() , m_requireSortingAfterSourceContext(false) , m_currentWeightSetting("default") , m_treeStructure(NULL) + , m_coordSpaceNextID(1) { Phrase::InitializeMemPool(); } @@ -681,8 +680,8 @@ void StaticData::LoadSparseWeightsFromConfig() featureNames.insert(descr); } - std::map<std::string, std::vector<float> > weights = m_parameter->GetAllWeights(); - std::map<std::string, std::vector<float> >::iterator iter; + const std::map<std::string, std::vector<float> > &weights = m_parameter->GetAllWeights(); + std::map<std::string, std::vector<float> >::const_iterator iter; for (iter = weights.begin(); iter != weights.end(); ++iter) { // this indicates that it is sparse feature if (featureNames.find(iter->first) == featureNames.end()) { @@ -938,4 +937,25 @@ void StaticData::ResetWeights(const std::string &denseWeights, const std::string } } +size_t StaticData::GetCoordSpace(string space) const +{ + map<string const, size_t>::const_iterator m = m_coordSpaceMap.find(space); + if(m == m_coordSpaceMap.end()) { + return 0; + } + return m->second; +} + +size_t StaticData::MapCoordSpace(string space) +{ + map<string const, size_t>::const_iterator m = m_coordSpaceMap.find(space); + if (m != m_coordSpaceMap.end()) { + return m->second; + } + size_t id = m_coordSpaceNextID; + m_coordSpaceNextID += 1; + m_coordSpaceMap[space] = id; + return id; +} + } // namespace |