我们都试图在认识别人,了解他人,从而更好的完成社会化大分工。但是可能往往忽略了客观的认识自己.
我也经常在思索自己是个怎么样的人?
今天恰好有时间,就用我的评论数据来告诉自己,我是个什么样的人
研究主题:用数据刻画人物
那既然要用数据说话,那我们就锁定下数据源.
数据源:网易新闻历史跟贴数据
研究方法:
使用自然语言处理NLP,获取自己的跟贴习惯和跟贴时间分布, 从而了解自己喜好和休闲时间分布
涉及技术:
Python, 数据爬虫,,matplotlib, NLP中文分析,BDP可视化等.
1. 获取数据
据网易同意,我阅读历史总量为 15409篇文章
其中评论为292条, 说明我还是一位非标准喷子易友~
评论转化率:跟贴数/阅读总数*100% = 292/15409 =0.018 的确少的可怜.
注:原本打算使用网易阅读历史作为数据源,但是由于偷懒没找到阅读历史记录的网易接口,所以只好使用跟贴数据来在分析和研究,
1.1 网易新闻客户端跟贴接口
接口地址:
https://comment.api.163.com/api/v1/products/a2869674571f77b5a0867c3d71db5856/users/0/myComments?offset=0&limit=10&_=1523443919597&callback=jsonp2
字段说明:
offset为数据起始点
limit 为返回数据量
a2869674571f77b5a0867c3d71db5856 为用户唯一ID ,网易Mapping ID
接口返回:
返回为Json格式的数据,这里使用Python爬虫,一个For循环,循环得到全部的评论数据.并存储到文本文件中,等待分析。
接口数据如下图:
Python爬虫实现方法再次不具体展开.
2. 自然语言处理NLP
因为是评论的文本数据,所以我们直接可以通过NLP来处理从而得到我们需要的数据,
引用到的库:
jieba / jieba-fast -中文分词
Counter计数器
wordcloud -词云库
matplotlib等
安装库文件
那我们开始:分析逻辑如下:
1. python读取文本获取评论数据
2.jieba分词,去掉停词和无关字符(地址,头像,标点符号等)
3.Counter统计词频
4. matlotlib,wordcloud输出词云
5. 时间分布合并与分类合并
3 分析结论
3.1 评论时间分布
根据时间分布可以观测出,在13点和晚上11点 评论最活跃.
按照评论量分布可以推测出这个时间段的阅读量 = 评论量/评论率
3.2 频道关注度
根据频道分布可以判断出,兴趣点为: 科技 > 社会 > 财经
3.3 兴趣词云
我们可以根据词性分类,划分出不同的词类
公司关注度:谷歌 > 百度 > 腾讯 > 苹果 > 联想 > 微软 > 今日头条 > 大疆 > 滴滴
手机品牌关注度:苹果 > 华为 > 魅族 > 小米
时政关注度: 中国 > 日本 > 美国 > 国内 > 国外 > 泰国
黑科技关注度:比特币 > 人工智能 > 区块链 > 样本(机器学习) > 无人机
羞羞关注度 : 美女 > 妹子 > 杜蕾斯 > 男女
人物关注度: 马化腾 > 孙正义 > 张继科
外汇关注度: 美金 > 泰铢
小结: 我还是一位关注时政财经,爱好学习科技的不宅男青年!
时间成本:
1. 网易新闻APP接口查找 – 3分钟
2. Python爬虫数据编写和爬取数据 – 10分钟
3. Python文本分析 – 26分钟
4. BDP可视化 – 35分钟(有个坑,和Tableua词云不同的地方是词频规则,又加工了下数据)
5. 文章编写: 30 分钟.(反复修改了几次, 还会在修改)
文/安迪王