【Python爬虫案例】当我们讲冷笑话的时候到底讲了什么?

1. 开发环境

  • Windows 10 企业版
  • Pycharm 2019.01 EAP Community Edition
  • Python 3.7

2. 前言

根据上一个案例中(主页寻找《requests爬取冷笑话合集》)获得的冷笑话,我们接下来将对爬取的结果进行分析。看看冷笑话网站上提供的冷笑话里面都是由什么内容组成的。
以下是爬取的内容案例:(冷笑)

1、“大爷,我现场采访您一下,您这样晨跑锻炼坚持几年了?”
“姑娘别挡道!我尿急! ”

2、“请问你是做什么工作的?”
“哦。我的工作是杀僵尸。”
“嗯?可是这个世界上没有僵尸啊! ”
“你以为它们是怎么没有的?”

3、中午去买菜,感觉都不太新鲜了。
老板:早上刚到的,都新鲜的。
我:这菜看着就蔫蔫的啊?!
老板:从早上到现在,它以为没人要自己了,这不垂头丧气么!
我。。。

4、我问他:你今天怎么没上班儿啊?
表弟:那大舌头老板说,让我上班的时候,顺路捎十块钱的“砂纸”,结果我听成了“烧纸”
我:那也不至于开除你啊
表弟又说:老板看我买错了,让拿出去扔了,我跟他说,留着吧,万一再用上呢?

2.准备工作

要完成对冷笑话文字分析的目的,要确定分析的思路。将网络爬虫爬取到的文字保存到.txt文件中,程序自动读取文档中的文字信息,将其读出为字符串。

采用正则表达式对文字进行筛选,去除掉字符串列表中的无关字符,例如“的”,“地”,“得”等等无意义的助词等。

接下来就是工作的核心,将获取的字符分词,采用python的库jieba完成。jieba可以对中文字符串自动分解为自然语言的词语,可以用于对语言中的关键词汇提取。

为了更好的展现冷笑话里出现的高频词汇,将采用词云的方式进行展示。

所有工作用到的库如下:
codecs 由于读取的文本文档是纯中文的,采用python自带的open打开文本的时候容易出错,因此采用该方法。
re 正则表达式的库
jieba 中文分词库
wordcloud 词云库
matplotlib 绘图库

4.结果分析

根据以上过程绘制的词云如下图所示:


冷笑话词云

人物:特朗 普老板 老公 男友 姑娘 先生 女友 女朋友 哥们
量词:一下,两个,一个,一定,一次,一天,

5.源代码分享

# encoding: utf-8
"""
@version: 1.0
@author: Jarrett
@file: run_word_cloud
@time: 2020/3/20 18:17
"""
import jieba
import codecs
import re
from wordcloud import WordCloud,ImageColorGenerator
import matplotlib.pyplot as plt

filename = "./mytxtfile.txt"
f = codecs.open(filename,encoding='UTF-8')
mytxt = f.read()
f.close()

mytxt = re.sub(r"\d","",mytxt)
mytxt = re.sub(r"、","",mytxt)
mytxt = " ".join(jieba.cut(mytxt))


font_path="msyh.ttc"
wc = WordCloud(
    font_path=font_path,
    background_color='white',  # 背景色
    #mask=image,  # 背景图
    #stopwords=STOPWORDS,  # 设置停用词
    max_words=100,  # 设置最大文字数
    max_font_size=100,  # 设置最大字体
    width=800,
    height=1000,
)

# 生成词云
#image_colors = ImageColorGenerator()
wc.generate(mytxt)

# 使用matplotlib,显示词云图
plt.imshow(wc)  # 显示词云图
plt.axis('off')  # 关闭坐标轴
plt.show()
# 保存图片
wc.to_file('news.png')

6.总结

1.分析冷笑话的内容其实是比较物料的,倒是可以应用在其他的途径中,例如法律文书,小说书籍等等。
3.接下来想做一个做词云的小程序,这样可以本地化运行。
4.合作咨询事宜请私信。【微店】【樱桃智库】。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容