前言

请先阅读“中国年轻人正带领国家走向危机”,这锅背是不背? 一文,以对“手把手教你完成一个数据科学小项目”系列有个全局性的了解。

本系列代码统一开源在GitHub:DesertsX/gulius-projects ,感兴趣的朋友可以先行 star 哈。

截至目前我们已经完成了数据爬取、数据提取与IP查询、数据异常与清洗、评论数变化情况分析、省份提取与可视化、城市提取与可视化、经纬度获取与BDP可视化、Emoji提取与分布图谱。本文将用snownlp对评论进行情感打分,并提取高频词绘制词云。

SnowNLP 情感打分

读取数据,并提前安装好这个NLP的库:pip install snownlp 。其他用法参见:snownlp - github ,本文只对每条评论数据进行情感打分。

import pandas as pd
from snownlp import SnowNLP
df = pd.read_csv('Sina_Finance_Comments_All_20180811_Cleaned.csv',encoding='utf-8')def sentiment(content):s = SnowNLP(content)return s.sentimentsdf['sentiment'] = df.content.apply(sentiment)df_sent = df[['content', 'sentiment']]
df_sent.sort_values(by=['sentiment'],ascending=False)
复制代码

注意,snownlp 是基于电商评价的语料语料,所以对其他语料进行情感打分可能效果不是很好,可自行尝试其他库pyltp/thunlp/pyhanlp/bosonnlp进行比较,“择其善者而从之”…

如果评论数据量大的话,这一步会耗些时间,可以喝杯枸杞酒压压惊。

先来看看正面的评价,评分处于0-1之间,越接近1越正面:

再来看看负面的评论

df_sent.sort_values(by=['sentiment'])
复制代码

本次就不进行更细致的挖掘了,大家可自行进行探索,相信经过这一个系列的洗礼,诸位pandas操作起来已经滚瓜切菜,不在话下了吧。

基于 TF-IDF 算法的关键词抽取

接下来看看评论里出现的关键词都有哪些,直接用jieba提取就行,allowPOS参数可设置输出对应词性的词语。

import jieba.analyse
all_content = df.content.values.tolist()
extract_tags = "  ".join(jieba.analyse.extract_tags(' '.join(all_content), topK=200, withWeight=False, allowPOS=('ns', 'n')))
print(extract_tags)
复制代码

自行感受一下……大家反应强烈,并不愿背锅。

年轻人  买房  摊手  借贷  房子  贷款  国家  韭菜  危机  文章  孩子  债务  房价  中国  标题  手机  买手机  评论  背锅  不语  拜拜  信用卡  大牌  衣服  父母  咖啡  买房子  银行  经济  篇文章  感觉  问题  智能手机  大家
全款  意思  时候  媒体  内需  社会  俄罗斯  黑锅  一代人  东西  大锅  原文  卧槽  家庭  美国  杠杆  套房  有点  财经  租房  年轻一代  校园  新闻  逻辑  脑子  负债  花钱  砖家  消费观念  白条  地方  苹果  恶心  干嘛  人家
能力  道理  智商  屌丝  毛病  信贷  水平  城市  老年人  习惯  奢侈品  数据  钱包  生娃  小编  广州  作者  祖国  节奏  英国  老一辈  中年人  关键  无力  言论  内容  车贷  压力  学区  生小孩  阴险  人生  物价  时代  历史
买点  垃圾  穷人  老师  存款  利息  问问  屁事  消费观  消费主义  世界  北京  责任  后背  大学生  代表  结果  神经病  国际金融  气死  租金  合格  降级  长大  编辑  买车  故事  眼球  企业  贡献  车子  黑线  风险  单身
高利贷  裤腰带  同龄人  兄弟  爷爷奶奶  奶茶  月薪  专家  坏事  狗屁  过日子  要点  事情  县城  白眼  独生子女  基本  爸爸  课本上  博主  沙雕  辣鸡  背锅侠  次贷  玩玩  负债率  重点  人民  报章  过度
拖后腿  帽子  医疗  政府  价格  小鸟  老人  外国  玩乐  价值观  蚂蚁  代人  回家   通篇  创业  经济学  交税  公积金  结论  领路人  时间  丈母娘  小时候  啥意思  样子  马车  咖啡馆  身体  房奴  全部  天将  思想
复制代码

词云

这一步繁琐了,大家有简洁的代码可替换掉。

