diff --git a/.gitignore b/.gitignore index 559534d..f047bef 100644 --- a/.gitignore +++ b/.gitignore @@ -6,4 +6,4 @@ tags *.ut log main -cmlib.a +lib*.a diff --git a/demo/segment_demo.cpp b/demo/segment_demo.cpp index 6312dbe..422e6d5 100644 --- a/demo/segment_demo.cpp +++ b/demo/segment_demo.cpp @@ -9,8 +9,8 @@ int main(int argc, char ** argv) { if(argc < 2) { - cerr<<"usage: "<"< vecBuf; + + TrieNodeInfo nodeInfo; while(getline(ifile, line)) { vecBuf.clear(); splitStr(line, vecBuf, " "); - if(3 != vecBuf.size()) + if(3 < vecBuf.size()) { LogError(string_format("line[%s] illegal.", line.c_str())); return false; } - string chWord = vecBuf[0]; - uint count = atoi(vecBuf[1].c_str()); - const string& tag = vecBuf[2]; + nodeInfo.word = vecBuf[0]; + nodeInfo.count = atoi(vecBuf[1].c_str()); + if(3 == vecBuf.size()) + { + nodeInfo.tag = vecBuf[2]; + } //insert node - TrieNodeInfo nodeInfo; - nodeInfo.word = chWord; - nodeInfo.wLen = 0; - nodeInfo.count = count; - nodeInfo.tag = tag; - - bool flag = insert(nodeInfo); - if(!flag) + if(!insert(nodeInfo)) { LogError("insert node failed!"); - return false; } - - } return true; } diff --git a/src/Trie.h b/src/Trie.h index 39e3a91..574adfa 100644 --- a/src/Trie.h +++ b/src/Trie.h @@ -35,10 +35,8 @@ namespace CppJieba double weight; TrieNodeInfo() { - word = ""; wLen = 0; count = 0; - tag = ""; weight = 0.0; } }; @@ -101,7 +99,7 @@ namespace CppJieba bool insert(const TrieNodeInfo& nodeInfo); private: - bool _buildTree(const char * const filePath); + bool _trieInsert(const char * const filePath); bool _countWeight(); bool _deleteNode(TrieNode* node);