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。
其它库如果安装失败也可以按这个步骤⼿动下载安装。
————————————————。
Python实现Wordcloud生成词云图的示例
Python实现Wordcloud⽣成词云图的⽰例wordcloud是Python扩展库中⼀种将词语⽤图⽚表达出来的⼀种形式,通过词云⽣成的图⽚,我们可以更加直观的看出某篇⽂章的故事梗概。
⾸先贴出⼀张词云图(以哈利波特⼩说为例):在⽣成词云图之前,⾸先要做⼀些准备⼯作1.安装结巴分词库pip install jiebaPython中的分词模块有很多,他们的功能也都是⼤同⼩异,我们安装的结巴分词是当前使⽤的最多的类型。
下⾯我来简单介绍⼀下结巴分词的⽤法结巴分词的分词模式分为三种:(1)全模式:把句⼦中所有的可以成词的词语都扫描出来, 速度快,但是不能解决歧义问题(2)精确模式:将句⼦最精确地切开,适合⽂本分析(3)搜索引擎模式:在精确模式的基础上,对长词再次切分,提⾼召回率,适合⽤于搜索引擎分词下⾯⽤⼀个简单的例⼦来看⼀下三种模式的分词区别:import jieba# 全模式:把句⼦中所有的可以成词的词语都扫描出来, 速度快,但是不能解决歧义问题text = "哈利波特是⼀常优秀的⽂学作品"seg_list = jieba.cut(text, cut_all=True)print(u"[全模式]: ", "/ ".join(seg_list))# 精确模式:将句⼦最精确地切开,适合⽂本分析seg_list = jieba.cut(text, cut_all=False)print(u"[精确模式]: ", "/ ".join(seg_list))# 默认是精确模式seg_list = jieba.cut(text)print(u"[默认模式]: ", "/ ".join(seg_list))# 搜索引擎模式:在精确模式的基础上,对长词再次切分,提⾼召回率,适合⽤于搜索引擎分词seg_list = jieba.cut_for_search(text)print(u"[搜索引擎模式]: ", "/ ".join(seg_list))下⾯是对这句话的分词⽅式:通过这三种分词模式可以看出,这些分词模式并没有很好的划分出“哈利波特”这个专有名词,这是因为在结巴分词的字典中并没有记录这个名词,所以需要我们⼿动添加⾃定义字典添加⾃定义字典:找⼀个⽅便引⽤的位置(下图的路径是我安装的位置),新建⽂本⽂档(后缀名为.txt),将想添加的词输⼊进去(注意输⼊格式),保存并退出在上⾯的代码中加⼊⾃定义字典的路径,再点击运⾏jieba.load_userdict("/home/jmhao/anaconda3/lib/python3.7/site-packages/jieba/mydict.txt")分词结果,可以看出“哈利波特”这个词已经被识别出来了结巴分词还有另⼀个禁⽤词的输出结果stopwords = {}.fromkeys(['优秀', '⽂学作品'])#添加禁⽤词之后seg_list = jieba.cut(text)final = ''for seg in seg_list:if seg not in stopwords:final += segseg_list_new = jieba.cut(final)print(u"[切割之后]: ", "/ ".join(seg_list_new))可以看到输出结果中并没有“优秀”和“⽂学作品”两个词结巴分词还有很多⽐较复杂的操作,具体的可以去官⽹查看,我就不再过多的赘述了下⾯我们正式开始词云的制作⾸先下载模块,这⾥我所使⽤的环境是Anaconda,由于Anaconda中包含很多常⽤的扩展包,所以这⾥只需要下载wordcloud。
利用python实现简单词频统计、构建词云
利⽤python实现简单词频统计、构建词云1、利⽤jieba分词,排除停⽤词stopword之后,对⽂章中的词进⾏词频统计,并⽤matplotlib进⾏直⽅图展⽰# coding: utf-8import codecsimport matplotlib.pyplot as pltimport jieba# import sys# reload(sys)# sys.setdefaultencoding('utf-8')from pylab import mplmpl.rcParams['font.sans-serif'] = ['FangSong'] # 指定默认字体mpl.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显⽰为⽅块的问题plt.rcParams['font.sans-serif'] = ['SimHei']stopword=[u'。
',u',',u',',u'(',u')',u'"',u':',u';',u'、',u',',u',',u'”',u'“',u';',u':',u'的',u'有',u'也']word = []counter = {}with codecs.open('data.txt') as fr:for line in fr:line = line.strip()#print type(line)if len(line) == 0:continueline = jieba.cut(line, cut_all = False)for w in line:#.decode('utf-8'):if ( w in stopword) or len(w)==1: continueif not w in word :word.append(w)if not w in counter:counter[w] = 0else:counter[w] += 1counter_list = sorted(counter.items(), key=lambda x: x[1], reverse=True)print(counter_list[:50])#for i,j in counter_list[:50]:print ilabel = list(map(lambda x: x[0], counter_list[:10]))value = list(map(lambda y: y[1], counter_list[:10]))plt.bar(range(len(value)), value, tick_label=label)plt.show()注意:matplotlib展⽰中⽂需要进⾏相应设置2、利⽤jieba分词,利⽤collections统计词频,利⽤wordcloud⽣成词云,并定义了词频背景,最后通过matplotlib展⽰,同样需要设置字体# coding: utf-8import sysreload(sys)sys.setdefaultencoding('utf8')# 导⼊扩展库import re # 正则表达式库import collections # 词频统计库import numpy as np # numpy数据处理库import jieba # 结巴分词import wordcloud # 词云展⽰库from PIL import Image # 图像处理库import matplotlib.pyplot as plt # 图像展⽰库# 读取⽂件fn = open('data.txt') # 打开⽂件string_data = fn.read() # 读出整个⽂件fn.close() # 关闭⽂件# ⽂本预处理pattern = pile(u'\t|\n|\.|-|:|;|\)|\(|\?|"') # 定义正则表达式匹配模式string_data = re.sub(pattern, '', string_data) # 将符合模式的字符去除# ⽂本分词seg_list_exact = jieba.cut(string_data, cut_all = False) # 精确模式分词object_list = []remove_words = [u'的', u'也', u'他', u',',u'和', u'是',u'⾃⼰',u'有', u'随着', u'对于', u'对',u'等',u'能',u'都',u'。
Python:wordcloud.wordcloud()函数的参数解析及其说明
"""Word cloud object for generating and drawing.
Parameters
----------
font_path: string
Matplotlib colormap为每个单词随机绘制颜色。
如果指定了“color_func”,则忽略。
. .versionadded: 2.0
normalize_plurals : bool, default=True
是否删除单词后面的“s”。如果是真的,并且一个单词出现时带有或不带有结尾s,那么带有结尾s的单词将被删除,并将其计数添加到没有结尾s的版本中——除非这个单词以“ss”结尾。
background_color : color value (default="black")
Background color for the word cloud image.
max_font_size : int or None (default=None)
Maximum font size for the largest word. If None, height of the image is used.
.. versionchanged: 2.0
Default is now 0.5.
color_func: callable, default=None
Callable with parameters word, font_size, position, orientation, font_path, random_state that returns a PIL color for each word.
文本挖掘(一)pythonjieba+wordcloud使用笔记+词云分析应用
⽂本挖掘(⼀)pythonjieba+wordcloud使⽤笔记+词云分析应⽤ 系列介绍:⽂本挖掘⽐较常见,系列思路:1-基本情况介绍(分词,词云展⽰);2-根据语料库的tf-idf值及创建⾃⼰的idf⽂件;3-基于snownlp语料情感分析;4-基于gensim进⾏lda主题挖掘分析; 本⽂简介:对于⼤量的短⽂本需要进⾏分析的话,会使⽤到分词及可视化展⽰,中⽂分词没有明显的边界⾃⾏处理还不太⽅便。
“结巴”中⽂分词是⼀个优秀的 Python 中⽂分词库,wordcloud是⼀个词云图库,对他进⾏学习,可以快速进⾏基础的⽂本分析。
⽬的:介绍jieba库(v0.41)的基本使⽤,并结合分词结果进⾏词云展⽰ 读者:应⽤⽤户。
参考链接: jieba官⽅介绍: [python] 使⽤scikit-learn⼯具计算⽂本TF-IDF值: Jieba分词词性标注以及词性说明:主要内容:1、jieba库基本使⽤1.1、分词1.2、添加⾃定义词典1.3、词性标注1.4、基于TF-IDF算法的关键字抽取2、jieba+wordcloud简单分析1、jieba库基本使⽤import jieba # 分词库import jieba.posseg as pseg # 词性标注import jieba.analyse as analyse # 关键字提取1.1、分词jieba库分词有三种模型,⼀般来说,使⽤默认模式即可。
content = "韩国东⼤门单鞋⼥⽅头绒⾯⼀脚蹬韩版休闲2020春季新款平底⽑⽑鞋"seg_list = jieba.cut(content, cut_all=True)print("Full Mode: " + "/ ".join(seg_list)) # 全模式seg_list = jieba.cut(content, cut_all=False)print("Default Mode: " + "/ ".join(seg_list)) # 默认模式seg_list = jieba.cut_for_search("韩国东⼤门单鞋⼥⽅头绒⾯⼀脚蹬韩版休闲2020春季新款平底⽑⽑鞋") # 搜索引擎模式print("Search Mode: " + "/ ".join(seg_list))输出:Full Mode: 韩国/ 东⼤/ 东⼤门/ ⼤门/ 单鞋/ ⼥⽅/ ⽅头/ 绒⾯/ ⼀脚/ 脚蹬/ 韩/ 版/ 休闲/ 2020/ 春季/ 新款/ 平底/ ⽑⽑/ 鞋Default Mode: 韩国/ 东⼤门/ 单鞋/ ⼥⽅/ 头/ 绒⾯/ ⼀/ 脚蹬/ 韩版/ 休闲/ 2020/ 春季/ 新款/ 平底/ ⽑⽑/ 鞋Search Mode: 韩国/ 东⼤/ ⼤门/ 东⼤门/ 单鞋/ ⼥⽅/ 头/ 绒⾯/ ⼀/ 脚蹬/ 韩版/ 休闲/ 2020/ 春季/ 新款/ 平底/ ⽑⽑/ 鞋1.2、添加⾃定义词典以"Default Mode"输出为例,⽑⽑鞋被拆分成了⽑⽑和鞋两个部分,原因是P(⽑⽑鞋) < P(⽑⽑)×P(鞋),“⽑⽑鞋”词频不够导致其成词概率较低。
词云wordcloud的使用示例(phthon)
词云wordcloud的使⽤⽰例(phthon)整体简介:词云图,也叫⽂字云,是对⽂本中出现频率较⾼的“关键词”予以视觉化的展现,词云图过滤掉⼤量的低频低质的⽂本信息,使得浏览者只要⼀眼扫过⽂本就可领略⽂本的主旨。
快速⽣成词云:#导⼊所需库from wordcloud import WordCloudf = open(r'C:\Users\JluTIger\Desktop\texten.txt','r').read()wordcloud = WordCloud(background_color="white",width=1000, height=860, margin=2).generate(f)# width,height,margin可以设置图⽚属性# generate 可以对全部⽂本进⾏⾃动分词,但是对中⽂⽀持不好# 可以设置font_path参数来设置字体集#background_color参数为设置背景颜⾊,默认颜⾊为⿊⾊import matplotlib.pyplot as pltplt.imshow(wordcloud)plt.axis("off")plt.show()wordcloud.to_file('test.png')# 保存图⽚,但是在第三模块的例⼦中图⽚⼤⼩将会按照 mask 保存运⾏时遇到的问题:报错:(unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escap原因及解决办法:⽂档我是放在桌⾯⾥的,起初读取⽂档的命令是:f = open('C:\Users\JluTIger\Desktop\texten.txt','r').read()⼀直报错:(unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape后来发现,在Python中\是转义符,\u表⽰其后是UNICODE编码,因此\User在这⾥会报错,在字符串前⾯加个r表⽰就可以了效果:⾃定义字体颜⾊:下段代码来⾃wordcloud官⽅的github。
Python之wordcloud库的使用
Python之wordcloud库的使⽤1. wordcloud库简介wordcloud是优秀的词云展⽰第三⽅库,它能够将⼀段⽂本变成⼀个词云。
词云:将词语通过图形可视化的⽅式直观和艺术的展⽰出来。
2. wordcloud库安装cmd命令⾏下:pip install wordcloud3. wordcloud库的基本使⽤wordcloud库把词云当作⼀个WordCloud对象wordcloud.WordCloud()代表⼀个⽂本对应的词云可以根据⽂本中词语出现的频率等参数绘制词云词云的绘制形状、尺⼨和颜⾊都可以设定wordcloud库常规⽅法wordcloud对具体词云的绘制有⼀个基本的思路,它的思路是⽤wordcloud中的WordCloud来表名⼀个词云。
以WorldCloud对象为基础。
w = wordcloud.WordCloud()⽅法描述w.generate(txt)向WordCloud对象w中加载⽂本txtw.to_file(filename)将词云输出为图像⽂件,.png或.jpg格式例如:>>>w.generate( "Python and WordCloud" )>>>w.to_file( "outfile.png" )词云绘制步骤:import wordcloudc = wordcloud.WordCloud() #步骤1:配置对象参数c.generate("wordcloud by Python") #步骤2:加载词云⽂本c.to_file("pywordcloud.png") #步骤3:输出词云⽂件从⽂本⽣成词云,wwordcloud库做了9件事情:①分隔:以空格分隔单词②统计: 单词出现次数并过滤。
出现次数多的单词显⽰效果就会变的很⼤,反之就⼩③字体: 根据统计配置字号④布局: 颜⾊环境尺⼨配置对象参数w = wordcloud.WordCloud(<参数>)参数描述width指定词云对象⽣成图⽚的宽度,默认400像素height指定词云对象⽣成图⽚的⾼度,默认200像素min_font_size指定词云中字体的最⼩字号,默认4号max_font_size指定词云中字体的最⼤字号,根据⾼度⾃动调节font_step指定词云中字体字号的步进间隔,默认为1font_path指定字体⽂件的路径,默认Nonemax_words指定词云显⽰的最⼤单词数量,默认200stop_words指定词云的排除词列表,即不显⽰的单词列表mask指定词云形状,默认为长⽅形,需要引⽤imread()函数background_color指定词云图⽚的背景颜⾊,默认为⿊⾊例⼦>>>w=wordcloud.WordCloud(width=600)>>>w=wordcloud.WordCloud(height=400)>>>w=wordcloud.WordCloud(min_font_size=10)>>>w=wordcloud.WordCloud(max_font_size=20)>>>w=wordcloud.WordCloud(font_step=2)>>>w=wordcloud.WordCloud(font_path="msyh.ttc")>>>w=wordcloud.WordCloud(max_words=20)>>>w=wordcloud.WordCloud(stop_words={"Python"})# 指定词云形状>>>from scipy.misc import imread>>>mk=imread("pic.png")>>>w=wordcloud.WordCloud(mask=mk)# 指定词云背景⾊>>>w=wordcloud.WordCloud(background_color="white")中⽂⽣词词云实例import jiebaimport wordcloudtxt = "程序设计语⾔是计算机能够理解和\识别⽤户操作意图的⼀种交互体系,它按照\特定规则组织计算机指令,使计算机能够⾃\动进⾏各种运算处理。
python中词云制作简要步骤
python中词云制作简要步骤1. 导入所需的库:`import matplotlib.pyplot as plt` 和 `from wordcloud import WordCloud`。
2.提供文本数据,可以是一个字符串或一个文本文件。
3. 生成词云对象:`wordcloud = WordCloud(`。
4. 调用词云对象的 `generate(` 方法,将文本数据传递给它。
例如:`wordcloud.generate(text)`。
5.可选步骤:根据需要对词云进行进一步的定制,例如设置词云的字体、颜色、形状等。
6. 可选步骤:把词云显示出来。
可以使用 `plt.imshow(wordcloud, interpolation='bilinear')` 来显示词云对象。
8. 可选步骤:保存词云图片。
例如:`wordcloud.to_file('wordcloud.png')`。
完整的代码示例:```pythonimport matplotlib.pyplot as pltfrom wordcloud import WordCloud#提供文本数据text = "这是一个示例文本"#生成词云对象wordcloud = WordCloud#生成词云图像wordcloud.generate(text)#显示词云图像plt.imshow(wordcloud, interpolation='bilinear') plt.show#保存词云图片wordcloud.to_file('wordcloud.png')。
Python基于WordCloud制作词云图
Python基于WordCloud制作词云图这篇⽂章主要介绍了python基于WordCloud制作词云图,⽂中通过⽰例代码介绍的⾮常详细,对⼤家的学习或者⼯作具有⼀定的参考学习价值,需要的朋友可以参考下1. 导⼊需要的包packageimport matplotlib.pyplot as pltfrom scipy.misc import imreadfrom wordcloud import WordCloud,STOPWORDSimport xlrd2. 设置⽣成词云图的背景图⽚,最好是分辨率⾼且⾊彩边界分明的图⽚def set_background(picpath):back_coloring = imread(picpath)# 设置背景图⽚,png等图⽚格式return back_coloring3. 创建词云图:WordClouddef create_word_cloud(txt_str, back_coloring): #txt_str表⽰导⼊的是字符串格式数据,#back_color表⽰的是背景图⽚位置print('---- 根据词频,开始⽣成词云! ----')font = r'C:\Windows\Fonts\simsun.ttc' #加载显⽰字体wc = WordCloud(font_path=font,collocations=False, # 去重,如果不加,词云图会显⽰相同的词stopwords=STOPWORDS, #加载停⽤词,如果不⾃⼰指定,则会加载默认的停⽤词max_words=100,width=2000,height=1200,# background_color='white',mask=back_coloring,)wordcloud = wc.generate(txt_str)# 写词云图⽚wordcloud.to_file(".\wordcloud_test.png")# 显⽰词云⽂件plt.imshow(wordcloud)plt.axis("off")plt.show()4. 默认的停⽤词⼀般在:假如anaconda安装在D盘,则会在其⽬录:D:\Anaconda3\Lib\site-packages\wordcloud\stopwords,其中都是英⽂词,例如:注意:也可以在jieba分词中,先利⽤⾃⼰的停⽤词,得到去除停⽤词之后的⽂本字符串来绘制词云图:5. 此时,词云图⽆法显⽰数字,这是因为 wc.generate 操作中,有去除数字的语句:在wordcloud.py中,第560⾏左右,所以想要显⽰数字,需要先注释这⼀⾏6. 假设想要显⽰的词,已经经过jieba分词,保存在txt⽂档中,则绘制词云图的⽅法是:例如:txt中是每⾏是⼀个词:则,先读取txt⽂件,形成字符串格式⽂本,再绘制if __name__ == '__main__':picpath = r". xx.png" #背景图⽚路径back_coloring = set_background(picpath)with open(r".\jieba_分词数据.txt", "r",encoding='utf-8') as f:remove_stop_str = f.read()create_word_cloud(remove_stop_str, back_coloring)7. 如果通过jieba分词的数据已经处理成了(词, 词频)并保存在excel中,例如这种两列格式的excel表,第⼀⾏是标签如(词, 词频):则可以先读取词频再显⽰,python读取excel数据可以通过 xlrd.open_workbook ⽅法:def read_from_xls(filepath,index_sheet):#读取⽂件名,filepath是excel⽂件的路径,index_sheet是第⼏个sheet#读取表格## 设置GBK编码xlrd.Book.encoding = "gbk"rb = xlrd.open_workbook(filepath)print(rb)sheet = rb.sheet_by_index(index_sheet)nrows = sheet.nrowsdata_tmp = []for i in range(nrows - 1):tt=i+1 #excel的第⼀⾏是标签tmp_char = [str(sheet.cell_value(tt,0))] #第⼀列是词tmp_num = int(sheet.cell_value(tt,1)) #第⼆列是词频data_tmp.extend(tmp_char*tmp_num)return data_tmp然后,读数据和⽣成词云图:if __name__ == '__main__':picpath = r". xx.png"back_coloring = set_background(picpath)data_dic = read_from_xls(r'D:\Python_workspace\spyder_space\jieba分词表.xlsx',0)data_dic_str = '\n'.join(data_dic) #转成字符串格式create_word_cloud(data_dic_str, back_coloring)8. 总结代码# -*- coding: utf-8 -*-"""Created on Mon Aug 19 10:47:17 2019@author: Administrator"""import matplotlib.pyplot as pltfrom scipy.misc import imreadfrom wordcloud import WordCloud,STOPWORDSimport xlrddef set_background(picpath):back_coloring = imread(picpath)# 设置背景图⽚return back_coloringdef create_word_cloud(txt_str, back_coloring):print('---- 根据词频,开始⽣成词云! ----')font = r'C:\Windows\Fonts\simsun.ttc'wc = WordCloud(font_path=font,collocations=False, # 去重stopwords=STOPWORDS,max_words=100,width=2000,height=1200,# background_color='white',mask=back_coloring,)wordcloud = wc.generate(txt_str)# 写词云图⽚wordcloud.to_file(".\wordcloud_test.png")# 显⽰词云⽂件plt.imshow(wordcloud)plt.axis("off")plt.show()def read_from_xls(filepath,index_sheet):#读取⽂件名#读取表格## 设置GBK编码xlrd.Book.encoding = "gbk"rb = xlrd.open_workbook(filepath)print(rb)sheet = rb.sheet_by_index(index_sheet)nrows = sheet.nrowsdata_tmp = []for i in range(nrows - 1):tt=i+1tmp_char = [str(sheet.cell_value(tt,0))]tmp_num = int(sheet.cell_value(tt,1))data_tmp.extend(tmp_char*tmp_num)return data_tmpif __name__ == '__main__':picpath = r". xx.png"back_coloring = set_background(picpath)data_dic = read_from_xls(r'D:\Python_workspace\spyder_space\jieba分词表.xlsx',0)data_dic_str = '\n'.join(data_dic)# with open(r".\jieba_分词数据.txt", "r",encoding='utf-8') as f:# remove_stop_str = f.read() create_word_cloud(data_dic_str, back_coloring)当然绘制词云图的⽅法有很多,这只是其中的⼀种以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。
Python词云的正确实现方法实例
Python词云的正确实现⽅法实例⼀、相关模块jieba:中⽂分词wordcloud :Python词云库imageio:读取图形数据安装:pip install jiebapip install wordcloudpip install imageio⼆、wordcloud四⼤类类功能WordCloud([font_path, width, height, …])⽣成和绘制词云对象ImageColorGenerator(image[, default_color])基于图⽚的⾊彩random_color_func([word, font_size, …])随机⽣成颜⾊get_single_color_func(color)创建⼀个颜⾊函数,它返回⼀个⾊调和饱和度三、wordcloud类1、WordCloud类class wordcloud.WordCloud(font_path=None, width=400, height=200, margin=2,ranks_only=None, prefer_horizontal=0.9, mask=None,scale=1, color_func=None, max_words=200, min_font_size=4,stopwords=None, random_state=None, background_color='black',max_font_size=None, font_step=1, mode='RGB', relative_scaling='auto',regexp=None, collocations=True, colormap=None, normalize_plurals=True,contour_width=0, contour_color='black', repeat=False, include_numbers=False,min_word_length=0, collocation_threshold=30)2、WordCloud参数详解参数详解font_path词云图的字体路径(OTF或TTF格式)width画布的宽度、默认为400,如果mask不为空时,设置为mask获取图⽚的⼤⼩height画布的⾼度,默认为200,如果mask不为空时,设置为mask获取图⽚的⼤⼩prefer_horizontal默认值0.9;当值<1时,遇到不合适的地⽅时,算法将词体⾃动旋转mask默认为None;如果不为空,指定了画布的图形,则width和height值不⽣效,使⽤提供的图形的⼤⼩contour_width如果mask不为空,并且contour_width>0,将描绘出mask获取图⽚的轮廓,值越⼤,轮廓的线越粗contour_color使⽤Mask时,描绘图⽚轮廓的颜⾊scale图⽚⽣成后放⼤缩⼩时的分辨率min_font_size词云图显⽰的最⼩字体,默认为4max_font_size词云图显⽰的最⼤字体max_words词云显⽰的最⼤词数font_step字体步长stopwords不显⽰的词,如果没有设置,则使⽤默认的内置的STOPWORdS列表;如果使⽤generate_from_frequencies参数,则忽略background_color背景颜⾊mode默认为"RGB",当mode="RGBA"并且background_color为None时,将会显⽰透明背景relative_scaling字体⼤⼩与词频的关系,默认值为autocolor_func默认为None,color_func=lambda *args, **kwargs:(255,0,0)词云的字体颜⾊将这设置为红⾊regexp使⽤正则切分,默认为r"\w[\w']+",如果使⽤generate_from_frequencies则此参数不⽣效参数详解collocations是否包含两个词的搭配,默认为True,如果使⽤generate_from_frequencies则此参数不⽣效colormap设置颜⾊的参数,默认为"viridis",如果使⽤color_func参数,则此参数不⽣效normalize_plurals是否删除尾随的词,⽐如's,如果使⽤generate_from_frequencies参数,则此参数不⽣效repeat是否重复词组直到设置的最⼤的词组数include_numbers是否包含数字,默认我Falsemin_word_length最⼩数量的词,默认为0collocation_threshold默认为30,整体搭配的评分等级3、WordCloud类⽅法详解⽅法功能fit_words()根据词频⽣成词云generate_from_frequencies()根据词频⽣成词云generate()根据⽂本⽣成词云generate_from_text()根据⽂本⽣成词云process_text()将长⽂本分词,并去除屏蔽词recolor()对输出颜⾊重新着⾊to_array()转换为numpy数组to_file()保存为图⽚⽂件to_svg()保存为SVG(可缩放⽮量图形)四、实例1、简单图案代码:import wordcloud# 词云使⽤的⽂字text = "lemon"# 使⽤wordcloud.WordCloud类,并传⼊相关的参数wc = wordcloud.WordCloud(background_color="white", repeat=True)wc.generate(text)# 保存图⽚wc.to_file('test1.png')2、⾃定义图⽚代码:import wordcloud# 导⼊imageio库中的imread函数,并⽤这个函数读取本地图⽚,作为词云形状图⽚import imageiomk = imageio.imread("333.jpg")# 词云使⽤的⽂字text = "lemon"# 使⽤wordcloud.WordCloud类,并传⼊相关的参数wc = wordcloud.WordCloud(background_color="white", repeat=True,mask=mk)wc.generate(text)# 保存图⽚wc.to_file('test1.png')3、从⽂本读取代码:import wordcloudimport jieba# 导⼊imageio库中的imread函数,并⽤这个函数读取本地图⽚,作为词云形状图⽚import imageiomk = imageio.imread("chen.jpg")# 使⽤wordcloud.WordCloud类,并传⼊相关的参数wc = wordcloud.WordCloud(background_color="white",prefer_horizontal=0.5,repeat=True,mask=mk,font_path='/System/Library/Fonts/STHeiti Light.ttc',contour_width=2,contour_color='pink',collocation_threshold=100,)# 对来⾃外部⽂件的⽂本进⾏中⽂分词,得到stringf = open('gong.txt', encoding='utf-8')txt = f.read()txtlist = jieba.lcut(txt)string = " ".join(txtlist)# 将string变量传⼊w的generate()⽅法,给词云输⼊⽂字wc.generate(string)# 保存图⽚wc.to_file('test.png')总结到此这篇关于Python词云的正确实现⽅法的⽂章就介绍到这了,更多相关Python词云实现内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!。
数据可视化实战之词云
数据可视化实战之词云如何制作词云Python 提供了词云⼯具 WordCloud,使⽤ pip install wordcloud 安装后,就可以创建⼀个词云,构造⽅法如下:wc = WordCloud(background_color='white',# 设置背景颜⾊mask=backgroud_Image,# 设置背景图⽚font_path='./SimHei.ttf', # 设置字体,针对中⽂的情况需要设置中⽂字体,否则显⽰乱码max_words=100, # 设置最⼤的字数stopwords=STOPWORDS,# 设置停⽤词max_font_size=150,# 设置字体最⼤值width=2000,# 设置画布的宽度height=1200,# 设置画布的⾼度random_state=30# 设置多少种随机状态,即多少种颜⾊)创建好 WordCloud 类之后,就可以使⽤ wordcloud=generate(text) ⽅法⽣成词云,传⼊的参数 text 代表你要分析的⽂本,最后使⽤ wordcloud.tofile(“a.jpg”) 函数,将得到的词云图像直接保存为图⽚格式⽂件。
你也可以使⽤ Python 的可视化⼯具 Matplotlib 进⾏显⽰,⽅法如下:import matplotlib.pyplot as pltplt.imshow(wordcloud)plt.axis("off") # 关闭坐标轴plt.show()⼀个⼩例⼦:#-*- coding:utf-8 -*-from wordcloud import WordCloudimport matplotlib.pyplot as pltimport jiebafrom PIL import Imageimport numpy as np# ⽣成词云def create_word_cloud(f):print('根据词频计算词云')text = " ".join(jieba.cut(f,cut_all=False, HMM=True)) # 是否为全模式分词是否开启HMM进⾏中⽂分词wc = WordCloud(font_path="./SimHei.ttf",max_words=100,width=2000,height=1200,)wordcloud = wc.generate(text)# 写词云图⽚wordcloud.to_file("wordcloud.jpg")# 显⽰词云⽂件plt.imshow(wordcloud)plt.axis("off")plt.show()f = '数据分析全景图及修炼指南\学习数据挖掘的最佳学习路径是什么?\Python 基础语法:开始你的 Python 之旅\Python 科学计算:NumPy\Python 科学计算:Pandas\学习数据分析要掌握哪些基本概念?\⽤户画像:标签化就是数据的抽象能⼒\数据采集:如何⾃动化采集数据?\数据采集:如何⽤⼋⽖鱼采集微博上的“D&G”评论?\Python 爬⾍:如何⾃动化下载王祖贤海报?\数据清洗:数据科学家 80% 时间都花费在了这⾥?\数据集成:这些⼤号⼀共 20 亿粉丝?\数据变换:⼤学成绩要求正态分布合理么?\数据可视化:掌握数据领域的万⾦油技能\⼀次学会 Python 数据可视化的 10 种技能'运⾏结果:你能从结果中看出,还是有⼀些常⽤词显⽰出来了,⽐如“什么” “要求” “这些”等,我们可以把这些词设置为停⽤词,编写 remove_stop_words 函数,从⽂本中去掉:# 去掉停⽤词def remove_stop_words(f):stop_words = ['学会', '就是', '什么']for stop_word in stop_words:f = f.replace(stop_word, '')return f然后在结算词云前调⽤ f = remove_stop_words(f) ⽅法,最后运⾏可以得到如下的结果:给⽑不易的歌词制作词云假设我们现在要给⽑不易的歌词做个词云,那么需要怎么做呢?我们先把整个项⽬的流程梳理下:1. 在准备阶段:我们主要使⽤ Python 爬⾍获取 HTML,⽤ XPath 对歌曲的 ID、名称进⾏解析,然后通过⽹易云⾳乐的 API 接⼝获取每⾸歌的歌词,最后将所有的歌词合并得到⼀个变量。
- 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梦严贤。希望文章对你有所帮助,尤
其是结合数据库做数据分析的人。还是那句话,如果刚好需要这部分知识,
你就会觉得非常有帮助,否则只是觉得好玩,这也是在线笔记的作用。如果
文章中存在不足或错误的地方ห้องสมุดไป่ตู้还请海涵~