传智播客旗下技术交流社区北京校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 人工智能 于 2018-8-17 11:32 编辑

又到一年虐狗节,今年的七夕,你脱单了吗?如果没脱单,那么不要方,我也没有,如果脱单了,那你点进来干嘛呢!
做单身狗做久了,可能就真的习惯了一个人,习惯了一个人的孤单、悲伤,也习惯了坚强。

可是,你单身的原因又是什么呢?是因为不想将就?不想随便说爱?还是因为还没有遇见那个Ta……

缘分真的莫名其妙,我们每天与那么多的人擦身而过,也许其中的某一人就是陪伴我们走过一生那一个。

不要错过是我们获得幸福的重要法宝,喜欢Ta当然要告诉Ta,要知道你并不缺少朋友,你需要的是一个爱人。在七夕这个浪漫的日子,拿出自己积蓄已久的勇气,大声表白Ta吧!

表白的方式千千万万
送花太普通~
烛光晚餐没新意~
看电影没重点~
播妞可是为了大家的幸福准备了一个表白神器
这可是程序员小哥哥熬夜加班开发出来的
当当当

利用Python技术制作了一个小工具,实现实时监控微信聊天记录
  • 需填入对方姓名,并运行该程序,会根据聊天内容生成词云图(暂时不支持根据历史聊天记录生成词云图)
  • 运行需要安装python编程环境


111.png

究竟是如何实现的呢?看大神的操作
微信聊天生成词云使用说明:
一.登录微信,监听关注的微信好友,存储信息:
我们执行wx_word.exe这个程序,会弹出一个二维码(跟平时登录微信的二维码一样),扫描二维码之后,根据提示会让你输入关注的微信好友名称(注意:名称是微信好友的备注名)。
之后你与对方的聊天记录就被你监听并保存到本地(信息存储本地,不必担心聊天信息泄露)。

二.生成词云图:
当你想生成词云图的时候,运行word_parse.py脚本文件(运行脚本文件需要安装python3及以上版本的编译环境),运行完成之后,便会生成心形的词云图。

三.运行的环境:
  • windows电脑
  • 安装python3及以上版本的编译环境
  • 安装几个必要的python库



wxpy获取实时微信聊天记录
我们使用wxpy库监听微信好友的聊天,然后收集与好友的实时聊天记录

[Python] 纯文本查看 复制代码
# 获取好友聊天
@bot.register(my_friend)
def print_others(msg):
    # 输出监听到的消息
    if msg.text:
        f = open('data.txt', 'a')
        f.write(msg.text + '\n')      
embed()

jieba分词
我们利用jieba 库对记录进行分词操作,能将一个句子分为单个词语。我们对jieba做一个简单的了解,以下为官方文档中的一部分:

jieba.cut 方法接受三个输入参数: 需要分词的字符串;cut_all 参数用来控制是否采用全模式;HMM 参数用来控制是否使用 HMM 模型
代码示例:

[Python] 纯文本查看 复制代码
# encoding=utf-8
import jieba

seg_list = jieba.cut("我来到北京清华大学", cut_all=True)
print("Full Mode: " + "/ ".join(seg_list))  # 全模式

seg_list = jieba.cut("我来到北京清华大学", cut_all=False)
print("Default Mode: " + "/ ".join(seg_list))  # 精确模式

seg_list = jieba.cut("他来到了网易杭研大厦")  # 默认是精确模式
print(", ".join(seg_list))

seg_list = jieba.cut_for_search("小明硕士毕业于中国科学院计算所,后在日本京都大学深造")  # 搜索引擎模式
print(", ".join(seg_list))

输出:

[Python] 纯文本查看 复制代码
【全模式】: 我/ 来到/ 北京/ 清华/ 清华大学/ 华大/ 大学

【精确模式】: 我/ 来到/ 北京/ 清华大学

【新词识别】:他, 来到, 了, 网易, 杭研, 大厦    (此处,“杭研”并没有在词典中,但是也被Viterbi算法识别出来了)

【搜索引擎模式】: 小明, 硕士, 毕业, 于, 中国, 科学, 学院, 科学院, 中国科学院, 计算, 计算所, 后, 在, 日本, 京都, 大学, 日本京都大学, 深造

wordcloud库
我们使用wordcloud包生成词云图,首先了解一下其用法:

[Python] 纯文本查看 复制代码
# wordcloud.WordCloud的一些可控参数
class wordcloud.WordCloud(font_path=None, width=400, height=200, margin=2, ranks_only=None, prefer_horizontal=0.9,mask=None, scale=1, color_func=None, max_words=200, min_font_size=4, stopwords=None, random_state=None,background_color='black', max_font_size=None, font_step=1, mode='RGB', relative_scaling=0.5, regexp=None, collocations=True,colormap=None, normalize_plurals=True)

心形词云图:
为了生成心形的词云,我们首先找一张心形的图片:
222.png

代码示例:

[Python] 纯文本查看 复制代码
# 生成词云图
pic = imread('./xin.jpg')
wc = wordcloud.WordCloud(mask=pic, font_path='./simhei.ttf', width=500, height=300, background_color='white').generate(word)
# 保存词云图
wc.to_file(os.path.join(d, "wechat_cloud.png"))
# 用plt将图画出来
plt.imshow(wc)
plt.axis('off')
plt.show()
效果图:下图是小编自己的聊天信息生成的图,感觉是不是很棒啊!!!
赶紧学一招然后发给心仪的那个Ta吧!

333.png




分享至 : QQ空间
收藏

2 个回复

倒序浏览
厉害厉害,那么问题来了,女神是组织统一分配嘛
满满六 动态图 (14).gif
回复 使用道具 举报
  

厉害了. b( ̄▽ ̄)d
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马
关闭

站长推荐 上一条 /5 下一条