美文网首页
python 词云

python 词云

作者: 朱佩奇被占用 | 来源:发表于2020-06-24 12:37 被阅读0次

最近由于大屏项目需要生成一个词云所以这边做个记录
demo.py下:

from os import path
import chnSegment
import plotWordcloud

if __name__ == '__main__':
    # 读取文件
    d = path.dirname(__file__)
    #  text = open(path.join(d, 'doc//十九大报告全文.txt')).read()
    text = open(path.join(d, 'doc//临汾2019.txt'), encoding='utf-8').read()
    #  text="付求爱很帅并来到付求爱了网易研行大厦很帅 很帅 很帅"

    # 若是中文文本,则先进行分词操作
    text = chnSegment.word_segment(text)
    print(text)

    # 生成词云
    plotWordcloud.generate_wordcloud(text)

chnSegment.py下 这边主要对文章进行了一个分词:

from collections import Counter
from os import path
import jieba

jieba.load_userdict(path.join(path.dirname(__file__), 'userdict//userdict.txt'))  # 导入用户自定义词典


def word_segment(text):
    '''
    通过jieba进行分词并通过空格分隔,返回分词后的结果
    '''

    # 计算每个词出现的频率,并存入txt文件
    jieba_word = jieba.cut(text, cut_all=False)  # cut_all是分词模式,True是全模式,False是精准模式,默认False
    data = []
    for word in jieba_word:
        # print(word)
        data.append(word)
    dataDict = Counter(data)
    with open('doc//词频统计.txt', 'w') as fw:
        for k, v in dataDict.items():
            fw.write("%s,%d\n" % (k, v))
        #  fw.write("%s"%dataDict)

    # 返回分词后的结果
    jieba_word = jieba.cut(text, cut_all=False)  # cut_all是分词模式,True是全模式,False是精准模式,默认False
    seg_list = ' '.join(jieba_word)
    # print(seg_list)
    return seg_list

plotWordcloud.py文件下 进行生成词云

from os import path
from PIL import Image
import numpy as np
import matplotlib.pyplot as plt
from matplotlib import colors
from wordcloud import WordCloud, STOPWORDS
import wordcloud


def generate_wordcloud(text):
    '''
    输入文本生成词云,如果是中文文本需要先进行分词处理
    '''
    # 设置显示方式
    d = path.dirname(__file__)
    color_list = ['#FF0000', '#FF6347', '#0000FF', '#00FF7F', '#FFD700']  # 建立颜色数组
    colormap = colors.ListedColormap(color_list)  # 调用
    alice_mask = np.array(Image.open(path.join(d, "Images//timg.jpg")))
    image_colors = wordcloud.ImageColorGenerator(alice_mask)
    font_path = path.join(d, "font//FZSTK.TTF")
    stopwords = set(STOPWORDS)
    wc = WordCloud(
        background_color=None,  # 设置背景颜色
        mode="RGBA",
        max_words=2000,  # 词云显示的最大词数
        mask=alice_mask,  # 设置背景图片
        stopwords=stopwords,  # 设置停用词
        font_path=font_path,  # 兼容中文字体,不然中文会显示乱码
        # colormap=colormap,  # 设置颜色
        color_func=image_colors,
        # scale=32,
        # margin=1,
    )

    # 生成词云 
    wc.generate(text)

    # 生成的词云图像保存到本地
    wc.to_file(path.join(d, "Images//alice.png"))

    # 显示图像
    plt.imshow(wc, interpolation='bilinear')
    # interpolation='bilinear' 表示插值方法为双线性插值
    plt.axis("off")  # 关掉图像的坐标
    plt.show()

具体内容请参考https://github.com/fuqiuai/wordCloud

相关文章

  • Python词云

    很少记录自己的学习历程,无奈太健忘,而且刚入手Python,还是写下来供以后参考和思考。 本篇主要利用python...

  • python 词云

    最近由于大屏项目需要生成一个词云所以这边做个记录demo.py下: chnSegment.py下 这边主要对文章进...

  • 《长恨歌》词云

    词云展示 Python代码 TEXT原文

  • 用Python生成词云

    以下为简单的Python生成词云代码。基于Python3.7,macOS 10.14.2

  • python 基于 wordcloud + jieba + ma

    词云## 词云是啥?词云突出一个数据可视化,酷炫。以前以为很复杂,不想python已经有成熟的工具来做词云。而我们...

  • 如何用Python做词云?(基础篇视频教程)

    只需要花10几分钟,跟着教程完整做一遍,你就能自己用Python做出词云了。 《如何用Python做词云?》图文版...

  • 词云可视化:四行Python代码轻松上手到精通

    词云可视化:四行Python代码轻松上手到精通 词云可视化:四行Python代码轻松上手到精通 本课概要 关于本课...

  • Python 绘制词云

    1. 准备 安装好python,安装时包含pip 包管理工具 pip install jieba pip inst...

  • python-词云

    1、写词云的思路:数据采集-分词-生成词云 2、用到的模块:wordcloud。如果没有这个模块,cmd进入pyt...

  • python 词云生成

    背景 最近在研究一些深度学习序列模型,比如RNN和LSTM,这种主要来处理时序数据的神经网络。传统的语言模型主要是...

网友评论

      本文标题:python 词云

      本文链接:https://www.haomeiwen.com/subject/uerrfktx.html