使用前需先将文本分割成词组
#读入文件内容(以sushi.txt为例)
f2=open("sushi.txt","r",encoding="utf-8")
res=f2.read().split(" ")
#将分词结果中长度大于3(4个字及以上)的筛选出来
word_list=[word.strip() for word in res if len(word.strip())>3]
#查看词频
from collection import Counter
c=Counter(word_list)
cc=sorted(c.items(),key=lambda x:x[1],reverse=True)
for k in cc:
print(k)
#生成词云
import stylecloud
#设置字体
#font=r'C:\Windows\Fonts\simkai.ttf' #需要在你电脑上确认字体文件的存在
font=r'./fonts/AlibabaPuHuiTi-2-65-Medium.ttf'
#使用阿里巴巴普惠字体2.0,下载地址为https://www.alibabafonts.com/#/font
stylecloud.gen_stylecloud(text=' '.join(word_list), #输入字体
file_path="sushi.txt", #输入文本的路径
gradient=None, #渐变方向(梯度方向),默认是horizontal
font_path=font, #词云字体
size=(600,800), #(词云长度,词云宽带),调大可以提高图片的清晰度
icon_name='fas fa-heart', #词云形状选项,默认为fas fa-flag
palette='colorbrewer.diverging.BrBG_7', #词云调色盘选项,默认为cartocolors.qualitative.Bold_6
color=None #文本颜色
background='white' #背景颜色
max_font_size=200 #词云中的最大字号
max_word=2000 #词云可包含的最大单词数
stopwords=True, #布尔值,用于筛选常见禁用词
custom_stopwords=["我","不"], #设置停用词列表
icon_dir='.temp',
output_name='stylecloud词云.png', #设置输出png文件名
random_state=None, #控制单词和颜色的随即状态
collocations=True, #是否包括两个单词的搭配
invert_mask=False, #是否反转图标掩码
pro_icon_path=None,
pro_css_path=None)
其中最主要、最直观、最需要调整的参数就是icon_name和palette
icon_name决定了最终所生成词云图的形状,更多样式直接参考官网此页面,选择需要的形状即可
示例如下:
icon_name='fas fa-flag' #旗帜
icon_name='fab fa-qq' #企鹅
icon_name='fas fa-plane' #飞机
icon_name='fas fa-smile' #笑脸
palette即为选择生成的词云图中的文本颜色调配模式
如果需要更多的调色方案,在官网查看即可
参考资料:
【直播】Python数据分析+人工智能(训练营)_哔哩哔哩_bilibili
stylecloud生成词云图中gen_stylecloud方法参数详解_stylecloud参数-CSDN博客
更多细节参考:https://github.com/minimaxir/stylecloud