引言:本人从小白自学python,为了测试基础学习效果,增加一定的促进,想通过参加全国计算机等级考试二级python来检验基础学习情况。在学习过程中,会将该过程编写的python小程序题目在此发表,希望找到共同学习的人一起讨论,可能发表的有许多不是很完善的地方,请大家指正。后期学习路线,还会继续通过参加一些社会类的考试来检验学习成果。高阶段学习的话,可能会参加一些python的比赛,或者自己接一些项目,然后会根据自己的情况将一些项目的Python程序在此分享。
码字不易,求赞,求关注,求赏
一、本项目来源:全国计算机等级考试二级教程python语言程序设计,第十章课后习题第二程序题第3-5小题。自选一篇小说,利用jieba和wordcloud分析出场人名,然后我就选择了《水浒传》 第一回进行分析。
二、先上传自己写的程序
import jieba
from wordcloud import WordCloud
t = open('《水浒传》 第一回.txt','r',encoding='gb18030') #导入讲话稿
rd = t.read()
t.close()
words = jieba.lcut(rd) #jieba分析
counts = {}
for word in words:
if len(word) == 1:
continue
else:
counts[word] = counts.get(word,0) + 1
excludes = {'谓之','如何','只见','瘟疫','众人'}
for word in excludes:
del(counts[word])
items = list(counts.items())
items.sort(key=lambda x:x[1],reverse=True) #以字典中的值来进行排序,利用了sort和lambda
nwl = []
for i in range(5):
word,count = items[i]
print('{0:<10}{1:>5}'.format(word,count))
nwl.append(word)
nw = ' '.join(nwl)
wordcloud = WordCloud(background_color='white',\
width=400,\
height=300,\
font_path='msyh.ttc',\
max_words=5,\
max_font_size=160,\
).generate(nw)
wordcloud.to_file('《水浒传》 第一回.png')
三、解读程序语句。
(一)导入两个库。jieba和wordcloud这两个库都是第三方库,需要利用pip进行事先安装,推荐一个快速安装的方式。pip install <需要安装的库名> -i https://mirrors.aliyun.com/pypi/simple
(二)读取文件。利用读取文件三步曲,打开文件(open()),读取文件(read()),关闭文件(close())。
(三)词频分析。利用jieba库开展中文分词,将文章内容拆分成词语形式。接着利用我之前博客的文章,python编写英文字符频率统计小程序,中的方法,将中文词进行频率统计。
(四)词云分析。利用wordcloud库,结合之前分词和词频统计等,将文字进行词云展示。
四、程序运行效果
运行的是筛选前20个高频词,先展示了这20个词的频率,再接着一张图片形成的这20个词的词云,通过比较,还是词云的展示效果好看。
五、程序中需要注意的事
这个程序编写中,在进行词频分析后,要在词频的基础上就要进行收集词放入一个新建列表中,然后根据这个词频列表进行词云分析,如果不建这个列表,直接利用之前的jieba分词后的字典进行词云分析,就会跟词频分析的结果不一样。
|