中文分词jieba

first:安装中文分词库, 在命令行中输入

pip3 install jieba

1
2
3
4
5
6
>>> import jieba
>>> textlist=jieba.lcut('动力学和电磁学')
['动力学','和','电磁学']
>>> string = " ".join(textlist)
>>> string
‘动力学 和 电磁学’

以上代码将一句完整的中文字符串转换成了以空格分隔的词组成的字符串,而后者是绘制词云时generate()方法要求传入的参数。

中文分词库jieba的常用方法

精确模式(最常用,只会这个就行):每个字只用一遍,不存在冗余词汇。jieba.lcut('动力学和电磁学')

全模式:把每个字可能形成的词汇都提取出来,存在冗余。jieba.lcut('动力学和电磁学',cut_all=True)

搜索引擎模式:将全模式分词的结果从短到长排列好。jieba.lcut_for_search('动力学和电磁学')

以下命令演示了三种分词模式及结果,精确模式是最常用的。

1
2
3
4
5
6
7
8
9
10
>>> import jieba
>>> textlist1 = jieba.lcut('动力学和电磁学')
>>> textlist1
['动力学', '和', '电磁学']
>>> textlist2 = jieba.lcut('动力学和电磁学',cut_all=True)
>>> textlist2
['动力', '动力学', '力学', '和', '电磁', '电磁学', '磁学']
>>> textlist3 = jieba.lcut_for_search('动力学和电磁学')
>>> textlist3
['动力', '力学', '动力学', '和', '电磁', '磁学', '电磁学']

学校介绍词云

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import jieba
import wordcloud

#构建词云对象
w=wordcloud.WordCloud(width=1000,
height=700,
background_color='white',
font_path='Songti.ttc')
#调用jieba的lcut()方法对原始文本进行中文分词,得到string
txt='河南理工大学(Henan Polytechnic University)位于河南省焦作市,是中国第一所矿业高等学府、河南省建立最早的高等学校,为河南省与应急管理部共建高校、河南省属重点大学。'
textlist=jieba.lcut(txt)
string=" ".join(textlist)

#将string变量传入到w的generate()方法,给词云输入文字
w.generate(string)
#将词云图片导出到当前文件夹
w.to_file('example4.png')

读取文本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
import jieba
import wordcloud

w=wordcloud.WordCloud(width=1000,
height=700,
background_color='white',
font_path='Songti.ttc')
f=open('/Users/SJCHEN/Downloads/zihaowordcloud-master/code/关于实施乡村振兴战略的意见.txt',encoding='utf-8')
txt=f.read()
textlist=jieba.lcut(txt)
string=" ".join(textlist)

w.generate(string)
w.to_file('example5.png')