Python数据挖掘:WordCloud词云配置过程及词频分析
python 词云 理解

python 词云理解Python词云是一种用于可视化文本数据的工具,通过统计文本中各个词语的出现频率,并根据频率生成一个词云图。
词云图可以直观地展示文本数据中的关键词,帮助人们更好地理解和分析文本内容。
Python词云的使用非常简单,只需要几行代码就可以生成一个漂亮的词云图。
首先,我们需要安装一个词云库,比如常用的wordcloud库。
安装完成后,我们可以导入该库,并读取文本数据,将其转化为一个字符串。
接下来,我们可以使用wordcloud库提供的函数,根据文本数据生成词云图。
我们可以设置词云图的样式、颜色和形状等参数,以使其更符合我们的需求。
最后,我们可以将生成的词云图保存到本地或在程序中直接显示出来。
词云图的生成原理是通过统计文本中各个词语的出现频率来确定词语在词云图中的大小。
出现频率较高的词语在词云图中会显示得更大,而出现频率较低的词语则会显示得更小。
通过观察词云图,我们可以直观地了解文本数据中的关键词,从而更好地理解和分析文本内容。
除了生成词云图,Python词云还可以进行一些其他的操作。
比如,我们可以设置词云图的背景颜色、字体颜色和字体样式等参数,以使其更加美观。
我们还可以通过设置停用词来过滤掉一些常用词语,从而更好地突出文本中的关键词。
此外,我们还可以根据词云图中词语的颜色、大小和位置等信息,进一步分析文本数据中的关联性和趋势。
总结来说,Python词云是一种用于可视化文本数据的工具,通过统计文本中各个词语的出现频率,并根据频率生成一个词云图。
词云图可以直观地展示文本数据中的关键词,帮助人们更好地理解和分析文本内容。
Python词云的使用非常简单,只需要几行代码就可以生成一个漂亮的词云图。
通过设置词云图的样式、颜色和形状等参数,我们可以使其更符合我们的需求。
除了生成词云图,Python词云还可以进行一些其他的操作,如设置词云图的背景颜色和字体样式等。
通过使用Python词云,我们可以更好地理解和分析文本数据,并从中获取有价值的信息。
利用python制作词云,wordcloud神器你值得拥有

利用python制作词云,wordcloud神器你值得拥有相信许多人都看到过下面这样的词云图,词云图是一种很好的可视化工具,其作用主要是为了文本数据的视觉表示,既酷炫又能突出重点。
关于词云图的制作,网上能够搜集到很多的教程,许多都是利用了专用的工具,这些工具便捷又强大,但是它们普遍存在一个问题:功能太过专一,且适用范围有限。
今天我们要尝试的,是使用通用的编程语言python来制作词云。
python这门编程语言非常地简单易用,即使看起来很复杂的设置,python用一个库和几条代码就能搞定了~第一步:下载并安装AnacondaAnaconda官网,选择适合你电脑的版本,推荐下载使用python3.6版本,因为在最新的版本当中,许多python之前的语言缺陷都得到了解决。
下载完成后,跟一般的软件一样安装即可。
安装好后在cmd中打开jupyter book,并新建一个目录。
第二步:分析文本生成词云词云分析的对象,是文本。
理论上讲,文本可以是各种语言的。
英文、中文、法文、阿拉伯文……最近大家都在追权力的游戏,我就在wiki上面搜索权力的游戏并将一些文本复制粘贴,存入wordcloud的文本里。
wordcloud把词云当作一个对象,它可以将文本中词语出现的频率作为一个参数绘制词云,而词云的大小、颜色、形状等都是可以设定的。
生成一个漂亮的词云文件三步就可以完成。
即:1、配置对象参数2、加载词云文本3、输出词云文件(如果不加说明默认的图片大小为400 * 200)首先安装这个库:pip install wordcloud简单了解一下wordcloud库的一些方法:打开jupyter,进行词云的绘制。
#读取词云文本filename = 'Game of Thrones.txt'with open(filename) asf:mytext = f.readmytext然后导入词云库,利用mytext中存储的文本内容来制造词云。
词云wordcloud类介绍python制作词云图词云图乱码问题等小坑

