|
本帖最后由 张少涵 于 2023-12-26 19:45 编辑
词云是对文本内容进行可视化呈现的一种方式,它会对文本中出现频率较高的词进行视觉上的突出, 词语出现的频率越高,字体就会越大,颜色也会越醒目。通过查看词云图,我们能快速获取文本中的主要内容。(摘抄自 https://cloud.tencent.com/developer/article/2160340)
1. 首先需要HOH的历史发言,使用爬虫可以得到。放入附件中了,需要的人可以自行下载。
2. 安装所需的pip包
- pip install wordcloud # 主包,会自动安装多个绘图所需的包
- pip install jieba # 汉字分词
复制代码
3. 下载中文字体包
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
复制代码
4. 主程序
要注意文件的路径,HOH的废话太多了,有很多无意义的内容,所以使用了屏蔽词功能。
- import matplotlib.pyplot as plt
- import jieba
- from wordcloud import WordCloud, STOPWORDS
- path = r'./hoh.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')
复制代码
进一步屏蔽了单个字,左下角有个大大的“反思”
|
|