机器学习基础(9)-Python3 词云

image.png

大数据时代,经常能够看到这么炫酷的图片,那么这样的图片是怎么做出来的呢,下面我们详细介绍。

一、 安装wordcloud

1.下载python版本相对的wordcloud版本:

image.png

2.切换到下载地址进行安装:

pip install wordcloud-1.4.1-cp36-cp36m-win_amd64.whl
二、 使用词云进行编码

安装好wordcloud模块后,就可以进行代码编写了。

#!/usr/bin/env python
# coding:utf8

from wordcloud import WordCloud
# PIL(Python Image Library)是python平台图像处理标准库
import PIL .Image as image
import numpy as np

# 准备好的英文文件
with open('test.txt', 'r', encoding='UTF-8') as fp:
    text = fp.read()
    # 打印文件内容
    # print(text)
    # 将文本放入WordCloud容器对象中并分析
    WordCloud = WordCloud().generate(text)
    # 生成图片,并展示
    image_result = WordCloud.to_image()
    image_result.show()

最终效果如下图所示:

image.png
三、中文词云

上面介绍的是可以生成英文的相关词云,要想支持中文,需要用到另外一个模块jieba。

  1. 安装 jieba模块,使用pip命令直接安装
pip3 install jieba
  1. 开始进行代码编写
#!/usr/bin/env python
# -*- coding: utf-8 -*-

# 下面三行打印中文使用代码
import io
import sys
sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='utf-8')


from wordcloud import WordCloud
# PIL(Python Image Library)是python平台图像处理标准库
import PIL .Image as image
import numpy as np
import jieba

# 定义函数对中文进行处理
def process_chinese(text):
    # 进行分词
    words_list = jieba.cut(text)
    # 分词后再在每个词之间加上空格
    result = " ".join(words_list)
    return result


# 准备好的中文文件,txt的编码格式要转换为utf-8
with open('hlm1.txt',"r",encoding="utf8") as fp:
    text = fp.read()
    text = process_chinese(text)
    # 打印文件内容
    # print(text)

    font = 'C:/Windows/Fonts/simkai/msyh.ttc'

    # 将文本放入WordCloud容器对象中并分析
    WordCloud = WordCloud(
        font_path=font, # 不指定字体,中文为方块
        background_color='white',#背景色
    ).generate(text)
    # 生成图片,并展示
    image_result = WordCloud.to_image()
    image_result.show()

最终显示的结果如下:

image.png
  1. 优化制定背景显示好看的词云,代码如下:
#!/usr/bin/env python
# -*- coding: utf-8 -*-

# 下面三行打印中文使用代码
import io
import sys
sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='utf-8')


from wordcloud import WordCloud
# PIL(Python Image Library)是python平台图像处理标准库
import PIL .Image as image
import numpy as np
import jieba

# 定义函数对中文进行处理
def process_chinese(text):
    # 进行分词
    words_list = jieba.cut(text)
    # 分词后再在每个词之间加上空格
    result = " ".join(words_list)
    return result
path_img = 'timg.jpg'
background_image = np.array(image.open(path_img))

# 准备好的英文文件
with open('hlm1.txt',"r",encoding="utf8") as fp:
    text = fp.read()
    text = process_chinese(text)
    # 打印文件内容
    # print(text)

    font = 'C:/Windows/Fonts/simkai/msyh.ttc'

    # 将文本放入WordCloud容器对象中并分析
    WordCloud = WordCloud(
        font_path=font, # 不指定字体,中文为方块
        background_color='white',#背景色
        mask = background_image
    ).generate(text)
    # 生成图片,并展示
    image_result = WordCloud.to_image()
    image_result.show()

显示的效果如下图所示:

image.png

你可能感兴趣的:(机器学习基础(9)-Python3 词云)