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
浙公网安备 33010602011771号