предисловие
Сегодня я научу вас использовать модуль wrodcloud для создания облаков слов. Я прочитал роман и сгенерировал облако слов. Давайте сначала посмотрим на рендеринг:
Эффект изображения один:
Изображение эффекта два:
Согласно анализу визуализаций, это относительно точно.Главный герой в романе «Чэн Ли», поэтому он появляется чаще всего. В картинке есть два режима, один режим по умолчанию, а другой - добавить картинку самому в качестве фона. Далее я покажу вам, как создавать облака слов!
установка вордклауд
Для новичков установка модуля wordcloud является большим шагом.Мы обычно устанавливаем его через Pycharm или PIP, но при установке wordcloud будет выдано сообщение об ошибке, как показано ниже:
Мое решение состоит в том, чтобы напрямую перейти по следующему URL-адресу и загрузить соответствующий файл whl в соответствии с вашим компьютером и версией py.
https://www.lfd.uci.edu/~gohlke/pythonlibs/#wordcloud
После завершения загрузки поместите файл whl в путь pip, введите следующий код, помните, что имя файла whl кода должно быть подходящим для вас именем файла, я просто привожу пример:
pip install wordcloud-1.4.1-cp36-cp36m-win32.whl
После запуска он покажет, что установка прошла успешно
Простое использование wordcloud
Основной метод wordcloud см. исходный код следующим образом:
Вы должны понимать каждый параметр с первого взгляда.Кроме того, wordcloud имеет несколько других методов, таких как fit_words, generate(text), to_file(filename) и т. д., которые очень просты для понимания.
wordcloud генерирует облако слов
Код рендеринга 1:
from wordcloud import WordCloud
import matplotlib.pyplot as plt #绘制图像的模块
import jieba #jieba分词
path_txt='C://Users/Administrator/Desktop/all.txt'
f = open(path_txt,'r',encoding='UTF-8').read()
# 结巴分词,生成字符串,wordcloud无法直接生成正确的中文词云
cut_text = " ".join(jieba.cut(f))
wordcloud = WordCloud(
#设置字体,不然会出现口字乱码,文字的路径是电脑的字体一般路径,可以换成别的
font_path="C:/Windows/Fonts/simfang.ttf",
#设置了背景,宽高
background_color="white",width=1000,height=880).generate(cut_text)
plt.imshow(wordcloud, interpolation="bilinear")
plt.axis("off")
plt.show()
После запуска:
Эффект изображения 2, добавление фона изображения к облаку слов, код выглядит следующим образом:
from PIL import Image
from wordcloud import WordCloud, ImageColorGenerator
import matplotlib.pyplot as plt
import numpy as np
import jieba
def GetWordCloud():
path_txt = 'C://Users/Administrator/Desktop/all.txt'
path_img = "C://Users/Administrator/Desktop/timg.jpg"
f = open(path_txt, 'r', encoding='UTF-8').read()
background_image = np.array(Image.open(path_img))
# 结巴分词,生成字符串,如果不通过分词,无法直接生成正确的中文词云,感兴趣的朋友可以去查一下,有多种分词模式
#Python join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串。
cut_text = " ".join(jieba.cut(f))
wordcloud = WordCloud(
# 设置字体,不然会出现口字乱码,文字的路径是电脑的字体一般路径,可以换成别的
font_path="C:/Windows/Fonts/simfang.ttf",
background_color="white",
# mask参数=图片背景,必须要写上,另外有mask参数再设定宽高是无效的
mask=background_image).generate(cut_text)
# 生成颜色值
image_colors = ImageColorGenerator(background_image)
# 下面代码表示显示图片
plt.imshow(wordcloud.recolor(color_func=image_colors), interpolation="bilinear")
plt.axis("off")
plt.show()
if __name__ == '__main__':
GetWordCloud()
После запуска:
Я надеюсь быть полезным!
Вы можете следить за моей публичной учетной записью WeChat: «Цинь Цзышуай» — это публичная учетная запись с качеством и отношением!