jieba库

jieba库是python的第三方中文分词库,利用jieba可以更好的实现中文分词。
jieba.cut 方法接受三个输入参数: sentence需要分词的字符串;cut_all 参数用来控制是否采用全模式;HMM 参数用来控制是否使用 HMM 模型。
jieba.cut_for_search 方法接受两个参数:需要分词的字符串;是否使用 HMM 模型。该方法适合用于搜索引擎构建倒排索引的分词,粒度比较细。
jieba支持三种分词模式:
a. 精确模式,试图将句子最精确地切开,适合文本分析;
b. 全模式,把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义;
c. 搜索引擎模式,在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。
2.分词更加准确的两种方法
(1)添加自定义词典
载入词典:开发者可以指定自己自定义的词典,以便包含 jieba 词库里没有的词。虽然 jieba 有新词识别能力,但是自行添加新词可以保证更高的正确率
用法: jieba.load_userdict(file_name) # file_name 为文件类对象或自定义词典的路径,可以按照自己定义的词典进行分词
词典格式和 dict.txt 一样,一个词占一行;每一行分三部分:词语、词频(可省略)、词性(可省略),用空格隔开,顺序不可颠倒。file_name 若为路径或二进制方式打开的文件,则文件必须为 UTF-8 编码(保存为txt文件时保存类型更改为UTF-8 编码)。
词频省略时使用自动计算的能保证分出该词的词频

(2)调整词典:
使用 add_word(word, freq=None, tag=None) 和 del_word(word) 可在程序中动态修改词典。
jieba.add_word可以 增加字典内容,比如有效解决“路明非”被分为路明和明非,将容易分错的词语可以通过此方式添加
使用 suggest_freq(segment, tune=True) 可调节单个词语的词频,使其能(或不能)被分出来。
注意:自动计算的词频在使用 HMM 新词发现功能时可能无效。

import jieba
print('='*40)
print('添加自定义词典/调整词典')
print('-'*40)
print('/'.join(jieba.cut('如果放到post中将出错。', HMM=False)))
#如果/放到/post/中将/出错/。
# 调整词典使 中将 变为中/将
print(jieba.suggest_freq(('中', '将'), True))
#494
print('/'.join(jieba.cut('如果放到post中将出错。', HMM=False)))
#如果/放到/post/中/将/出错/。
print('/'.join(jieba.cut('「台中」正确应该不会被切开', HMM=False)))
#「/台/中/」/正确/应该/不会/被/切开
print(jieba.suggest_freq('台中', True))
#69
# 调整词典使 台中 不被分词为台/中
print('/'.join(jieba.cut('「台中」正确应该不会被切开', HMM=False)))
#「/台中/」/正确/应该/不会/被/切开

wordcloud库

1安装wordcloud库

先看看所安装的python适合哪个版本,然后去https://www.lfd.uci.edu/~gohlke/pythonlibs/#wordcloud下载对应的wordcloud版本(本机python pip命令匹配的版本是wordcloud-1.6.0-cp36-cp36m-win_amd64.whl这个文件)
win+r 输入 cmd 打开命令窗口,输入 cd 切换到你下载到的那个文件夹,然后输入pip install wordcloud-1.6.0-cp36-cp36m-win_amd64.whl,回车即可安装。
2.wordcloud使用
wordcloud把词云当作一个对象,它可以将文本中词语出现的频率作为一个参数绘制词云,而词云的大小、颜色、形状等都是可以设定的。
主要是依据单词出现的频率来绘图,因此我们应该过滤一些词即停用表(网上下载即可)

京东爬取评论

利用requests库
打开所要研究的商品页,进入调试窗口,加载数据,找到network
复制一段评论,利用ctrl+F调出搜索框 ,粘贴搜索,找到出现的数据,点击headers可以拿到京东评论数据的接口,preview可以评论数据所对应的键(comments),其中content为用户的评论内容

