首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用python生成词云

python版本建议:3.0以上

1.安装python3.5

1.安装python可能需要的依赖

yum install openssl-develbzip2-develexpat-develgdbm-develreadline-develsqlite-deve

· 2.使用wget下载python tar包

wgethttps://www.python.org/ftp/python/3.5.3/Python-3.5.3.tgz

3.将解压后的python移到/usr/local下面

mv Python-3.5.3 /usr/local

4.删除旧版本的依赖

ll /usr/bin grep python

rm -rf /usr/bin/python

5.进入python目录

依次执行./configure make make install

6.将原先的软连接删除,创建新的软连接到最新的python

ln -s /usr/local/bin/python3.5 /usr/bin/python

7.查看是否安装成功

python -V

2.pip下载:

# wget "https://pypi.python.org/packages/source/p/pip/pip-1.5.4.tar.gz#md5=834b2904f92d46aaa333267fb1c922bb" --no-check-certificate

3.pip安装:

tar -xzvf pip-1.5.4.tar.gz

# cd pip-1.5.4

# python setup.py install

4.执行pip list查看是否安装成功

site-packages:所在;

根据 import sys print(sys.path)中可查看

测试微信集成的小程序

1.向微信文件传输助手发送问候

import itchat

itchat.login()

itchat.send("nihao","fileHelper")

2.统计我的微信的微信好友和男女比例

代码:

# --coding=utf-8--

import itchat

itchat.login()

friends = itchat.get_friends(update=True)[0:] #0代表自己

male=0

fm=0

others=0

total=len(friends[1:])#把自己排除

for i in friends[1:]:

sex = i["Sex"]#性别标签

if sex == 1:

male += 1

if sex == 2:

fm += 1

else:

others += 1

print("male:%s,famale:%s,total:%s" %(male,fm,total))

注意:我使用的python3.0以后的版本,print函数有了较2.0较大的变动

结果:

,貌似男生比女生多了好几倍,果然没辱没程序员的"名声",(⊙﹏⊙)

3.打印好友的个性签名:

import itchat

import re

itchat.login()

friends = itchat.get_friends(update=True)[0:]

for f in friends:

signature = f["Signature"].replace("span","").replace("class","").replace("emoji","")

rep = re.compile("lf\d.+")

signature = rep.sub("",signature)

print(signature)

解决无法安装matploatlib的问题

1中方案:

升级setuptools:

pip install --upgrade setuptools

不可行

第二种方案:

sudoyum install freetype-devel

sudoyum install libpng-devel

pip install matplotlib

yum不可用,因为我用的python版本是2.6以上的,而yum使用的是系统自带的2.6一下的,所以出

这种错,那么我们vi /usr/bin/yum 改头文件为#! /usr/bin/python2.6即可(查看/usr/bin目录下最高版本的python,使用即可)

执行pip install matplotlib时,如果遇到一下的问题:

安装之后报错:

gcc: error trying to exec 'cc1plus': execvp: No such file or directory

解决方法:

yum install gcc-c++

再执行 pip installmatplotlib

出现这种标识表示成功

4.生成词云

python -m pip install matplotlib

pip install jieba

pip install wordcloud

报错。指示:

执行:

yum install libjpeg-devel

即可

import matplotlib.pyplot as plt

from wordcloud import WordCloud,ImageColorGenerator

import os

import numpy as np

import PIL.Image as Image

import itchat

itchat.login()

friends = itchat.get_friends(update=True)[0:]

tList = []

for i in friends:

signature = i["Signature"].replace(" ", "").replace("span", "").replace("class", "").replace("emoji", "")

rep = re.compile("1f\d.+")

signature = rep.sub("", signature)

tList.append(signature)

# 拼接字符串

text = "".join(tList)

# jieba分词

import jieba

wordlist_jieba = jieba.cut(text, cut_all=True)

wl_space_split = " ".join(wordlist_jieba)

d= os.path.dirname(__file__)#这里的意思是当你执行python #/home/chentx/myfun/test_w.py时,d就是/home/chentx/myfun,不加路径就是空

my_wordcloud = WordCloud(background_color="white",max_words=3000,

mask=alice_coloring,max_font_size=40,random_state=42,font_path=None).generate(wl_space_split)

image_colors = ImageColorGenerator(alice_coloring)

plt.imshow(my_wordcloud.recolor(color_func=image_colors))

plt.imshow(my_wordcloud)

plt.axis("off")

plt.show()

itchat.send_image("wechat_cloud.png", 'filehelper')

效果图:

解决wordcloud不支持中文字体的问题

原因:

1.找到site-packages/wordcloud/

2.把你的字体放到这个文件夹下

3.修改wordcloud.py的FONT_PATH的字体为你想要的

其他问题:

1.为什么字体的颜色这么单一

答:

image_colors = ImageColorGenerator(alice_coloring)

plt.imshow(my_wordcloud.recolor(color_func=image_colors))

这段代码的意义就是使字体的颜色跟随你的mask所在的图片的底色,也就是你的alice_coloring这个图片的颜色有几种,产生的字体颜色就有几种,如果把这段代码注释,产生的颜色值跟随系统

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180117G0GFJY00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券