fix input type ,expose to Jieba

This commit is contained in:
zhoupeng 2018-06-08 01:32:47 +08:00
parent d56e5c0659
commit 1066bc085e
2 changed files with 15 additions and 5 deletions

View File

@ -80,8 +80,10 @@ class DictTrie {
return min_weight_; return min_weight_;
} }
void InserUserDictNode(vector<string>& buf){ void InserUserDictNode(const string& line){
vector<string> buf;
DictUnit node_info; DictUnit node_info;
Split(line, buf, " ");
if(buf.size() == 1){ if(buf.size() == 1){
MakeNodeInfo(node_info, MakeNodeInfo(node_info,
buf[0], buf[0],
@ -104,6 +106,12 @@ class DictTrie {
} }
} }
void LoadUserDict(vector<string>& buf){
for (size_t i = 0; i < buf.size(); i++) {
InserUserDictNode(buf[i]);
}
}
private: private:
void Init(const string& dict_path, const string& user_dict_paths, UserWordWeightOption user_word_weight_opt) { void Init(const string& dict_path, const string& user_dict_paths, UserWordWeightOption user_word_weight_opt) {
LoadDict(dict_path); LoadDict(dict_path);
@ -139,14 +147,12 @@ class DictTrie {
ifstream ifs(files[i].c_str()); ifstream ifs(files[i].c_str());
XCHECK(ifs.is_open()) << "open " << files[i] << " failed"; XCHECK(ifs.is_open()) << "open " << files[i] << " failed";
string line; string line;
vector<string> buf;
for (; getline(ifs, line); lineno++) { for (; getline(ifs, line); lineno++) {
if (line.size() == 0) { if (line.size() == 0) {
continue; continue;
} }
buf.clear(); InserUserDictNode(line);
Split(line, buf, " ");
InserUserDictNode(buf);
} }
} }
} }

View File

@ -88,6 +88,10 @@ class Jieba {
return &model_; return &model_;
} }
void LoadUserDict(vector<string>& buf) {
dict_trie_.LoadUserDict(buf);
}
private: private:
DictTrie dict_trie_; DictTrie dict_trie_;
HMMModel model_; HMMModel model_;