1、分词模式
结巴分词有三种切分模式:全切分、精确切分、搜索引擎切分
1、全切分模式(jieba.cut):将所要切分的对象尽可能多的切分,即将所有成词的结果都切分出来,无法解决歧义问题。两个参数,第一个是待切分字符串,第二个是cut_all,cut_all=True 表示采用全模式。
2、精确切分模式(jieba.cut):适用于文本分析,没有多余的成词。两个参数,第一个是待切分字符串,第二个是cut_all,cut_all=False 表示采用精确模式。省略第二个参数时默认为精确切分。
3、搜索引擎模式(jieba.cut_for_search):在精确切分的结果上,进一步切分长词,适用于搜索引擎分词。有一个参数,需要切分的字符串或文本。
2、使用的算法
• 基于Trie树结构实现高效的词图扫描,生成句子中汉字所有可能成词情况所构成的有向无环图(DAG)
• 采用了动态规划查找最大概率路径, 找出基于词频的最大切分组合
• 对于未登录词,采用了基于汉字成词能力的HMM模型,使用了Viterbi算法
3、文件分析
jieba文件夹目录如上图。其中,posseg提供HMM模型的viterbi算法代码,用于文本分词;analyse里面是tfidf和textrank抽取关键词和文本摘要的接口;dict.txt是词典,统计了每个词的次数和词性。
_init_.py中是结巴分词提供的所有功能的接口的定义和实现;_compat.py文件用语处理Python2和Python3之间的差异;_main_.py文件将底层的接口通过命令行的方式暴露给用户,用户可以设置自己的词典,需要处理的文件,是否使用隐马尔可夫模型,这个文件不涉及分词的算法,