一、主要特性:
有使用python做自然语言处理、NLP的同学应该对Jieba(结巴)不陌生、可以说是机器学习、ai领域的中文分词事实上的标准了。
- (01)源代码都写进头文件 src/*.hpp 里,include 即可使用;
- (02)支持utf-8,gbk编码,但是推荐使用utf-8编码;
- (03)内置分词服务 server/server.cpp,在 linux 环境下可安装使用;
- (04)项目自带较为完善的单元测试,核心功能中文分词 (utf8) 的稳定性接受过线上环境检验;
- (05)支持载自定义用户词典;
- (06)支持 linux , mac osx 操作系统;
- (07)支持 Docker;
二、快速体验:
#include "cppjieba/Jieba.hpp"
using namespace cppjieba;
using namespace std;
// 默认词典
const char* const DICT_PATH = "cppjieba-master/dict/jieba.dict.utf8";
// hmm模型
const char* const HMM_PATH = "cppjieba-master/dict/hmm_model.utf8";
// 用户自定义词典
const char* const USER_DICT_PATH = "cppjieba-master/dict/user.dict.utf8";
// 逆文档频率:IDF
const char* const IDF_PATH = "cppjieba-master/dict/idf.utf8";
// 停用词
const char* const STOP_WORD_PATH = "cppjieba-master/dict/stop_words.utf8";
// g++ -Icppjieba-master/include -Ilimonp-master/include demo2.cpp -o demo2
int main(int argc, char** argv) {
// 定义分词对象
Jieba jieba(DICT_PATH, HMM_PATH, USER_DICT_PATH, IDF_PATH, STOP_WORD_PATH);
// 定义待分词的句子
string s = "我在今日头条进行创作啦";
cout << "源句子: "<< s << endl;
// 用于存储分词结果
vector words;
// 进行分词: 默认使用快速分词方式
jieba.Cut(s, words);
cout << "------------------------" << endl;
cout << "分词结果如下: " << endl;
cout << "------------------------" << endl;
for (const auto &word: words) {
cout << word << endl;
}
cout << "------------------------" << endl;
return 0;
}
输出效果为:
三、怎么编译安装?
- 需要根据github[https://github.com/yanyiwu/cppjieba]指引编译安装,如果遇到问题欢迎留言交流。
- 另外注意本库依赖limonp库,所以也要下载limonp库[https://github.com/yanyiwu/limonp]