CppJieba C++ 中文分词库 超级好用

CppJieba C++ 中文分词库 超级好用

编程文章jaq1232025-02-26 10:55:2823A+A-

一、主要特性:


有使用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]
点击这里复制本文地址 以上内容由jaq123整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!

苍茫编程网 © All Rights Reserved.  蜀ICP备2024111239号-21