import jieba
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inlineall_content = df.content.values.tolist()
print(len(all_content), '\n', all_content[-1])segment = []
for line in all_content:try:segs = jieba.lcut(line)for seg in segs:if len(seg)>1 and seg != '\r\n':segment.append(seg)except:print(line)continue
# 去停用词
words_df = pd.DataFrame({"segment": segment})words_stat = words_df.groupby(by=['segment'])['segment'].agg({"计数": np.size})
words_stat = words_stat.reset_index().sort_values(by=["计数"], ascending=False)
words_stat.head(20)
复制代码

高频词如下所示,和上面提取的关键词很多重合:

老朋友 pyecharts轻松绘制颜值不俗的词云:

from pyecharts import WordCloud
wordcloud = WordCloud(width=800, height=520)
wordcloud.add("评论词云", words_stat['segment'], words_stat['计数'], word_size_range=[20, 100])
wordcloud
复制代码

舆论情况如下:

评论内容详情

最后再提下,用pandas读取的数据,无法看到每条评论的全部内容,不太清楚有没有参数可以设置查看全部文本。

这里自行查看长度在50-100区间内的全部评论数据:

import pandas as pd
df = pd.read_csv('Sina_Finance_Comments_All_20180811_toBDP.csv',encoding='utf-8')
df_wa = df[['No','nick','content','length','area','pro','city','emojis_list','time','stamp']]
cont_50_100 = df_wa_len[(df_wa_len['length']<100) & (df_wa_len['length']>=50)]['content'].values.tolist()
for c in cont_50_100:print(c,'\n')
复制代码

完结撒花

以上算是更新完了本项目的全部内容,不算长也不算短的旅程里,耳闻目睹了不少小伙伴去DesertsX/gulius-projects - GitHub下载了代码,并跟着跑程序,古柳也很好奇大家的感受如何,欢迎留言评论进行反馈和分享哈。

此外,古柳也相信大家已经能够应用到自己感兴趣的数据集上并进行好玩的分析、挖掘和可视化了,期待大家分享自己的作品哈。

这里先剧透下古柳想玩的一些玩意,以之前热播的于正的清宫剧《延禧攻略》为例,可以用MIT的深度学习训练后的接口进行城市街景识别,看看下图“大猪蹄子”皇上的场景是什么?

诚不我欺,给出的结果还是挺可靠的:

Type of environment: outdoor
Scene categories: temple/asia (0.778)
Scene attributes: man-made, open area, natural light, sunny, touring, clouds, shingles, far-away horizon, semi-enclosed area
复制代码

再用偶然接触到的某知识图谱API看看与实体“延禧攻略”相关的内容:

由于原本数据来源就是豆瓣等平台,所以还是蛮准确的,能深挖的内容也很多,比如古柳脑洞清奇的把这个知识图谱API用来当获取豆瓣数据的“爬虫”接口了。逃……以上,这里先卖个关子,后续揭秘这两个好玩的网站哈。

相关文章

本系列及后续其他项目的代码统一开源在GitHub:DesertsX/gulius-projects ,感兴趣的朋友可以先行 star 哈。

本系列文章:
“中国年轻人正带领国家走向危机”,这锅背是不背?
手把手教你完成一个数据科学小项目(1):数据爬取
手把手教你完成一个数据科学小项目(2):数据提取、IP 查询
手把手教你完成一个数据科学小项目(3):数据异常与清洗
手把手教你完成一个数据科学小项目(4):评论数变化情况
手把手教你完成一个数据科学小项目(5):省份提取与可视化
手把手教你完成一个数据科学小项目(6):城市提取与可视化
手把手教你完成一个数据科学小项目(7):经纬度获取与BDP可视化
手把手教你完成一个数据科学小项目(8):Emoji提取与分布图谱

欢迎关注公众号:“牛衣古柳”(ID:Deserts-X)

