Python超简单分析评论提取关键词制作精美词云流程
作者:不吃西红柿:notomoto 发布时间:2021-07-27 22:00:41
标签:Python,制作词云,分析评论
一、抓取全部评论
吾的这篇文章,有 1022 次评论,一条条看,吾看不过来,于是想到 Python 词云,提取关键词,倒也是一桩趣事。
评论情况: {'android': 545 次, 'ios': 110 次, 'pc': 44 次, 'uniapp': 1 次}
一个小细节:给我评论的设备中,安卓苹果比是 5:1。
Building prefix dict from the default dictionary ... Loading model cost 0.361 seconds. Prefix dict has been built successfully.
1、找到评论接口
打开 chrome 浏览器,开发者模式
点击评论列表(图标 1)
点击接口链接(图标 2)
查看 response 返回值(评论结果的 json 格式)
2、Python 获取评论
def get_comments(articleId):
# 确定评论的页数
main_res = get_commentId(articleId,1)
pageCount = json.loads(main_res)['data']['pageCount']
comment_list,comment_list2 = [],[]
source_analy = {}
for p in range(1,pageCount+1):
res = get_commentId(articleId, p)
try:
commentIds = json.loads(res)['data']['list']
for i in commentIds:
commentId = i['info']['commentId']
userName = i['info']['userName']
nickName = i['info']['nickName'] ## 获取用户名
source_dvs = i['info']['commentFromTypeResult']['key'] # 操作设备
content = i['info']['content']
comment_list.append([commentId, userName, nickName, source_dvs, content])
comment_list2.append("%s 丨 %s"%(userName, nickName))
if source_dvs not in source_analy.keys():
source_analy[source_dvs] = 1
else:
source_analy[source_dvs] = source_analy[source_dvs] + 1
# print(source_analy)
except:
print('本页失败!')
print('评论数:' + str(len(comment_list)))
return source_analy, comment_list, comment_list2
二、文本分词、词云制作
1、文本分析
西红柿采用的是 结巴 分词, 和 wordcloud。
# -*- coding:utf8 -*-
import jieba
import wordcloud
代码实现:
seg_list = jieba.cut(comments, cut_all=False) # 精确模式
word = ' '.join(seg_list)
2、生成词云
背景图 西红柿采用的是 心形图片
pic = mpimg.imread('/Users/pray/Downloads/aixin.jpeg')
完整代码::
def word_cloud(articleId):
source_analy, comment_list, comment_list2 = get_comments(articleId)
print("评论情况:", source_analy)
comments = ''
for one in comment_list:
comment = one[4]
if 'face' not in comment:
comments = comments + comment
seg_list = jieba.cut(comments, cut_all=False) # 精确模式
word = ' '.join(seg_list)
pic = mpimg.imread('/Users/pray/Downloads/aixin.jpeg')
wc = wordcloud.WordCloud(mask=pic, font_path='/Library/Fonts/Songti.ttc', width=1000, height=500,
background_color='white').generate(word)
3、初步效果-模糊不清
西红柿发现文字模糊、图像曲线边缘不清晰的问题。
于是,指定分辨率,高清整起来。
# 保存
plt.savefig('xin300.png', dpi=300) #指定分辨率保存
4、最终效果- *
来源:https://notomato.blog.csdn.net/article/details/123545440


猜你喜欢
- 发现问题最近在处理一些数据库中数据的时候,写了下面的这一条sql语句:UPDATE f_studentSET school_id = 0WH
- 前言本文将给大家简单介绍关于区块链(BlockChain)的相关知识,并用Python做一简单实现。下面话不多说,来一起看看详细的介绍:什么
- 1.什么是守护进程守护进程是脱离于终端并且在后台运行的进程。守护进程脱离于终端是为了避免进程在执行过程中的信息在任何终端上显示并且进程也不会
- 1.在列属性中加入事件 { &
- 因为很多时候要涉及到url的编码和解码工作,所以自己制作了一个类,废话不多说 码上见!# coding:utf-8import urllib
- 如果遇到死锁了,怎么解决呢?找到原始的锁ID,然后KILL掉一直持有的那个线程就可以了, 但是众多线程,可怎么找到引起死锁的线程
- 提要:作为普通的Python开发者来讲,深入理解object、type不是必要的,但了解他们确实元编程这个词很多朋友都听过,可能用的却不多。
- 索引概述介绍索引(index)是帮助MySQL高效获取数据的数据结构(有序)。在数据之外,数据库系统还维护着满足 特定查找算法的数据结构,这
- 前言.net core来势已不可阻挡。既然挡不了,那我们就顺应它。了解它并学习它。今天我们就来看看和之前.net版本的配置文件读取方式有何异
- PHP 利用 Curl Functions 可以完成各种传送文件操作,比如模拟浏览器发送GET,POST请求等等,受限于php语言本身不支持
- keras.utils.to_categorical这个方法,源码中,它是这样写的:Converts a class vector (int
- 本文实例讲述了django框架实现一次性上传多个文件功能。分享给大家供大家参考,具体如下:在用django 写文件上传的时候,从reques
- 使用了两个卷积层加上两个全连接层实现本来打算从头手撕的,但是调试太耗时间了,改天有时间在从头写一份详细过程看代码注释,参考了下一个博主的文章
- 在我们平常的开发中可能会遇到这样的问题,就是判断某一列是否全部由数字组成,我们都知道oracle并没有给我们提供这样一个现成的函数,那么根据
- 本文实例讲述了Python3.5集合及其常见运算。分享给大家供大家参考,具体如下:1、集合的定义:集合是一个无序的、无重复的数据的数据组合。
- 这几年JQuery写多了,传统的的javascript已经很久不写了,不少东西都忘掉了,还有多少人记得javascript中实现ajax操作
- 许多人在数据科学、机器学习、web开发、脚本编写和自动化等领域中都会使用Python,它是一种十分流行的语言。Python流行的部分原因在于
- 这篇文章主要介绍了Python中使用gflags实例及原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,
- 如果你经常浏览网页一定见过很多网站在form表单中的文本域(textarea)中添加了的背景图片,一般是使用网站的logo,我记得我最早注意
- JavaScript 中的并没有提供像 VBScript 里的 DateAdd 方法用于日