简介
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; }