词云功能:
大家肯定都看过词云,也就是提取一段文字中的关键字,并将其根据出现的频率有大小不同的分类按照图片的方式展示出来,如下:
那么我们要怎么实现呢,其中,python就有一个叫wordcloud的模块可以简单实现:
WordCloud
首先,我们需要安装wordcloud, pip安装如下
pip install wordcloud
wordcloud有如下的属性(部分,这段代码需要的部分):
scale #画布放大倍数,也就是清晰度,值越大对应输出的文件也就越清晰
font_path #设置字体样式
background_color #设置背景的颜色
max_words #词云所能展示的最大词数
mask #词云所形成的形状
max_font_size #字体的最大值
width,height,margin #画布的宽高和边框
如果只是要简单的词云只需要将文字文件读入或者自己定一个带有文字的字符串就可以生成输出啦
text = '#自定义一个字符串#'
wdcloud = WordCloud(scale = 4,
font_path = '',#存放字体路径
background_color = 'white',
max_words = 50,
max_font_size = 10,
width = 100, height = 100, margin = 1)
matplotlib.pyplot.imshow(wdcloud.generate(text))#生成并输出词云
这样一来,简单的词云就已经可以生成啦,只有三行,是不是很简单?
结巴分词
虽然我也不知道为什么要叫结巴,但是真的好用啊,首先先要下载jieba模块:老样子,使用前要import
pip install jieba
然后是对自己需要的自定义单词的添加,以免需要的词被分割了
def add_word(words):
for word in words:
jieba.add_word(word)
add_word(my_words_list)
然后就是使用jieba对文字进行清洗,去掉无关词(例如:你,我,啊之类没有意义的单词)
- 首先是对text中的文字进行分割,使用jieba的cut方法
- 判断当前的词是否在停用词列表中
- 最后将筛选出来有意义的单词整成一个新的text
实现如下:
def jiebaClearText(text):#清洗单词,去掉无关词
mywordlist = []#存放洗净后的单词
string =