词云wordcloud类介绍python制作词云图词云图乱码问题等⼩坑词云图,⼤家⼀定见过,⼤数据时代⼤家经常见,我们今天就来⽤python的第三⽅库wordcloud,来制作⼀个⼤数据词云图,同时会降到这个过程中遇到的各种坑,举个例⼦,下⾯是我从⾃⼰的微信上抓的微信好友签名,制作的词云图:看来⽤的做多的还是“⽅得始终”啊⾸先我们需要⼏个库,pip完了导⼊1import chardet #检测字符类型的类2from wordcloud import WordCloud #词云库3import matplotlib.pyplot as plt #数学绘图库咱们这个例⼦分2步,第⼀步:从⽂件读取⼀段⽂字,第⼆步制作词云图并显⽰出来看代码:从桌⾯读取⼀个⽂件1 with open("C:\\Users\\fyc\\Desktop\\virgo.txt", "r") as f:2 text = f.read()3 type = chardet.detect(text)4 text1 = text.decode(type["encoding"])在这要做⼀个编码的⼯作,应为词云的generate函数接受的是⼀个Unicode类的对象,其他的对象会导致异常,经过层层跟进,终于在wordcloud.py⽂件⾥发现了这⼀⾏代码:1 stopwords = set(map(str.lower, self.stopwords))23 flags = (re.UNICODE if sys.version < '3'and type(text) is unicode4else 0)5 regexp = self.regexp if self.regexp is not None else r"\w[\w']+"67 words = re.findall(regexp, text, flags)问题出在正则表达式:如果不是unicode类型,进来的text经过re.findall计算,将什么也匹配不到,words为⼀个空list,随后就会抛出异常所以在generate()之前⼀定要转码成“Unicode”类型。
词云图Python利用jieba库做词频统计

