以下以《红楼梦》为例进行设计。

在制作词云图及统计之前,需要下载python的几个库,wordcloud、jieba以及imageio等,我的操作系统为Windows10,IDE环境为idle,下载方式就直接搜索cmd,打开命令提示符窗口,输入pip install wordcloud等库进行下载即可。像这样,就下载成功了

要对名著进行开展,必不可少的就是这些名著的电子书,安装好库就要进行对电子书的下载,这个链接可以下载《红楼梦》的txt电子书:红楼梦txt下载|红楼梦txt全集下载-红楼梦百度云下载-TXT下载站​www.txtxzz.com这是我用到的背景图

以下为我具体的操作代码,具体的注释我都加在了里面:

import jieba

import wordcloud

from imageio import imread

# 1、进行词云分析,即词云图的制作

def ciyun():

mask = imread("林黛玉.png") # 打开词云背景图

tf = open('红楼梦.txt','rt',encoding = 'utf-8') # 打开《林黛玉》txt文档

txt = ''

for line in tf.readlines():

for j in ",.“”?:《》--!":

line.replace('',j)

txt += line

jieba_cut = jieba.lcut(txt) # 利用jieba对文档进行全文分词

c = wordcloud.WordCloud(width = 1200,

font_path = 'msyh.ttc',

height = 800,

background_color='white',

mask=mask) # 进行背景、画布大小、颜色等处理

c.generate(' '.join(jieba_cut))

c.to_file('红楼梦.png')

tf.close()

ciyun()

# 2、出场统计的制作

excludes = {"什么","一个","我们","那里","你们","如今","说道","知道","起来","姑娘","这里","出来","他们","众人","自己",

"一面","只见","怎么","奶奶","两个","没有","不是","不知","这个","听见","这样","进来","咱们","告诉","就是",

"东西","袭人","回来","只是","大家","只得","老爷","丫头","这些","不敢","出去","所以","不过","的话","不好",

"姐姐","探春","鸳鸯","一时","不能","过来","心里","如此","今日","银子","几个","答应","二人","还有","只管",

"这么","说话","一回","那边","这话","外头","打发","自然","今儿","罢了","屋里","那些","听说","小丫头","不用","如何"}

# 将这些会干扰的词汇列出并且删除,以免影响最后的结果

txt = open("红楼梦.txt","r",encoding='utf-8').read() # 打开《红楼梦》txt电子书

words = jieba.lcut(txt) # 利用jieba进行全文分词

paixv = {}

for word in words:

if len(word) == 1: # 如果分割的长度是一,可能是语气词之类的,所以删除

continue

else:

paixv[word] = paixv.get(word,0) + 1

for word in excludes:

del(paixv[word]) # 如果列出的干扰词汇在分完词后的所有词汇中那么删除

items = list(paixv.items()) # 将字典转换为列表

items.sort(key=lambda x:x[1],reverse = True) # 将列表进行降序排列

for i in range(20): # 打印出前20个出场最多的人物名

word,count = items[i]

print("{0:<10}{1:>5}".format(word,count))

# 3、字频统计的制作

import os

import codecs

import jieba

import pandas as pd

from wordcloud import WordCloud

from scipy.misc import imread

import matplotlib.pyplot as plt

os.chdir("/Users/Zhaohaibo/Desktop")

class Hlm(object):

def Zipin(self, readdoc, writedoc): # readdoc:要读取的文件名,writedoc:要写入的文件名

word_lst = []

word_dict = {}

exclude_str = ",。!?、()【】<>《》=:+-*—“”…"

with open(readdoc,"r") as fileIn ,open(writedoc,'w') as fileOut:

# 添加每一个字到列表中:

for line in fileIn:

for char in line:

word_lst.append(char)

# 用字典统计每个字出现的个数:

for char in word_lst:

if char not in exclude_str:

if char.strip() not in word_dict: # strip去除各种空白

word_dict[char] = 1

else :

word_dict[char] += 1

# 排序x[1]是按字频排序,x[0]则是按字排序

lstWords = sorted(word_dict.items(), key=lambda x:x[1], reverse=True)

# 输出结果 (前100)

print ('字符\t字频')

print ('=============')

for e in lstWords[:100]:

print ('%s\t%d' % e)

fileOut.write('%s, %d\n' % e)

# 词频表(DataFrame格式)

def Cipin(self, doc): # doc:要读取的文件名

wdict = {}

f = open(doc,"r")

for line in f.readlines():

words = jieba.cut(line)

for w in words:

if(w not in wdict):

wdict[w] = 1

else:

wdict[w] += 1

# 导入停用词表

stop = pd.read_csv('stoplist.txt', encoding = 'utf-8', sep = 'zhao', header = None,engine = 'python') # sep:分割符号(需要用一个确定不会出现在停用词表中的单词)

stop.columns = ['word']

stop = [' '] + list(stop.word) # python读取时不会读取到空格。但空格依旧需要去除。所以加上空格; 读取后的stop是series的结构,需要转成列表

for i in range(len(stop)):

if(stop[i] in wdict):

wdict.pop(stop[i])

ind = list(wdict.keys())

val = list(wdict.values())

ind = pd.Series(ind)

val = pd.Series(val)

data = pd.DataFrame()

data['词'] = ind

