python文本处理之可视化wordcloud

  • 什么是词云
词云又叫文字云,是对文本数据中出现频率较高的“关键词”在视觉上的突出呈现,形成关键词的渲染形成类似云一样的彩色图片,从而一眼就可以领略文本数据的主要表达意思。
  • 准备工作:

python开发环境、wordcloud、jieba、matplotlib、numpy 、PIL 等库文件安装好。

    • pip 安装方法:

      1. pip install xxx
      2. 使用idea 直接安装

      wordcloud生成词云的原理简介 
      wordcloud生成词云的原理其实并不复杂,大体分成5步(具体可自行查看源码):

      1.wordcloud制作词云时,首先要对对文本数据进行分词,使用process_text()方法,这一步的主要任务是去除停用词 
      2.第二步是计算每个词在文本中出现的频率,生成一个哈希表。词频用于确定一个词的重要性 
      3.根据词频的数值按比例生成一个图片的布局,类IntegralOccupancyMap 是该词云的算法所在,是词云的数据可视化方式的核心。生成词的颜色、位置、方向等 
      4.最后将词按对应的词频在词云布局图上生成图片,核心方法是generate_from_frequencies,不论是generate()还是generate_from_text()都最终用到generate_from_frequencies 
      完成词云上各词的着色,默认是随机着色 
      5.词语的各种增强功能大都可以通过wordcloud的构造函数实现,里面提供了22个参数,还可以自行扩展。

  • demo:
# coding:utf-8
import matplotlib.pyplot as plt
from wordcloud import WordCloud, ImageColorGenerator, STOPWORDS
import jieba
import numpy as np
from PIL import Image

# 读入背景图片
abel_mask = np.array(Image.open("/home/djh/PycharmProjects/source/test.jpg"))

# 读取要生成词云的文件
text_from_file_with_apath = open(‘/home/djh/PycharmProjects/source/a.txt‘).read()

# 通过jieba分词进行分词并通过空格分隔
wordlist_after_jieba = jieba.cut(text_from_file_with_apath, cut_all=True)
wl_space_split = " ".join(wordlist_after_jieba)
# my_wordcloud = WordCloud().generate(wl_space_split) 默认构造函数
my_wordcloud = WordCloud(
	background_color=‘white‘,  # 设置背景颜色
	mask=abel_mask,  # 设置背景图片
	max_words=200,  # 设置最大现实的字数
	stopwords=STOPWORDS,  # 设置停用词
	font_path=‘/home/djh/win_font/simkai.ttf‘,  # 设置字体格式,如不设置显示不了中文
	max_font_size=50,  # 设置字体最大值
	random_state=30,  # 设置有多少种随机生成状态,即有多少种配色方案
	scale=.5
).generate(wl_space_split)

# 根据图片生成词云颜色
image_colors = ImageColorGenerator(abel_mask)
# my_wordcloud.recolor(color_func=image_colors)

# 以下代码显示图片
plt.imshow(my_wordcloud)
plt.axis("off")
plt.show()

  

时间: 2024-10-03 23:07:32

python文本处理之可视化wordcloud的相关文章

python做词云 (WordCloud)

python做词云 (WordCloud) 1. 安装 某个教程给出的方法,到[这里][1]下载相应的wordcolud,然后到相应目录pip安装. 其实直接 pip install wordcloud 就ok了 ,进入python. import wordcloud成功即可. ##2. 文档简要说明 可以看到文档主要就3个主要的函数,目前主要介绍WordCloud模块以及相关的函数. WordCloud() class wordcloud.WordCloud(font_path=None, w

Python 文本解析器

Python 文本解析器 一.课程介绍 本课程讲解一个使用 Python 来解析纯文本生成一个 HTML 页面的小程序. 二.相关技术 Python:一种面向对象.解释型计算机程序设计语言,用它可以做 Web 开发.图形处理.文本处理和数学处理等等. HTML:超文本标记语言,主要用来实现网页. 三.项目截图 纯文本文件: Welcome to ShiYanLou ShiYanLou is the first experiment with IT as the core of online ed

可对Python运行原理进行可视化分析的工具

Python Tutor Python Tutor是一个对Python运行原理进行可视化分析的工具,网址为: http://www.pythontutor.com 使用范例 参考链接 原文地址:https://www.cnblogs.com/jiangling500/p/8353607.html

python文本 拼接或合并字符串

python文本 拼接.合并字符串 场景: 拼接.合并字符串 在这个场景中,我们首先想到的当然是使用+或者+=将两个字符串连接起来 >>> a='a'    >>> b='b'    >>> c=a+b    >>> c    'ab'    >>> 如果整个程序只有两个字符串需要拼接,那没有问题 但是如果程序里面大量存在拼接,甚至需要循环拼接,这个时候性能问题就会出现 原因:字符串是不可原地修改的,改变一个字符串就

Python文本爬虫实战

转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/7019950.html  一:流程 目标:爬取目标网页的图片 1:获取网页源码 2:用Python读取源码 3:使用正则表达式从网页源码提取图片地址 4:根据图片地址下载图片 二:实现 1:源码获取 文本爬虫,是在已有的文本内容中爬取需要的信息,这区别于网络爬虫. 由于被检索的内容是现成的,因此,文本爬虫又叫"半自动爬虫". 在本例中,我们以昵图网首页为目标网址,因此,我们先到昵图网首页,右键-&g

Python文本处理和Java/C比对

一:起因 (1)态度和思想的转变很重要:要说起学习Python的原因,也够曲折的 -- 很早之前就听说了Python 以及 Perl语言,一直有学习的打算和冲动:最后学习Python是由于学习<机器学习>,和国外的教学视频里面那些洋教授们,以及国外关于机器学习的API都是用到的Python语言,自己初试牛刀一把,感觉效率就是高,慢慢的观念就转变了. (2)态度和思想的转变很重要:学习一门新技术或者语言,跟人们认识事物的规律是一样一样 -- 刚刚接触新鲜事物时,第一反应排斥.反对(哪里都感觉别扭

【Python】Python文本处理中用langid工具包来对文本进行语言检测与判别

1.问题的描述 用Python进行文本处理时,有时候处理的文本中包含中文.英文.日文等多个语系的文本,有时候不能同时进行处理,这个时候就需要判别当前文本是属于哪个语系的.Python中有个langid工具包提供了此功能,langid目前支持97种语言的检测,非常好用. 2.程序的代码 以下Python是调用langid工具包来对文本进行语言检测与判别的程序代码: import langid #引入langid模块 def translate(inputFile, outputFile): fin

Python 文本处理的应用

最近根据公司运营部需求要对mongo数据库中的相关信息进行统计,本人一般喜欢将数据库服务器中相关的数据导出来(PS:其一由于Mongo为Nosql,在涉及关联表时不好处理,其二是因为虽然为测试环境,但是为了不影响性能的话我还是习惯将数据导出,但是缺点就是自己测试机压力比较大,不过针对于目前数据情况还是可以应付的). 根据createDate时间段导出的数据格式如下(已经经过处理,处理过程略过) 1 a : 5 , b: 111 , c: 5 2 a : 1 , b: 222 , c: 3 3 a

python自学笔记(五)python文本操作

一.python自带方法 r:read 读 w:write 写 a:append 尾行追加 先命令行进入python后 >>>d = open('a.txt','w') #在对应路径下打开a.txt文本,如果没有就创建一个,然后赋值给变量d >>>d.write('good\n hi') #写入 >>>d.close()#关闭文件 >>>d = open('a.txt','r') >>>print d.readlin