import requests
import os
import json
import time
import random
from wordcloud import WordCloud, ImageColorGenerator
from os import path
#from scipy.misc import imread
import matplotlib.pyplot as plt
from matplotlib.pyplot import imread
import jieba
import numpy
COMMENT_FILE_PATH='jd_comments.txt'#文件名
d = path.dirname(__file__)# 获取当前文件路径
def spider_comment(page=0):#爬取url='https://club.jd.com/comment/productPageComments.action?........page=%s&pageSize=10&isShadowSku=0&fold=1'%page#%s为page增加的占位符,设置page参数递增headers={'user-agent': 'Mozilla/5.0','referer': 'https://item.jd.com/100008643290.html'}#两个请求头try:r = requests.get(url, headers=headers, timeout=30)r.raise_for_status()#r.encoding = r.apparent_encoding#print("网页请求成功!"+r.text[:500])#return r.textexcept:print("网页请求失败")r_json_str = r.text[26:-2]#截取json数据字符串r_json_obj = json.loads(r_json_str)#字符串转json对象r_json_comments=r_json_obj['comments']#获取评价列表数据print('某京东数据:')for r_json_comment in r_json_comments:#遍历评论对象列表with open(COMMENT_FILE_PATH,'a+') as file:#以追加模式写入每行评价file.write(r_json_comment['content']+'\n')print(r_json_comment['content'])#打印评论
def batch_spider_comment():if os.path.exists(COMMENT_FILE_PATH):#写入文件前先清空数据os.remove(COMMENT_FILE_PATH)for i in range(5):#爬取100页spider_comment(i)time.sleep(random.random()*5)#模拟用户浏览,设置爬虫间隔,防止ip被封return COMMENT_FILE_PATH
# 添加自己的词库分词
#def add_word(list):#for items in list:#jieba.add_word(items)
def jiebaclearText(text):# my_words_list = ['供给侧']  # 在结巴的词库中添加新词# add_word(my_words_list)mywordlist = []stopwords_path = 'stopwords1893.txt'  # 停用词词表seg_list = jieba.cut(text, cut_all=False)liststr="/ ".join(seg_list)f_stop = open(stopwords_path)try:f_stop_text = f_stop.read( )f_stop_text=str(f_stop_text)finally:f_stop.close( )f_stop_seg_list=f_stop_text.split('\n')for myword in liststr.split('/'):if not(myword.strip() in f_stop_seg_list) and len(myword.strip())>1:mywordlist.append(myword)return ''.join(mywordlist)
def set_background(back_coloring_path):#设置生成词云图的背景图片back_coloring = imread(path.join(d, back_coloring_path))  # 设置背景图片return back_coloring
def create_word_cloud(text_jieba,back_coloring):font_path = 'D:\Documents\simkai.ttf'  # 为matplotlib设置中文字体路径没# 设置词云属性wc = WordCloud(font_path=font_path,  # 设置字体collocations=False,#去重background_color="white",  # 背景颜色max_words=2000,  # 词云显示的最大词数mask=back_coloring,  # 设置背景图片max_font_size=100,  # 字体最大值random_state=42,width=1000, height=860, margin=2,  # 设置图片默认的大小,但是如果使用背景图片的话,那么保存的图片大小将会按照其大小保存,margin为词语边缘距离)wc.generate(text_jieba)
# 生成词云, 可以用generate输入全部文本(wordcloud对中文分词支持不好,建议启用中文分词),也可以我们计算好词频后使用generate_from_frequencies函数plt.figure()# 以下代码显示图片plt.imshow(wc)plt.axis("off")plt.show()# 绘制词云wc.to_file(path.join(d, imgname1))  # 保存图片,保存到该文件夹下,且为图片命名
if __name__ == '__main__':stopwords = {}#isCN = 1  # 默认启用中文分词text_path =batch_spider_comment()   # 设置要分析的文本路径back_coloring_path = "heart2.jpg"  # 设置背景图片路径text = open(path.join(d, text_path)).read()text_jieba = jiebaclearText(text)imgname1 = "jdDefautColors.png"  # 保存的图片名字1(只按照背景图片形状)back_coloring =set_background(back_coloring_path)create_word_cloud(text_jieba,back_coloring)

感谢:
https://blog.csdn.net/u014044812/article/details/95198791
https://blog.csdn.net/FontThrone/article/details/72782971

