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

来源:互联网 发布:南方全站仪取数据 编辑:程序博客网 时间:2024/05/19 14:54

先把使用到的库导进去

import matplotlib.pyplot as pltimport jiebafrom wordcloud import *import pymongoimport 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设置云图的整个属性,奇丑无比,若是想要哦美化,还可以导入一张背景,使得云图展现特定的形状。注意使用总问字体库,否则会出现乱码。

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

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

由图可见,男生群体主要以大学生为主,其中多有设计暴力事件,整体情况都是比较负面的影响。如果想要吸引男生们的眼球,可以适量增加关于社会安全,网络安全,或者学校小笑话,校园里的故事之类的话题。

原创粉丝点击