生成词云主要使用了
itchat
、
jieba
、
wordcloud
这三个依赖库
-
itchat
itchat是一个开源的微信个人号接口,使用python调用微信从未如此简单。 -
jieba
“结巴”中文分词:做最好的 Python 中文分词组件 -
wordcloud
词云图,也叫文字云,是对文本中出现频率较高的“关键词”予以视觉化的展现,词云图过滤掉大量的低频低质的文本信息,使得浏览者只要一眼扫过文本就可领略文本的主旨。
相关的使用、API可以点击上面链接进行查看
首先我们得安装这三个库供我们的项目使用,如下命令:
pip
install
itchat
pip
install
jieba
pip
install
wordcloud
1、开始码代码获取我们的微信好友个性签名了
# 导入相关的包
import
itchat
import
jieba
from
wordcloud
import
WordCloud
import
numpy
as
np
from
PIL
import
Image
import
os
# 调用登录,会在控制台输出登录二维码,微信扫描登录即可
itchat
.
auto_login
(
enableCmdQR
=
2
)
# 通过itchat.get_friends()可以获取到我们微信好友列表和好友的信息
friends
=
itchat
.
get_friends
(
update
=
True
)
- 调用登录,会在控制台输出登录二维码,微信扫描登录即可
-
获取到每一个好友的信息有如下内容
-
这里我们只需要获取
Signature
字段的值即可,也就是好友的个性签名 - 将获取到的签名拼接成一个字符串,同时去除一些特殊代码字符
signature
=
''
for
friend
in
friends
:
sign
=
str
(
friend
[
'Signature'
]
)
if
len
(
sign
)
==
0
:
continue
# 去除一些样式签名
signature
+=
sign
.
replace
(
"
,
""
)
\
.
replace
(
"class"
,
""
)
\
.
replace
(
"
"
,
""
)
\
.
replace
(
"emoji"
,
""
)
\
.
replace
(
" "
,
""
)
\
.
replace
(
"\n"
,
""
)
2、利用
jieba
库对签名进行分词
wordList
=
jieba
.
cut
(
signature
,
cut_all
=
True
)
# 将jieba 分割的字符以空格拼成一整个字符串
text
=
" "
.
join
(
wordList
)
print
(
text
)
3、最后使用
wordcloud
将每个词语的频率绘制成词云了
# 获取当前文件的执行路径
src_dir
=
os
.
getcwd
(
)
# 生成词云形状的图片地址
imagePath
=
src_dir
+
"\\ciyun.png"
# 生成词云字体地址(防止中文乱码)
font
=
src_dir
+
"\\SimHei.ttf"
# 生成的词云图地址
resultPath
=
src_dir
+
"\\好友个性签名词云图.png"
print
(
"开始生成微信好友个性签名词云..."
)
# 开始生成图片
bg
=
np
.
array
(
Image
.
open
(
imagePath
)
)
wc
=
WordCloud
(
mask
=
bg
,
# 造型遮盖
background_color
=
"white"
,
# 背景颜色
max_font_size
=
150
,
# 字体最大值
min_font_size
=
5
,
# 字体最小值
max_words
=
5000
,
# 词云显示的最大词数
random_state
=
40
,
# 设置有多少种随机生成状态,即有多少种配色方案
font_path
=
font
,
# 设置字体
)
.
generate
(
text
)
wc
.
to_file
(
resultPath
)
print
(
"词云图片已生成"
+
resultPath
)
4、最后生成的词云图
- 通过上图可以看出我的微信好友还是满满的正能量的
赶快来看看你的微信好友个性签名词云吧!
Demo下载地址在这里