通过python对qq群友聊天进行词云制作
词云是对文本内容进行可视化呈现的一种方式,它会对文本中出现频率较高的词进行视觉上的突出, 词语出现的频率越高,字体就会越大,颜色也会越醒目。通过查看词云图,我们能快速获取文本中的主要内容。(摘抄自 https://cloud.tencent.com/developer/article/2160340)
- 首先需要gp的历史发言,使用导出聊天记录可以得到。
安装所需的pip包
pip install wordcloud # 主包,会自动安装多个绘图所需的包 pip install jieba # 汉字分词
下载中文字体包
GitHub上已经有人提供了,https://raw.githubusercontent.com/StellarCN/scp_zh/master/fonts/SimHei.ttf,可以直接下载
可以使用wget等下载,如wget https://raw.githubusercontent.com/StellarCN/scp_zh/master/fonts/SimHei.ttf
主程序
要注意文件的路径,有很多不需要的内容,所以使用了屏蔽词功能。import matplotlib.pyplot as plt import jieba from wordcloud import WordCloud, STOPWORDS path = r'./gp.txt' # 读取文本文件 with open(path, 'r', encoding='utf-8') as f: text = f.read() # 使用jieba进行分词 wordlist = jieba.cut(text, cut_all=False) wl = " ".join(wordlist) # 增加屏蔽词 STOPWORDS.update(['吧', '是', '我', '了', '有', '都', '不', '就', '还', '没', '的', '你', '在', '也', '这']) # 创建WordCloud对象,使用SimHei.ttf中文字体 wc = WordCloud(font_path='./SimHei.ttf', background_color='white', stopwords=STOPWORDS, max_font_size=200, max_words=500, width=1920, height=1080) # 生成词云 myword = wc.generate(wl) # 显示词云 plt.imshow(myword) plt.axis("off") # plt.show() wc.to_file(r'./wordcloud.png')
评论 (0)