pip下载所需库
pip install re
pip install collections
pip install numpy
pip install jieba
pip install wordcloud
pip install PIL
pip install matplotlib
但是pip默认下载很慢,超级慢,慢到死那种.
所以用清华的国内镜像源(老大的带宽也超级nb).
windows平台下,在user目录下新建 pip的文件夹
新建pip.ini文件
写入
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
[install]
trusted-host = https://pypi.tuna.tsinghua.edu.cn
# trusted-host 此参数是为了避免麻烦,否则使用的时候可能会提示不受信任
编写代码
- 注意, 文件名不能是wordcloud.py
否则报错:
AttributeError: module 'wordcloud' has no attribute 'WordCloud'
- 读取文件时, 可能报错
UnicodeDecodeError: 'gbk' codec can't decode byte 0xaf in position 16: illegal multibyte sequence
解决如下
open(‘order.log’,‘r’, encoding=‘UTF-8’)或者open(‘order.log’,‘rb’)
- 注意python解释器的安装路径, 以及所需库的安装路径
#utf8
# 导入扩展库
import re # 正则表达式库
import collections # 词频统计库
import numpy as np # numpy数据处理库
import jieba # 结巴分词
from wordcloud import WordCloud, ImageColorGenerator
from PIL import Image # 图像处理库
import matplotlib.pyplot as plt # 图像展示库
# 读取文件
string_data = None
with open('article.txt','r' ,encoding='utf8') as fn:
string_data = fn.read() # 读出整个文件
# 文本预处理
pattern = re.compile(u'\t|\n|\.|-|:|;|\)|\(|\?|"') # 定义正则表达式匹配模式
string_data = re.sub(pattern, '', string_data) # 将符合模式的字符去除
# 文本分词
seg_list_exact = jieba.cut(string_data, cut_all=False) # 精确模式分词
object_list = []
remove_words = [u'的', u',', u'和', u'是', u'随着', u'对于', u'对', u'等', u'能', u'都', u'。', u' ',
u'、', u'中', u'在', u'了'] # 自定义去除词库
for word in seg_list_exact: # 循环读出每个分词
if word not in remove_words: # 如果不在去除词库中
object_list.append(word) # 分词追加到列表
# 词频统计
word_counts = collections.Counter(object_list) # 对分词做词频统计
word_counts_top10 = word_counts.most_common(10) # 获取前10最高频的词
print(word_counts_top10) # 输出检查
# 词频展示
mask = np.array(Image.open('wordcloud.jpg')) # 定义词频背景
wc = WordCloud(
font_path='C:/Windows/Fonts/simhei.ttf', # 设置字体格式
mask=mask, # 设置背景图
max_words=200, # 最多显示词数
max_font_size=100 # 字体最大值
)
wc.generate_from_frequencies(word_counts) # 从字典生成词云
image_colors = ImageColorGenerator(mask) # 从背景图建立颜色方案
wc.recolor(color_func=image_colors) # 将词云颜色设置为背景图方案
plt.imshow(wc) # 显示词云
plt.axis('off') # 关闭坐标轴
plt.show() # 显示图像
准备测试文本
使用github狗屁不通文章生成器
运行结果

本文介绍如何使用Python的jieba、wordcloud等库进行文本预处理、分词、词频统计,并生成词云。通过设置字体、背景及颜色方案,展示词云的完整过程。

1284

被折叠的 条评论
为什么被折叠?



