Merge pull request #5 from aholic/master

gg=G for MPSegment.hpp
This commit is contained in:
Wu Yanyi 2013-12-02 06:01:54 -08:00
commit 47ba6b60ee

View File

@ -102,59 +102,59 @@ namespace CppJieba
} }
bool cut(const string& str, vector<TrieNodeInfo>& segWordInfos)const bool cut(const string& str, vector<TrieNodeInfo>& segWordInfos)const
{ {
if(!_getInitFlag()) if(!_getInitFlag())
{ {
LogError("not inited."); LogError("not inited.");
return false; return false;
} }
if(str.empty()) if(str.empty())
{ {
return false; return false;
} }
Unicode sentence; Unicode sentence;
if(!TransCode::decode(str, sentence)) if(!TransCode::decode(str, sentence))
{ {
LogError("TransCode::decode failed."); LogError("TransCode::decode failed.");
return false; return false;
} }
return cut(sentence.begin(), sentence.end(), segWordInfos); return cut(sentence.begin(), sentence.end(), segWordInfos);
} }
bool cut(Unicode::const_iterator begin , Unicode::const_iterator end, vector<TrieNodeInfo>& segWordInfos)const bool cut(Unicode::const_iterator begin , Unicode::const_iterator end, vector<TrieNodeInfo>& segWordInfos)const
{ {
if(!_getInitFlag()) if(!_getInitFlag())
{ {
LogError("not inited."); LogError("not inited.");
return false; return false;
} }
SegmentContext segContext; SegmentContext segContext;
for(Unicode::const_iterator it = begin; it != end; it++) for(Unicode::const_iterator it = begin; it != end; it++)
{ {
segContext.push_back(SegmentChar(*it)); segContext.push_back(SegmentChar(*it));
} }
//calc DAG //calc DAG
if(!_calcDAG(segContext)) if(!_calcDAG(segContext))
{ {
LogError("_calcDAG failed."); LogError("_calcDAG failed.");
return false; return false;
} }
if(!_calcDP(segContext)) if(!_calcDP(segContext))
{ {
LogError("_calcDP failed."); LogError("_calcDP failed.");
return false; return false;
} }
if(!_cut(segContext, segWordInfos)) if(!_cut(segContext, segWordInfos))
{ {
LogError("_cut failed."); LogError("_cut failed.");
return false; return false;
} }
return true; return true;
} }
//virtual bool cut(const string& str, vector<string>& res)const; //virtual bool cut(const string& str, vector<string>& res)const;
private: private: