很多时候,我们想提取一段文字(或一篇文章)中的高频词汇;或是对文章进行分词处理,进行惯用词统计及词云制作。(打个比方:你写了一篇文章,写完之后你觉得好像用词有些单调,你想佐证一下自己的想法,所以就需要对自己写的这篇文章进行词汇梳理及使用频率统计)。这时候,最常用的做法就是利用今天要讲的——jieba库。
(1)原理
jieba 是目前最好用的 Python 中文分词库,它的原理是:
jieba库的三种分词模式:
精确模式、全模式、搜索引擎模式
除此之外,jieba库还具有以下两个特性:
jieba库常用函数:
同学们可以根据自己的需求,调用不同的方法。
下面,我们通过一个小例子来体验一下精确模式和全模式之间的差异:
首先先展示一下我们案例用的一个小文案:
首先是精确模式:
代码总共分为三步:
(1)导入jieba库;并导入文件;
(2)使用jieba库中的cut函数进行分词,剔除了其中为单字的词及换行符,保留剩余结果;
(3)输出分词结果。
import jieba file_name =r'C:UsersAdministratorDesktopjieba例子.txt' with open(file_name,'r') as f: content = f.read() #这里我定义了一个函数cut_word(): def cut_word(): segment=[] # 保存分词结果 segs=jieba.cut(content) # 对整体进行分词 for seg in segs: if len(seg) > 1 and seg != 'rn': # 如果说分词得到的结果不是单字,且不是换行符,则加入到数组中 segment.append(seg) return segment print(cut_word())
运行结果:
可以看到,“是”、“的”之类的单字被我们筛除掉了,不过其他词段均完整了进行了分割,效果还是可以的。
下面我们尝试使用全模式:
全模式与精确模式的区别,在于使用了 cut_all = True 这一个参数。(其他代码内容不变)
import jieba file_name =r'C:UsersAdministratorDesktopjieba例子.txt' with open(file_name,'r') as f: content = f.read() #这里我定义了一个函数cut_word():