您的位置:首页 > 数据库 > Mongodb

2.python连接mongodb,利用微博数据制作云图

2017-12-15 17:40 567 查看
先把使用到的库导进去

import matplotlib.pyplot as plt
import jieba
from wordcloud import *
import pymongo
import re


连接mongob数据库并完成测试,输出collection中有多少条记录,我用的这个有178万条数据。

#连接数据库
client = pymongo.MongoClient('localhost',27017)
db = client['myDbs']
weibo = db['weibo']

#测试
# print weibo.find().count()


获取女性发表的微博内容

#获取用来制作图云的微博内容,并去除html标签

text_f=weibo.aggregate([{'$project':{'text':1,'_id':0}}])
for item in text_f:
text_str = re.sub(r'</?\w+[^>]*>', '', item[u'text']).replace(u'网页链接', '').replace(u'查看全文', '')


使用jieba分词,用WordCloud设置云图的基本属性

#制作云图主程序
wordlist_after_jieba=jieba.cut(text_str)

wl_space_split=" ".join(wordlist_after_jieba)

my_wordcloud=WordCloud(
background_color="red",
max_words=200,
font_path='/Users/huanghuaixian/不常用/Arial Unicode.ttf',
max_font_size=42,
random_state=40,
scale=1.5,

).generate(wl_space_split)

plt.imshow(my_wordcloud)
plt.axis("off")
plt.show()




这是男生的



利用python的第三方库jieba分词,之后调用WordCloud设置云图的整个属性,奇丑无比,若是想要哦美化,还可以导入一张背景,使得云图展现特定的形状。注意使用总问字体库,否则会出现乱码。

由结果可见:女生更加喜欢购物,玩具,婴儿相关的话题,可以推测发微博比较多的是母亲这一身份。如果想要发展微博粉丝数,可以增加一些有关婴儿健康保护等相关的话题以吸引妈妈们来关注。

下图是男生常谈话题关键词:

由图可见,男生群体主要以大学生为主,其中多有设计暴力事件,整体情况都是比较负面的影响。如果想要吸引男生们的眼球,可以适量增加关于社会安全,网络安全,或者学校小笑话,校园里的故事之类的话题。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: