mirror of
https://github.com/yanyiwu/cppjieba.git
synced 2025-07-18 00:00:12 +08:00
LoadUserDict by set,vector
This commit is contained in:
parent
1066bc085e
commit
1e1e585194
@ -106,12 +106,37 @@ class DictTrie {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void LoadUserDict(vector<string>& buf){
|
void LoadUserDict(const vector<string>& buf) {
|
||||||
for (size_t i = 0; i < buf.size(); i++) {
|
for (size_t i = 0; i < buf.size(); i++) {
|
||||||
InserUserDictNode(buf[i]);
|
InserUserDictNode(buf[i]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void LoadUserDict(const set<string>& buf) {
|
||||||
|
std::set<string>::const_iterator iter;
|
||||||
|
for (iter = buf.begin(); iter != buf.end(); iter++){
|
||||||
|
InserUserDictNode(*iter);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void LoadUserDict(const string& filePaths) {
|
||||||
|
vector<string> files = limonp::Split(filePaths, "|;");
|
||||||
|
size_t lineno = 0;
|
||||||
|
for (size_t i = 0; i < files.size(); i++) {
|
||||||
|
ifstream ifs(files[i].c_str());
|
||||||
|
XCHECK(ifs.is_open()) << "open " << files[i] << " failed";
|
||||||
|
string line;
|
||||||
|
|
||||||
|
for (; getline(ifs, line); lineno++) {
|
||||||
|
if (line.size() == 0) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
InserUserDictNode(line);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
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);
|
||||||
@ -140,22 +165,6 @@ class DictTrie {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
void LoadUserDict(const string& filePaths) {
|
|
||||||
vector<string> files = limonp::Split(filePaths, "|;");
|
|
||||||
size_t lineno = 0;
|
|
||||||
for (size_t i = 0; i < files.size(); i++) {
|
|
||||||
ifstream ifs(files[i].c_str());
|
|
||||||
XCHECK(ifs.is_open()) << "open " << files[i] << " failed";
|
|
||||||
string line;
|
|
||||||
|
|
||||||
for (; getline(ifs, line); lineno++) {
|
|
||||||
if (line.size() == 0) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
InserUserDictNode(line);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
bool MakeNodeInfo(DictUnit& node_info,
|
bool MakeNodeInfo(DictUnit& node_info,
|
||||||
const string& word,
|
const string& word,
|
||||||
|
@ -84,14 +84,23 @@ class Jieba {
|
|||||||
const DictTrie* GetDictTrie() const {
|
const DictTrie* GetDictTrie() const {
|
||||||
return &dict_trie_;
|
return &dict_trie_;
|
||||||
}
|
}
|
||||||
|
|
||||||
const HMMModel* GetHMMModel() const {
|
const HMMModel* GetHMMModel() const {
|
||||||
return &model_;
|
return &model_;
|
||||||
}
|
}
|
||||||
|
|
||||||
void LoadUserDict(vector<string>& buf) {
|
void LoadUserDict(const vector<string>& buf) {
|
||||||
dict_trie_.LoadUserDict(buf);
|
dict_trie_.LoadUserDict(buf);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void LoadUserDict(const set<string>& buf) {
|
||||||
|
dict_trie_.LoadUserDict(buf);
|
||||||
|
}
|
||||||
|
|
||||||
|
void LoadUserDict(const string& path) {
|
||||||
|
dict_trie_.LoadUserDict(path);
|
||||||
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
DictTrie dict_trie_;
|
DictTrie dict_trie_;
|
||||||
HMMModel model_;
|
HMMModel model_;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user