1 from PIL import Image
 2 import wordcloud 
 3 import numpy as np
 4 import matplotlib.pyplot as plt
 5 import jieba
 6   #文本处理
 7 def f():
 8     with open('停用词.txt','r',encoding='utf-8') as fx:
 9         a,b=fx.readlines(),[]
10         for i in a:
11             i=i.strip('\n').strip(' ')#第二个 strip 用于把停用词后面的空格去掉
12             b.append(i)
13                     
14         with open('斗罗大陆.txt','r',encoding='utf-8') as fo:
15              c=[]
16              for i in fo:
17                  i=fo.readline()
18                  fo1=i.strip('\n')
19                  fo1=jieba.lcut(fo1)
20                  for j in fo1:
21                      if len(j) !=1:
22                          if j not in b:
23                              c.append(j)
24     return c
25  
26 def g(n):
27      # n 为列表
28      a,c,d={},[],[]
29      for i in n:
30          a[i]=a.get(i,0)+1
31      b=list(a.items())
32      b.sort(key=lambda x:x[1],reverse=True)
33      for i in range(15):
34          e,f=b[i]
35          c.append(e)#向列表加入词
36          d.append(f)#向列表加入词频
37          print('{: <10}{:>10}'.format(e,f))
38      return list([c,d])
39  
40  
41 def k(n):# n 为词语列表
42      a=' '.join(n)
43      mask=np.array(Image.open('图.jpeg')) # 图片模板
44      b= wordcloud.WordCloud(font_path ='SIMYOU.TTF' ,\
45                             scale=20,\
46                               max_words=6000,\
47                               mask = mask,\
48                               height= 800,\
49                               width=800,\
50                               background_color='white',\
51                               repeat=False,\
52                               mode='RGBA')#处理图片 
53      b=b.generate(a)#填充词生成词云
54      b.to_file('词云.png')#保存图片
55 a=f()#生成词语
56 b=g(a)#词频统计,返回两列表
57 
58 k(a)

 posted on 2021-04-28 00:02  驰云  阅读(164)  评论(0)    收藏  举报