手把手教你完成一个数据科学小项目(9):情感分析与词云相关推荐

  1. 手把手教你完成一个数据科学小项目(7):经纬度获取与BDP可视化

    前言 请先阅读"中国年轻人正带领国家走向危机",这锅背是不背? 一文,以对"手把手教你完成一个数据科学小项目"系列有个全局性的了解. 本系列代码统一开源在Git ...

  2. 手把手教你做一个物联网视频监控项目(三)流媒体方案实现

    往期文章 手把手教你做一个物联网视频监控项目(一) 介绍 手把手教你做一个物联网视频监控项目(二)MJPG-streamer方案实现 文章目录 前言 一.软硬件准备 二.流媒体方案的实现之FFmpeg ...

  3. MongoDB 实战(一)基于PyMongo的电影影评分析 | 对数据结果进行可视化展示以及分析 | 评论词云 | 分时间段分析

    文章目录 一.运行环境 二.实战介绍 三.获取数据 四.PyMongo 实战 4.1 连接MongoDB.创建集合 4.2 向 MongoDB 插入文档 4.3 查询MongoDB的数据 4.4 同样 ...

  4. 手把手教你做一个数据图表生成器(附源码)...

    我的需求:手动配置X轴.Y轴.图表标题等参数自动通过Pyecharts模块生成可视化的html数据图表,并将浏览器图表展示到UI界面上. [阅读全文] 制作出图表后的效果展示如下: 另外,生成后的图表 ...

  5. python手机版做小游戏代码大全-Python大牛手把手教你做一个小游戏,萌新福利!...

    原标题:Python大牛手把手教你做一个小游戏,萌新福利! 引言 最近python语言大火,除了在科学计算领域python有用武之地之外,在游戏.后台等方面,python也大放异彩,本篇博文将按照正规 ...

  6. 手把手教你做一个Java贪吃蛇小游戏

    大家好,我是孙不坚1208,这篇博客给大家分享一下:如何做一个贪吃蛇小游戏(Java版)的exe应用程序,希望能给需要帮助的朋友带来方便. 手把手教你做一个Java贪吃蛇小游戏的exe应用程序 一.J ...

  7. 手把手教你写一个生成对抗网络

    成对抗网络代码全解析, 详细代码解析(TensorFlow, numpy, matplotlib, scipy) 那么,什么是 GANs? 用 Ian Goodfellow 自己的话来说: " ...

  8. 还没理解微前端?手把手教你实现一个迷你版

    大厂技术  高级前端  Node进阶 点击上方 程序员成长指北,关注公众号 回复1,加入高级Node交流群 最近看了几个微前端框架的源码(single-spa[1].qiankun[2].micro- ...

  9. 手把手教你编写一个上位机

    关注+星标公众号,不错过精彩内容 转自 | 嵌入式大杂烩 嵌入式开发,基本都会用到有一些上位机工具,比如串口助手就是最常用的工具之一. 那么,今天分享有一篇由ZhengN整理的用Qt写的简单上位机教程 ...

最新文章

  1. extjs 4 tab panel得strip在IE下右偏解决办法
  2. python subprocess库 终端命令行命令
  3. 互联网人的求生战役!分享身边的 5 个故事
  4. vuepress文档服务器,使用 vuepress 快速搭建文档
  5. 苹果手机信号是哪个服务器,苹果手机信号差是网络问题还是手机问题
  6. 谷歌云请更正这张卡片的信息_如何识别和更正Google Analytics(分析)报告中的(未设置)值
  7. qbytearry有数据上限吗_金仕达大数据开发岗位面试题
  8. 深入浅出Java回调机制
  9. 操作vsam用sequential访问模式REWRITE数据
  10. 如何提升人脸识别的精度_宝比万像人脸识别:健身房人脸识别门禁系统如何助力健身房管理?...
  11. 干货 | 利用SPSS进行高级统计分析第四期
  12. linux运行perl脚本,linux运行perl脚本_将Perl脚本从Solaris移植到Linux
  13. Java Web程序设计教程(一)JSP+Servlet
  14. 第五章:软件详细设计
  15. vue项目整合aliplayer阿里云视频
  16. android圆形头像边框,利用Android中BitmapShader制作自带边框的圆形头像
  17. 2019-2020记罗振宇“时间的朋友”跨年演讲(二)
  18. 摩托车高级驾驶员辅助系统(ADAS)的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  19. 想做自媒体,做什么样的内容呢,怎么做呢--第006期博文
  20. [HTML5]简单网页本地音乐播放器

热门文章

  1. 华为云-容器化网站部署搭建调整版(亲测可用)
  2. python**arg及**kw
  3. Linux使用hdparm检测硬盘信息
  4. 无参考图像的质量评价
  5. termux安装linux
  6. viewer图片查看器JQ版
  7. Latex作者较多时的处理方法
  8. Win10无法进入睡眠 SleepMode
  9. 大数据行业:寒冬并不可怕,关键要靠内功
  10. 机器学习的概率统计模型(附代码)(二)