词云图Python利⽤jieba库做词频统计⼀.环境以及注意事项1.windows10家庭版 python 3.7.12.需要使⽤到的库 wordcloud(词云),jieba(中⽂分词库),安装过程不展⽰3.注意事项:由于wordcloud默认是英⽂不⽀持中⽂,所以需要⼀个特殊字体 simsum.tff.下载地址:请安装到C:\Windows\Fonts ⾥⾯4.测试所⽤的三国演义txt⽂本下载地址(不保证永久有效):5.调试过程可能会出现许多⼩问题,请检查单词是否拼写正确,如words->word等等6.特别提醒:背景图⽚和⽂本需放在和py⽂件同⼀个地⽅⼆.词频统计以及输出 (1) 代码如下(封装为txt函数) 函数作⽤:jieba库三种模式中的精确模式(输出的分词完整且不多余) jieba.lcut(str):返回列表类型def txt(): #输出词频前N的词语txt = open("三国演义.txt","r").read() #打开txt⽂件,要和python在同⼀⽂件夹words = jieba.lcut(txt) #精确模式,返回⼀个列表counts = {} #创建字典excludes = ("将军","⼆⼈","却说","荆州","不可","不能","如此","如何",\"军⼠","左右","军马","商议","⼤喜") #规定要去除的没意义的词语for word in words:if len(word) == 1: #把意义相同的词语归⼀continueelif word == "诸葛亮" or word == "孔明⽈":rword = "孔明"elif word == '关公' or word == '云长':rword = '关⽻'elif word == '⽞德' or word == '⽞德⽈':rword = '刘备'elif word == '孟德' or word == "丞相" or word == '曹躁':rword = '曹操'else:rword = wordcounts[rword] = counts.get(rword,0) + 1 #字典的运⽤,统计词频P167for word in excludes: #删除之前所规定的词语del(counts[word])items = list(counts.items()) #返回所有键值对P168items.sort(key=lambda x:x[1], reverse =True) #降序排序N =eval(input("请输⼊N:代表输出的数字个数"))wordlist=list()for i in range(N):word,count = items[i]print("{0:<10}{1:<5}".format(word,count)) #输出前N个词频的词语 (2)效果图三.词频+词云 (1) 词云代码如下(由于是词频与词云结合,此函数不能直接当普通词云函数使⽤,⾃⾏做恰当修改即可)def create_word_cloud(filename):wl = txt() #调⽤函数获取strcloud_mask = np.array(Image.open("love.jpg"))#词云的背景图,需要颜⾊区分度⾼需要把背景图⽚名字改成love.jpgwc = WordCloud(background_color = "black", #背景颜⾊mask = cloud_mask, #背景图cloud_maskmax_words=100, #最⼤词语数⽬font_path = 'simsun.ttf', #调⽤font⾥的simsun.tff字体,需要提前安装height=1200, #设置⾼度width=1600, #设置宽度max_font_size=1000, #最⼤字体号random_state=1000, #设置随机⽣成状态,即有多少种配⾊⽅案)myword = wc.generate(wl) # ⽤ wl的词语⽣成词云# 展⽰词云图plt.imshow(myword)plt.axis("off")plt.show()wc.to_file('1.jpg') # 把词云保存下当前⽬录(与此py⽂件⽬录相同) (2) 词频加词云结合的完整代码如下from wordcloud import WordCloudimport matplotlib.pyplot as pltimport jiebaimport numpy as npfrom PIL import Imagedef txt(): #输出词频前N的词语并且以str的形式返回txt = open("三国演义.txt","r").read() #打开txt⽂件,要和python在同⼀⽂件夹words = jieba.lcut(txt) #精确模式,返回⼀个列表counts = {} #创建字典excludes = ("将军","⼆⼈","却说","荆州","不可","不能","如此","如何",\"军⼠","左右","军马","商议","⼤喜") #规定要去除的没意义的词语for word in words:if len(word) == 1: #把意义相同的词语归⼀continueelif word == "诸葛亮" or word == "孔明⽈":rword = "孔明"elif word == '关公' or word == '云长':rword = '关⽻'elif word == '⽞德' or word == '⽞德⽈':rword = '刘备'elif word == '孟德' or word == "丞相" or word == '曹躁':rword = '曹操'else:rword = wordcounts[rword] = counts.get(rword,0) + 1 #字典的运⽤,统计词频P167for word in excludes: #删除之前所规定的词语del(counts[word])items = list(counts.items()) #返回所有键值对P168items.sort(key=lambda x:x[1], reverse =True) #降序排序N =eval(input("请输⼊N:代表输出的数字个数"))wordlist=list()for i in range(N):word,count = items[i]print("{0:<10}{1:<5}".format(word,count)) #输出前N个词频的词语wordlist.append(word) #把词语word放进⼀个列表a=' '.join(wordlist) #把列表转换成str wl为str类型,所以需要转换return adef create_word_cloud(filename):wl = txt() #调⽤函数获取str!!#图⽚名字需⼀致cloud_mask = np.array(Image.open("love.jpg"))#词云的背景图,需要颜⾊区分度⾼wc = WordCloud(background_color = "black", #背景颜⾊mask = cloud_mask, #背景图cloud_maskmax_words=100, #最⼤词语数⽬font_path = 'simsun.ttf', #调⽤font⾥的simsun.tff字体,需要提前安装height=1200, #设置⾼度width=1600, #设置宽度max_font_size=1000, #最⼤字体号random_state=1000, #设置随机⽣成状态,即有多少种配⾊⽅案)myword = wc.generate(wl) # ⽤ wl的词语⽣成词云# 展⽰词云图plt.imshow(myword)plt.axis("off")plt.show()wc.to_file('1.jpg') # 把词云保存下当前⽬录(与此py⽂件⽬录相同)if __name__ == '__main__':create_word_cloud('三国演义') (3) 效果图如下(输出词频以及词云)(4) 改进代码——⾃定义类,可⾃定义排除词语和同义词注意:如果有OS报错,则尝试把字体⽂件放到.py当前⽬录的other⽬录下# ⾃定义类版class MyWordCloud:filePath = ""number = 1counts = {}excludes = [] # 需要排除的词语,例如不是,天⽓等常见词synonym = () # 同义词,元组,以该元组最后⼀个词语作为前⾯词语的意思def __init__(self, path, number, counts={}, excludes=[], synonym=()):self.filePath = pathself.number = numberself.counts = countsself.excludes = excludesself.synonym = synonym# 使⽤jieba库进⾏词频统计def count(self):txtFile = open(self.filePath, "r").read()words = jieba.lcut(txtFile)for word in words:if len(word) == 1 or len(word) > 4: # 去除长度为1和⼤于4的字符continuefor i in range(len(self.synonym)):for j in range(len(synonym[i])):if word == synonym[i][j]:word = synonym[i][len(synonym[i]) - 1]rword = wordself.counts[rword] = self.counts.get(rword, 0) + 1 # <class 'int'> 统计词频,0为初值# 删除排除词语for x in self.excludes:del (self.counts[x])return self.counts# 输出前number词频最⾼的词语def printPreNumberWord(self):self.counts = self.count()for i in range(15):items = list(self.counts.items())items.sort(key=lambda x: x[1], reverse=True) # 降序排序word, count = items[i]print("{0:<10}{1:<5}".format(word, count))# 获取词频最⾼的前number个词语def getPreNumberWord(self, counts=None):if (self.counts == None and counts == None):counts = self.count()else:counts = self.countsitems = list(counts.items())items.sort(key=lambda x: x[1], reverse=True) # 降序排序wordlist = []for i in range(self.number):word, count = items[i]# print("{0:<10}{1:<5}".format(word, count)) # 输出前N个词频的词语wordlist.append(word) # 把词语word放进⼀个列表return wordlist# ⽣成词云图def create_word_cloud(self):cloud_mask = np.array(Image.open("./picture/worlCloud.jpg"))wc = WordCloud(background_color="black", # 背景颜⾊mask=cloud_mask, # 背景图cloud_maskmax_words=100, # 最⼤词语数⽬font_path='./other/simsun.ttf', # 调⽤font⾥的simsun.tff字体,需要提前安装/下载height=1200, # 设置⾼度width=1600, # 设置宽度max_font_size=1000, # 最⼤字体号random_state=1000, # 设置随机⽣成状态,即有多少种配⾊⽅案)wl = ' '.join(self.getPreNumberWord()) # 把列表转换成str wl为str类型,所以需要转换img = wc.generate(wl) # ⽤ wl的词语⽣成词云# 展⽰词云图plt.imshow(img)plt.axis("off")plt.show()wc.to_file('./picture/1.jpg') # 把词云保存if __name__ == '__main__':filePath = "./txt/三国演义.txt"number = 20excludes = ["将军", "⼆⼈", "却说", "荆州", "不可", "不能", "引兵","次⽇", "如此", "如何", "军⼠", "左右", "军马", "商议", "⼤喜"]synonym = (("诸葛亮", "孔明⽈", "孔明"), ("关公", "云长", "关⽻"), ("⽞德", "⽞德⽈", "刘备"), ("孟德", "丞相", "曹躁", "曹操"))wl = MyWordCloud(filePath, number=number, excludes=excludes, synonym=synonym)wl.printPreNumberWord()wl.create_word_cloud()。
Python制作词云的WordCloud参数用法说明

