南通免费建站模板_宝安最新疫情通报_推广哈尔滨网络营销推广方案_秦皇岛黄金海岸博维海景酒店
private:cppjieba::Jieba jieba; jiebatool(): jieba(DICT_PATH, HMM_PATH, USER_DICT_PATH, IDF_PATH, STOP_WORD_PATH) {}unordered_map<string, bool> stop_word_map; jiebatool(const jiebatool&) = delete;jiebatool& operator=(const jiebatool&) = delete;static jiebatool* instances; public:static jiebatool* Get_instances(){static mutex mtx; if (instances == nullptr) {mtx.lock(); if (instances == nullptr) {instances = new jiebatool(); instances->Initjiebatoolstop(); }mtx.unlock(); }return instances; }void Initjiebatoolstop(){ifstream in(STOP_WORD_PATH); if (!in.is_open()) {LOG(Fatal, "STOP_WORD_PATH open error");return;}string temp;while (getline(in, temp)) {stop_word_map.insert({temp, true});}in.close(); }void Curstringstop(const std::string &src, std::vector<std::string> *out){jieba.CutForSearch(src, *out); for (auto it = out->begin(); it != out->end();) {auto temp = stop_word_map.find(*it); if (temp != stop_word_map.end()) {it = out->erase(it); }else{it++; }}}static void CutString(const std::string &src, std::vector<std::string> *out){project_tool::jiebatool::Get_instances()->Curstringstop(src, out); }">