摘要
最近想研究文本挖掘,所以这几天研究了一下Python的结巴分词扩展包,今天给大家分享分享我理解和使用的结巴分词,还请大家多多指导,有最近研究文本挖掘的也可以一起研究探讨。
ps:网上现在其实jieba分词有很多,而且大多讲的也差不多,但还是想写点,跟别的很多地方有一样的,大家可以都看看。
首先,结巴分词包安装就比较简单了,下载安装包之后在cmd里面进入该文件夹,直接运行python setup.py install 就ok啦。
Python结巴分词网上一般会讲解它的八个点,但是我最近看了之后感觉前面的六个点可能用的多一点,所以就讲一讲前面六个点。
1.分词
分词一般使用jieba.cut()或者jieba.cut_for_search()这两个函数。
1.jieba.cut()函数有三个参数:
a.分词字符串
b.cut_all = True/False(使用全模式还是精准模式,默认为精准模式)
c.HMM参数用来控制是否使用HMM模型(这个参数我感觉一般不用)
2.jieba.cut_for_search()函数有两个参数:
a.分词字符串
b.是否使用HMM模型
这个很容易理解,大家对照着代码和输出结果看看就能懂了,如果有啥疑问,可以随时提出。
2.添加自定义词典
有时有的词语,词典里面没有,这个时候可能你就想用自己定义的词典。用法:jieba.load_userdict(file_name) 。
注意:词典格式是一个词占一行,一行包括三部分,分别为词语,词频和词性,其中词频和词性可以省略,并且这三个部分应该用空格隔开。
另外,也可以调整词典:add_word(word,freq=None,tag=None),del_word(word)
3.关键词提取
关键词提取在结巴分词里面有两种算法选择,一种是基于IF-IDF算法,另外一种是基于TextRank算法。(这两种算法大家可以百度百度,挺好理解的,如果有机会的话,公众号说不定会哪次分享给大家)
a.基于TF-IDF算法:
函数:jieba.analyse.extract_tags(sentence,topK = 20,withWeight = False,allowPOS = ())
函数的四个参数分别为待提取文本;返回TF-IDF权重最大的多少 个关键字;是否返回权重;仅包括的词性。
b.基于TextRank算法:
函数:jieba.analyse.textrank(sentence,topK = 20,withWeight = False,allowPOS = ())
将这两种算法的结果对比着输出来给大家看看:
4.词性标注:
函数:jieba.posseg.POSTokenize(tokenizer = None)新建自定义分词器
这个部分直接看程序运行吧。
输出结果很简单:
5.并行分词:
这块的话原理就是将目标文本分隔后,把各个文本分配到多个Python进程进行并行分词。可以直接使用Python自带的multiprocessing模块,但是这个现在暂时不支持Windows系统,所以我也给大家展示不了。
6.Tokenize:返回词语在原文的起止位置
直接使用函数jieba.tokenize(),这个函数有个参数mode,如果不填写该参数则默认使用默认模式,填写该参数mode=‘search’,则使用搜索模式。
还有两点是ChineseAnalyzer for Whoosh搜索引擎和命令行分词,这里就不说了,想了解的朋友可以去百度百度。
我们下次再见,如果还有下次的话!!!
欢迎关注微信公众号:516数据工作室