《全职高手》人物词频分析和词云图片生成

本文使用的代码和操作都很简单,很适合刚学习Python的小白参考,需要注意的事项都在文章尾部说明了,可以注意一下。

1.词频分析

1)代码:

import jieba

def wordFreq(filepath,text,topn):

    words  = jieba.lcut(text.strip())

    counts = {}

    stopwords = {'他','他们','一个','这里','那里','他们','没有','已经','选手','战队','就是','但是','已经','只是','技能','攻击','还是','现在'}

    for word in words:

        if len(word) == 1:

            continue

        elif word not in stopwords: 

            if word == "散人" or word == "大神" or word == "老大" or word == "叶修" or word == "老叶" or word=='君莫笑':

                word = "叶秋"

            elif word == "沐雨橙风" or word == "枪炮师" or word == "苏沐橙":

                word = "沐橙"

            elif word == "陈果" or word == "老板娘"or word == "陈姐" or word=='老板':         

                word = "陈果"

            elif word == "孙翔" or word == "翔哥":

                word = "孙翔"

            elif word == "乔一帆" or word == "一帆" or word == "一寸灰" or word == "小妖" :

                word = "乔一帆"

            elif word=='包子' or word=='包荣兴':

                word=='包荣兴'

            elif word=='寒烟柔' or word=='小柔':

                word=='唐柔'

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

    items = list(counts.items())

    items.sort(key = lambda x:x[1], reverse = True)

    f = open(filepath[:-4]+'_词频.txt', "w")

    for i in range(topn):

        word, count = items[i]

        f.writelines("{}\t{}\n".format(word, count))

        print("{}\t{}\n".format(word, count))

    f.close()

text=open(r'C:\Users\Administrator\Desktop\全职高手.txt', encoding='gb18030', errors='ignore').read()

wordFreq(r'C:\Users\Administrator\Desktop\全职高手.txt',text,300)

print('统计结束')

 

2)结果截图:

(一个是在spyder里面的截图,一个是在桌面生成的词频文档里面的截图)

《全职高手》人物词频分析和词云图片生成_第1张图片

 

2.生成词云

1)代码:

import matplotlib.pyplot as plt

import wordcloud

from scipy.misc import imread

bg_pic = imread(r'C:\Users\Administrator\Desktop\1.jpg')  # 读入形状图片,图片可以自行在网上下载

f = open(r"C:\Users\Administrator\Desktop\全职高手_词频.txt", encoding='gb18030', errors='ignore')

text = f.read()

f.close()

wcloud=wordcloud.WordCloud(font_path = r'C:\Windows\Fonts\simhei.ttf',

                             background_color = "black",width=1000,

                             max_words = 500,

                             mask = bg_pic, # mask参数设置词云形状

                             height = 860, margin = 2).generate(text)

 

wcloud.to_file(r"C:\Users\Administrator\Desktop\q.png")   # 保存图片

 

显示词云图片

plt.imshow(wcloud)

plt.axis('off')

plt.show()

生成的词云结果截图:

《全职高手》人物词频分析和词云图片生成_第2张图片

调整一下可得

《全职高手》人物词频分析和词云图片生成_第3张图片

注意:1)上述涉及到的路径可以根据自己的电脑路径自行设置更改。 (我的路径都是放桌面上的)

           2)生成的词云形状 和自己选择下载的图片里面的内容是一致的,如果没有成功生成相应的形状(默认为矩形),可能是图片读取失败,可以在网上重新换一个图片下载,当然也可以自己画一个。

           3)代码里面的'全职高手.txt'是一个包含了小说所有的内容的文本文件,获取的途径可以是在网上直接下载,也可以是自己写个爬虫得到。

           4)两段代码开头导入的各个模块都需要自己提前下载好(Anocona以及Pycharm里面都没有自带,需要自己下载,否则会报错,有的像jieba库在Pycharm里导入可能无法成功,可以直接在cmd里面输入命令pip install jieba,系统默认的下载路径为Anacona,然后就可以在Anacona里面使用了)。

           5)'全职高手_词频.txt'文档是通过运行代码自动生成的,存放生成路径可以自行更改。

你可能感兴趣的:(Python)