Python制作词云的WordCloud参数⽤法说明场景官⽅API:实现font_path : string #字体路径,需要展现什么字体就把该字体路径+后缀名写上,如:font_path = '⿊体.ttf'width : int (default=400) #输出的画布宽度,默认为400像素height : int (default=200) #输出的画布⾼度,默认为200像素prefer_horizontal : float (default=0.90) #词语⽔平⽅向排版出现的频率,默认 0.9 (所以词语垂直⽅向排版出现频率为 0.1 )mask : nd-array or None (default=None) #如果参数为空,则使⽤⼆维遮罩绘制词云。
如果 mask ⾮空,设置的宽⾼值将被忽略,遮罩形状被 mask 取代。
除全⽩(#FFFFFF)的部分将不会绘制,其余部分会⽤于绘制词云。
如:bg_pic = imread('读取⼀张图⽚.png') scale : float (default=1) #按照⽐例进⾏放⼤画布,如设置为1.5,则长和宽都是原来画布的1.5倍min_font_size : int (default=4) #显⽰的最⼩的字体⼤⼩font_step : int (default=1) #字体步长,如果步长⼤于1,会加快运算但是可能导致结果出现较⼤的误差max_words : number (default=200) #要显⽰的词的最⼤个数stopwords : set of strings or None #设置需要屏蔽的词,如果为空,则使⽤内置的STOPWORDSbackground_color : color value (default=”black”) #背景颜⾊,如background_color='white',背景颜⾊为⽩⾊max_font_size : int or None (default=None) #显⽰的最⼤的字体⼤⼩mode : string (default=”RGB”) #当参数为“RGBA”并且background_color不为空时,背景为透明relative_scaling : float (default=.5) #词频和字体⼤⼩的关联性color_func : callable, default=None #⽣成新颜⾊的函数,如果为空,则使⽤ self.color_funcregexp : string or None (optional) #使⽤正则表达式分隔输⼊的⽂本collocations : bool, default=True #是否包括两个词的搭配colormap : string or matplotlib colormap, default=”viridis” #给每个单词随机分配颜⾊,若指定color_func,则忽略该⽅法random_state : int or None #为每个单词返回⼀个PIL颜⾊fit_words(frequencies) #根据词频⽣成词云generate(text) #根据⽂本⽣成词云generate_from_frequencies(frequencies[, ...]) #根据词频⽣成词云generate_from_text(text) #根据⽂本⽣成词云process_text(text) #将长⽂本分词并去除屏蔽词(此处指英语,中⽂分词还是需要⾃⼰⽤别的库先⾏实现,使⽤上⾯的 fit_words(frequencies) )recolor([random_state, color_func, colormap]) #对现有输出重新着⾊。
Python-词云分析图

Python-词云分析图Pytorch版本打开对应的⽂本filename = "D:\Project_Encyclopedia\img\paper.txt"with open(filename) as f:mytext = f.read()输出⽂本print(mytext)然后我们呼唤(import)词云包,利⽤mytext中存储的⽂本内容来制造词云。
from wordcloud import WordCloudwordcloud = WordCloud().generate(mytext)⽣成词云分析图%pylab inlineimport matplotlib.pyplot as pltplt.imshow(wordcloud, interpolation='bilinear')plt.axis("off")图⽚版pycharm版本import jiebaimport sysfrom wordcloud import WordCloud#在引⼊jieba模块后加⼊这⾏代码,代码即可不报错jieba.setLogLevel()mytext=open('paper.txt','r').read()mytext = " ".join(jieba.cut(mytext))jieba.setLogLevel()wordcloud = WordCloud().generate(mytext)import matplotlib.pyplot as pltplt.imshow(wordcloud, interpolation='bilinear')plt.axis("off")plt.show()对于中⽂词频下载相应的simsun.ttf,作为指定输出字体import jiebaimport sysfrom wordcloud import WordCloud#在引⼊jieba模块后加⼊这⾏代码,代码即可不报错jieba.setLogLevel()mytext=open('paper.txt','r').read()mytext = " ".join(jieba.cut(mytext))jieba.setLogLevel()wordcloud = WordCloud(font_path="simsun.ttf").generate(mytext)import matplotlib.pyplot as pltplt.imshow(wordcloud, interpolation='bilinear')plt.axis("off")plt.show()输出。
Python简单实现词云图代码及步骤解析

Python简单实现词云图代码及步骤解析⼀、安装 wordcloudpip install wordcloud⼆、加载包、设置路径import osfrom wordcloud import WordCloudimport matplotlib.pyplot as pltos.chdir('E:\\pyspace\\tmp')三、词云图⽰例1、默认参数⽰例text = 'Keep it simple and stupid.'wc = WordCloud() # 实例化词云图对象wc.generate(text) # 根据⽂本⽣成词云图plt.imshow(wc) # 显⽰词云图如果 jupyter 没有图形输出,需要设置 jupyter 的图形显⽰⽅式%matplotlib inlineWordCloud() 词云图对象对应的画布默认长200像素,宽400像素,背景⾊为⿊⾊。
2、配置参数⽰例text = 'Keep it simple and stupid.'wc = WordCloud(background_color='white', width=500, height=300) # 实例化词云图对象wc.generate(text) # 根据⽂本⽣成词云图plt.imshow(wc) # 显⽰词云图3、不显⽰坐标轴text = 'Keep it simple and stupid.'wc = WordCloud(background_color='white', width=500, height=300) # 实例化词云图对象wc.generate(text) # 根据⽂本⽣成词云图plt.imshow(wc) # 显⽰词云图plt.axis('off') # 不显⽰坐标轴plt.show()环境说明:以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。
python第三方库wordcloud(词云)的安装步骤和出现的问题

python第三⽅库wordcloud(词云)的安装步骤和出现的问题⽅法1:
直接在命令⾏输⼊ pip install wordcloud 进⾏安装就可以,
pip安装wordcloud过程中可能会提⽰pip⼯具版本低,需pip-10.0.1版本,需先更新pip包管理⼯具python -m pip install --upgrade pip
⼀般这个就可以了
⽅法2:如果⽹络不是很好的话,步骤1 ⼀般安装会失败。
那我们就先下载安装包到本地⽬录, ⽐如python为3.6.x版本的下载cp36的包,注意不要下cp37,安装不了的。
这个⽹址下载对应的包,打开后可以Ctrl +F 来查找你想下载的第三⽅库
p后⾯的27、35、36代表python的版本2.7、3.5、3.6,
win32、win_amd64代表电脑操作系统
下载完后在cmd命令⾏进⼊wordcloud库的下载路径,(⽐如 D:\),利⽤指令pip install wordcloud-1.4.1-cp35-cp35m-win_amd64.whl 进⾏安装,安装成功后会出现如下界⾯,命令提⽰⾏最下会显⽰Successfully install wordcloud-1.4.1。
其它库如果安装失败也可以按这个步骤⼿动下载安装。
————————————————。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
CompilerforPython2.7)。但是在微软下载总是没响应。这是最大的问
题,下面我自己提供一个CSDN的地址供大家下载。下载完成,可以进行安
装响应的库函数。资源地址:download.csdn/detail/eastmount/9788218
体文件供程序调用,如下图所示,这是原来的字体DroidSansMono.ttf。
此时的运行结果如下所示,这是分析CSDN多篇博客的主题,”阅读”和”
评论”比较多。
也可以采用下面的代码:
wordcloud=WordCloud(font_path=
'MSYH.TTF').fit_words(word)
在使用WordCloud词云之前,需要使用pip安装相应的包。
pip install WordCloud
pip install jieba
其中WordCloud是词云,jieba是结巴分词工具。问题:在安装
WordCloud过程中,你可能遇到的第一个错误如下。
error: Microsoft Visual C++ 9.0 is required. Get it from asa.ms/vcpython27
Python数据挖掘:WordCloud词云配置过程及词频
分析
这篇文章是学习了老曹的微信直播,感觉WordCloud对我的《Python数
据挖掘课程》非常有帮助,希望这篇基础文章对你有所帮助,同时自己也是
词云的初学者,强烈推荐老曹的博客供大家学习。如果文章中存在不足或错
误的地方,还请海涵~
一.安装WordCloud
安装完成之后,可以正常运行代码啦。
二.简单词云代码
下面这部分代码参考老曹的,希望对你有所帮助。老曹说:什幺是
词云呢?词云又叫文字云,是对文本数据中出现频率较高的“关键词”在视觉
上的突出呈现,形成关键词的渲染形成类似云一样的彩色图片,从而一眼就
可以领略文本数据的主要表达意思。代码如下:
运行结果如下所示:
这是中文编码问题,下面讲解解决方法。
三.中文编码错误及解决
在WordCloud安装的目录下找到WordCloud.py文件,对源码进行修改。
编辑wordcloud.py,找到FONT_PATH,将DroidSansMono.ttf修改成
msyh.ttf。这个msyh.ttf表示微软雅黑中文字体。
注意,此时运行代码还是报错,因为需要在同一个目录下放置msyh.ttf字
四.照片背景的词云代码
下面进一步深入,假设存在一个图“sss3.png”,核心代码如下:
运行结果如下图所示,显示我和宝宝我俩最近两月的聊天记录。
一弦一柱思华年,一co一ding梦严贤。希望文章对你有所帮助,尤
其是结合数据库做数据分析的人。还是那句话,如果刚好需要这部分知识,
你就会觉得非常有帮助,否则只是觉得好玩,这也是在线笔记的作用。如果
文章中存在不足或错误的地方ห้องสมุดไป่ตู้还请海涵~