data['词频'] = val

return data

最后的结果截图为:

词云图:

出场统计:

字频统计:有点多就只截一部分

以上便为《红楼梦》的词云分析及字频统计、出场统计。主要是为了记录一下我昨天的课程设计作业,代码有借鉴。

python统计三国_如何用python对《三国演义》、《红楼梦》等名著开展词云分析及字频统计、出场统计等工作。...相关推荐

  1. jieba库词频统计_如何用python对《三国演义》、《红楼梦》等名著开展词云分析及字频统计、出场统计等工作。...

    以下以<红楼梦>为例进行设计. 在制作词云图及统计之前,需要下载python的几个库,wordcloud.jieba以及imageio等,我的操作系统为Windows10,IDE环境为id ...

  2. python旅游推荐系统_如何用Python搭建一个简单的推荐系统?

    推荐系统的相关知识我们已在前文中提到,在这篇文章中,我们会介绍如何用Python来搭建一个简单的推荐系统. 本文使用的数据集是MovieLens数据集,该数据集由明尼苏达大学的Grouplens研究小 ...

  3. python预测房价走势_如何用 Python 预测房价走势?

    原标题:如何用 Python 预测房价走势? 买房应该是大多数都会要面临的一个选择,当前经济和政策背景下,未来房价会涨还是跌?这是很多人都关心的一个话题.今天分享的这篇文章,以波士顿的房地产市场为例, ...

  4. python怎么读_如何用Python读写文件

    前面我们已经介绍了很多Python相关的基础知识,大家是不是对Python已经有了进一步认识了呢?作为人工智能时代的热门编程语言,开始接触并学习Python的孩子越来越多,家长们都不想让自己的孩子落于 ...

  5. 用python开启相机_如何用Python打开realsenseD435相机并获取相机参数

    如何用Python打开realsenseD435相机 import pyrealsense2 as rs import numpy as np import cv2 if __name__ == &q ...

  6. python读取二进制文件_如何用python读取二进制文件?

    我发现用Python读取二进制文件特别困难.你能帮我一把吗?我需要读取这个文件,在Fortran 90中,该文件很容易被int*4 n_particles, n_groups real*4 group ...

  7. python编写函数_如何用Python编写自己喜欢的R函数

    python编写函数 数据科学和机器学习的伟大现代斗争之一是" Python vs. R". 毫无疑问,近年来两者都已经取得了巨大的发展,成为数据科学,预测分析和机器学习的顶级编程 ...

  8. python md5加密_如何用python“优雅”的调用有道翻译?

    前言 其实在以前就盯上有道翻译了的,但是由于时间问题一直没有研究(我的骚操作还在后面,记得关注),本文主要讲解如何用python调用有道翻译,讲解这个爬虫与有道翻译的js"斗争"的 ...

  9. python求平均值_如何用python求平均值

    学习了Python相关数据类型,函数的知识后,利用字符串的分割实现了输入任意多个数据,并计算其平均值的小程序.思路是接收输入的字符串,以空格为分隔符,将分割的数据存入列表(lst1)中,将lst1中的 ...

  10. python小助手_如何用python写个人专属群聊提醒小助手?

    前言 大家还记得教会父母玩微信是什么时候吗?父母学会后,我们的生活就发生了「质」的变化,父母也许会吐槽你的微信头像不好,要你换一个头像. 最近 pk哥 又被母后大人吐槽了,原因是亲戚微信群里某个亲戚生 ...

最新文章

  1. 笔记 - Ali Cloud OSS 简介 三种常见数据存储类型
  2. python3.7安装教程mac_mac中怎么安装python3
  3. page cache 与free
  4. Swift和Objective-C混编注意事项
  5. 十天学会ASP.Net——(2)
  6. Ubuntu/环境变量:修改/etc/environment 导致开机不能进入桌面
  7. 关于FlyMcu和XCOM软件下载程序的使用(关于STM32F4实现串口通信后续)
  8. Ghost XP SP2 64位 纯净珍藏版
  9. 70万行代码、历时20年,一名开发人员写出的史诗般的计算机程序
  10. 删除 文件夹出现0x80070091错误提示目录不是空的.txt
  11. 图像质量评价及率失真性能曲线绘制
  12. ppt里面如何插入页脚
  13. 开源免费的WEB应用防火墙
  14. Linux内核的下载和解压
  15. 深度Linux拨号软件,Deepin调校及相关资源、常用软件整合贴
  16. autojs零散知识点-循环找图
  17. CentOS 7课堂笔记(version x)
  18. 引入阿里云SDK,类找不到的问题
  19. 火狐浏览器代理服务器拒绝连接的解决方案
  20. win7激活及问题的解决

热门文章

  1. HTTP基本原理(简介)
  2. 【Python】Time模块 ValueError: unconverted data remains: UnicodeEncodeError:
  3. allegro修改铜皮网络
  4. 国内公有云大厂核心技术解剖
  5. Word转PDF方法怎么转?这三种Word转PDF方法你得知道
  6. 过QQ游戏大厅的SX保护
  7. 新网站如何做seo优化,这5个步骤让网站快速被收录
  8. Python OpenCV 将同心圆环填充为实心圆
  9. 解读随着教育改革的深入steam教育
  10. HTML动态超炫酷的404页面源码