爬取京东评论并制作词云图相关推荐

  1. 爬取B站弹幕制作词云图

    大家好,我是天空之城,今天给大家带来,爬取B站弹幕制作词云图. 以下内容部分来自公众号数据分析与统计学之美,号主是大牛,有需要的加他. 首先打开一个b站视频https://www.bilibili.c ...

  2. Python 爬虫实例+爬取豆瓣小组 + wordcloud 制作词云图

    目标 利用PYTHON爬取如下图中所有回答的内容,并且制作词云图. 用到的库 import requests # import jsonfrom PIL import Image from pyque ...

  3. python爬取豆瓣小组_Python 爬虫实例+爬取豆瓣小组 + wordcloud 制作词云图

    目标 利用PYTHON爬取如下图中所有回答的内容,并且制作词云图. 用到的库 import requests # import json from PIL import Image from pyqu ...

  4. 爬取指定网页并制作词云图

    利用python中的库和函数设计一个爬取读书网中"软件与程序设计"栏的程序,并对其书名制作词云图,下载其书封面存储到本地文件中. 构建多个函数分别进行网页的请求,html的获取,所 ...

  5. python爬虫用什么电脑好_【Python】【爬虫】最近想买电脑,用Python爬取京东评论做个参考...

    最近想换电脑,又有点不确定买哪一款.所以决定爬取京东上电脑评论,做个参考,并把最终结果绘制成词云图. 一.先来看下三款电脑评价的词云图 1 用Python爬取京东自营ThinkPad T490s的评论 ...

  6. 【Python爬虫】最近想买电脑,用Python爬取京东评论做个参考

      最近想换电脑,又有点不确定买哪一款.所以决定爬取京东上电脑评论,做个参考,并把最终结果绘制成词云图.    一.先来看下三款电脑评价的词云图    1 用Python爬取京东自营ThinkPad ...

  7. 爬取京东评论、分词+词频统计、词云图展示

    一.爬取京东评论 京东评论竟然全部对外开放 public class CommentCrawler {final static PoolingHttpClientConnectionManager h ...

  8. Python爬取京东评论(汇编)

    目录 一.爬取京东数据详细链接 (一)爬取京东评论 1.文章一 2.文章二 (二)爬取京东商品信息 1.文章一 二.爬虫过程中遇到的一些问题及解决资料 (一)解决爬虫中Response[200]返回值 ...

  9. python用selenium爬取b站评论并制作词云图

    文章目录 前言 一.爬取b站评论 1.selenium配置 2.代码 二.制作词云图 1.下载停用词 2.代码 3.注意事项 三.制作成品 1.初期成品 2.成品 前言 b站视频下的评论是下拉加载的. ...

最新文章

  1. python字典遍历的几种方法(for in 用法)
  2. 几个SQL命令的使用
  3. HTML常见小问题2
  4. android的log.d不显示结果
  5. 2021算法竞赛入门班第七节课【图论】练习题
  6. 几何基础之判断线段相交问题
  7. 自定义快捷命令程序(VC++加批处理)
  8. spring boot2.x设置session有效时间_Spring 源码解析 Scopes 之 Request 、Session 、Application...
  9. 数论分块练习([CF830 C]Bamboo Partition + [hdu 6395]Sequence )
  10. python量化数据处理小细节2
  11. 化工原理物性参数_化工原理
  12. php 5.4 +iis+mysql_IIS+FastCGI+PHP5.4.4搭建PHP环境
  13. 常见数据类型的手机二维码生成与识别格式参考
  14. Python根据歌曲id爬取网易云音乐歌词
  15. 【PS】4组318张超高清叠加层+PS动作图片素材
  16. Unity关于Layer的管理
  17. c语言编程线性规划,使用C语言实现单纯形法求解线性规划问题.doc
  18. 直播电商平台开发,点击让窗口抖动动画效果
  19. TCP传输的终极秘密
  20. 知云文献翻译跨页内容选中翻译操作

热门文章

  1. balabalabala
  2. odoo中接口开发之jsonrpc
  3. Ajax 数据异步交互
  4. vagrants流浪者全人物防具
  5. mac plt显示中文解决方法
  6. Ubuntu 14.04 安装 QQ2013
  7. 炎黄地理杂志炎黄地理杂志社炎黄地理编辑部2023年第4期目录
  8. 2020-08-29 Python的lambda函数用法
  9. 最简单日柱推算法_如何学习吉他?史前从未有过的最简单的讲故事学习法
  10. win7截图快捷键失效