1 Star 2 Fork 0

不熬夜的_枫子/Boost搜索引擎

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
util.hpp 2.19 KB
一键复制 编辑 原始数据 按行查看 历史
不熬夜的_枫子 提交于 2022-11-13 19:49 . 基于Boost库的搜索引擎
#pragma once
#include <iostream>
#include <vector>
#include <string>
#include <fstream>
#include <boost/algorithm/string.hpp>
#include <mutex>
#include <unordered_map>
#include "Cppjieba/Jieba.hpp"
namespace ns_util
{
//读取文件内容
class FileUtil
{
public:
//第一个参数:该文件的路径 第二个参数:输出型参数,读到的文件内容返回出去
static bool ReadFile(const std::string &file_path, std::string *out)
{
std::ifstream in(file_path, std::ios::in); //in表示读取
if(!in.is_open()) //判断是否打开成功
{
std::cerr << "open file " << file_path << " error" << std::endl;
return false;
}
//文件读取
std::string line; //line保存的就是读取到的一行内容
while(std::getline(in, line))
{
*out += line;
}
in.close(); //关闭文件
return true;
}
};
//字符串切分
class StringUtil //进行字符串切分
{
public:
//第一个参数:切分谁 第二个参数: 切分好的内容放到哪里 第三个参数:以什么为分隔符切分
static void Split(const std::string &target, std::vector<std::string> *out, const std::string &sep)
{
//is_any_of表示:凡是在这个里面的任何一个字符都作为原始字符串当中的分隔符
//第一个参数:保存在哪里 第二个参数:数据源 第三个:分隔符
//第四个参数:分隔符和分隔符之间的内容是否进行压缩
boost::split(*out, target, boost::is_any_of(sep), boost::token_compress_on);
}
};
//jieba分词
const char* DICT_PATH = "cppjieba/dict/jieba.dict.utf8";
const char* HMM_PATH = "cppjieba/dict/hmm_model.utf8";
const char* USER_DICT_PATH = "cppjieba/dict/user.dict.utf8";
const char* IDF_PATH = "cppjieba/dict/idf.utf8";
const char* STOP_WORD_PATH = "cppjieba/dict/stop_words.utf8";
class JiebaUtil
{
private:
static cppjieba::Jieba _jieba;
public:
static void CutString(const std::string& src, std::vector<std::string>* out)
{
_jieba.CutForSearch(src, *out);
}
};
cppjieba::Jieba JiebaUtil::_jieba(DICT_PATH, HMM_PATH, USER_DICT_PATH, IDF_PATH, STOP_WORD_PATH);
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/maple-that-never-stays-up-late/boost-search-engine.git
git@gitee.com:maple-that-never-stays-up-late/boost-search-engine.git
maple-that-never-stays-up-late
boost-search-engine
Boost搜索引擎
master

搜索帮助