最近做大数据作业,需要分析数据,临时安装wordcloud来处理,遇到了一些问题,及解决,这里汇总一下
打开命令窗口shift+右键
-->pip install wordcloud
出错,需要下载word_cloud包,解压后,在解压文件下打开命令窗口
输入-->python setup.py install
这时会出现
error: Microsoft Visual C++ 14.0 is required. Get it with “Microsoft Visual C++ Build Tools”:
。。。。的错误,他有给出一个网站可以下载Visual C++ 2015 Build Tools,首先我打开网站是404错误,当然也可以通过其他途径进行下载,但正因为这个错误,我在网上找到一个更好的方法下载对应的.whl文件,先检查自己的Python版本,我安装的是wordcloud-1.5.0-cp37-cp37m-win_amd64.whl,我的是python37 ,64位的,这里只和Python版本有关,和你的操作系统无关哦。
接下回到桌面,打开命令窗口,-->pip install wheel
很荣幸,又出错了No module named pip
这时候博客大神们出来了
-->python -m ensure pip
-->sudo easy_install pip
解决完了,继续安装,安装完wheel后,安装.whl文件,命令窗口找到你的.whl文件
-->pip install wordcloud-1.5.0-cp37-cp37m-win_amd64.whl,
安装完成
就开始了欣喜的测试,此时我依旧在桌面的命令窗口中进行的,我的参考
-->python
-》》》from wordcloud import WordCloud
测试代码,
from wordcloud import WordCloud
f = open(u'D:\\PythonStudio\\WORK\\Demo1\\test.txt','r').read()
wordcloud = WordCloud(background_color="black",width=1000, height=860, margin=2).generate(f)
这里后续还有代码,参考上面的链接,因为我这里出错,就没粘出来
报错:no module named ‘matplotlib’
解决:依旧桌面打开命令行
大神的方法需要看图的,进去看一下吧
-->python -m pip install -U pip setuptools
成功后
-->python -m pip install matplotlib
然后进入Python脚本,输入import matplotlib确定不出错,就可以开始你的工程了。(PS:大神的方法链接中有,自己是试一下反正我没问题,)下面就开始我的中英文词云生成了:
#coding=utf8 # Python3.0+以后,可写可不写。
from wordcloud import WordCloud, ImageColorGenerator # 引入词云WordCloud
import jieba # 引入分词的词典
import matplotlib.pyplot as plt # 制图包, as作用是重命名长度大的程序,方便引用写码
text = open('test2.txt','r',encoding='utf-8').read()
ls = []
words = jieba.lcut(text)
counts = {}
for word in words:
ls.append(word)
if len(word) == 1:
continue
else:
counts[word] = counts.get(word, 0) + 1
items = list(counts.items())
items.sort(key=lambda x: x[1], reverse=True)
for i in range(20):
word, count = items[i]
print("{:<10}{:>5}".format(word, count))
cut_text = ' '.join(jieba.cut(text)) # 让jieba把文本进行分词,从而词云显示“词组”而不是“句子“”。并重新命名为cut_text,以示区别。
wordcloud = WordCloud(
background_color='white', # 默认为图片背景为黑色,英文White表示输出的词云图片背景为白色。
scale=15, # 默认之为1。可以理解为生成的图片像素密度值,值越大,图片密度越高,越清楚。
font_path='c:\windows\Fonts\simhei.ttf', # 写明地址,指定文字的类型为中文黑体。
).generate(cut_text)
# 运行成功后显示图片
plt.imshow(wordcloud, interpolation='bilinear') # Bilinear:双线性插值算法,用来缩放显示图片。缩放就是把原图片的像素应用坐标系统,用坐标表示,双线性插值算法就是把一个坐标不是整数的点的坐标,用最近的四个整数点坐标指示出来;
plt.axis('off') # 不显示坐标尺度
plt.show()
参考大神代码,满心欢喜开始测试,还真是错误不断,
针对UnicodeDecodeError: 'utf-8' codec can't decode byte
问题
将
text = open('test2.txt','r',encoding='utf-8').read()改为
text = open('D:\\tts.txt','r',encoding='gbk').read(),
继续,没有jieba (词典),继续安装,jieba-0.39.zip解压后,回到桌面命令行,
-->D: (你的装的路径)
--> cd D:\(路径)\jieba-0.39
。。。。。jieba-0.39> python setup.py install