中文分词cppjieba

简介

jieba库是一个简单实用的中文自然语言处理分词库。

jieba分词属于概率语言模型分词。概率语言模型分词的任务是:在全切分所得的所有结果中求某个切分方案S,使得P(S)最大。

jieba支持三种分词模式:

全模式,把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义;
精确模式,试图将句子最精确地切开,适合文本分析;
搜索引擎模式,在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。

1.关键词提取

1).切词

2).过滤掉单个字的词和停用词

3).时使用TF-IDF计算,TF为 (词频* 1.0),IDF从外部文件的词表中获得如果不存在就赋为平均的IDF

2.词典说明

## 分词

### jieba.dict.utf8/gbk

作为最大概率法(MPSegment: Max Probability)分词所使用的词典。

### hmm_model.utf8/gbk

作为隐式马尔科夫模型(HMMSegment: Hidden Markov Model)分词所使用的词典。

__对于MixSegment(混合MPSegment和HMMSegment两者)则同时使用以上两个词典__


## 关键词抽取

### idf.utf8

IDF(Inverse Document Frequency)
在KeywordExtractor中,使用的是经典的TF-IDF算法,所以需要这么一个词典提供IDF信息。

### stop_words.utf8

停用词词典

3. 使用示例

#include <iostream>
#include "cppjieba/Jieba.hpp"
using namespace std;


int main(int argc, char const *argv[])
{
    char ch0[]={"金古江湖战旗春秋"};
    const char* const DICT_PATH = "cppjieba/dict/jieba.dict.utf8";
    const char* const HMM_PATH = "cppjieba/dict/hmm_model.utf8";
    const char* const USER_DICT_PATH = "cppjieba/dict/user.dict.utf8";
    const char* const IDF_PATH = "cppjieba/dict/idf.utf8";
    const char* const STOP_WORD_PATH = "cppjieba/dict/stop_words.utf8";

    cppjieba::Jieba jieba(DICT_PATH,
        HMM_PATH,
        USER_DICT_PATH,
        IDF_PATH,
        STOP_WORD_PATH);
    vector<string> words;
    vector<cppjieba::Word> jiebawords;
    string s=ch0;
    string result;

    jieba.Cut(s, words, true);
    cout << limonp::Join(words.begin(), words.end(), "/") << endl;

    return 0;
}

 

上一篇:文本特征选择


下一篇:启明云端分享|久盼的ESP32-C3/ESP32-C3FN4/ESP32-C3FH4 真的来了!小明特为您做了选型参考,快速选择最合适的芯片、模块产品进行物联网开发