wordcloud的生成

最近整理学习Python时写过的一些代码,为了方便以后查看,将其作为笔记记录下来。。。

模块安装

安装Wordcloud包。

pip install wordcloud

安装Jieba分词工具。

pip install jieba

生成词云

# -*- coding: utf-8 -*-
import matplotlib.pyplot as plt
import pickle
from wordcloud import WordCloud, STOPWORDS, ImageColorGenerator
import jieba
import codecs
import os

fin = codecs.open('诛仙.txt', 'r', encoding='utf-8')
print(len(fin.readlines()))

def wordCloud(stopwords):
    """
    第一次运行时将分好的词存入text文件中,然后加载并创建词云
    :param stopwords:
    :return:
    """
    text = ''
    with codecs.open('诛仙.txt', "r", encoding='utf-8') as fin:
        for i, line in enumerate(fin.readlines()):
            line = line.strip()
            text += segTool(line, stopwords)
            text += ' '
        # print(text)
        fout = open('text', 'wb')
        pickle.dump(text, fout)
        fout.close()
    # 直接从文件加载数据
    fr = open('text', 'rb')
    text = pickle.load(fr)
    fr.close()
    backgroud_Image = plt.imread('11.jpg')
    wc = WordCloud(background_color='white',    # 设置背景颜色
                mask=backgroud_Image,           # 设置背景图片
                max_words=100,                  # 设置最大现实的字数
                stopwords=STOPWORDS,            # 设置停用词
                font_path='qihei55.ttf',        # 设置字体格式,如不设置,显示不了中文
                max_font_size=100,              # 设置字体最大值
                random_state=30,                # 设置有多少种随机生成状态,即有多少种配色方案
                )
    wc.generate(text)
    # 改变字体颜色
    image_colors = ImageColorGenerator(backgroud_Image)
    # 字体颜色为背景图片的颜色
    wc.recolor(color_func=image_colors)
    # 绘制图片
    plt.imshow(wc)
    # 消除坐标抽
    plt.axis('off')
    # 显示图片
    plt.show()
    # 获得模块所在的路径的
    d = os.path.dirname(__file__)
    # d = os.getcwd()
    # 将多个路径组合后返回
    wc.to_file(os.path.join(d, "cy1.jpg"))

def segTool(line, stopwords):
    """ 结巴分词,并去掉停用词 """
    seg_list = jieba.cut(line, cut_all=False)
    segResult = ""
    for word in seg_list:
        if word not in stopwords and len(word) > 1:
            segResult += word
            segResult += " "
    return segResult.strip()

def stopwordslist(filepath):
    """ 创建停用词list """
    stopwords = [line.strip() for line in open(filepath, 'r', encoding='utf-8').readlines()]
    return stopwords

if __name__ == "__main__":
    stopwords = stopwordslist('stopwords.txt')
    wordCloud(stopwords)

效果图

 

 

 

 

### 回答1: WordCloud是一种文本数据可视化工具,可以用来生成文字。文字是一种用不同的字体、颜色和大小表示频的图像。WordCloud通过统计文本中的出现频率,将出现频率较高的用较大的字体、颜色鲜艳的字体显示,而出现频率较低的用较小的字体、颜色淡的字体显示,从而形成一个“”的形象。WordCloud可以帮助我们快速摘要文本信息,了解文本中的关键和主题。 ### 回答2: WordCloud生成文字是一种文本可视化的方法,通过统计文本中不同语的出现频率,并根据频率的大小将语以不同的字体大小显示在画布上,从而形成一个形状丰富、颜色丰富的图。 生成文字的方式通常分为以下几个步骤:首先,需要预处理文本,如去除停用、标点符号和数字等,以保留其中的关键。其次,根据关键的出现频率,构建一个语-频率的字典。然后,根据字典中语的频率大小,选择合适的字体大小来呈现图。最后,将语以随机的颜色和形状分布在画布上,形成一个具有艺术美感的文字图。 WordCloud生成文字在许多领域有着广泛的应用。在新闻媒体中,可以用于呈现某一段时间内的热点汇,从而让读者快速了解当下的热门话题。在社交媒体分析中,可以用于分析用户在某一话题下的讨论重点和偏好,发现用户的兴趣爱好。在品牌营销中,可以用于分析用户对某个品牌的好感度,并从中提取关键汇以指导品牌形象的传播。 总之,WordCloud生成文字是一种简单而有效的文本可视化方法,通过直观、艺术化的图像展示来传达文本中的信息和特征,具有很高的实用性和可视化效果。 ### 回答3: WordCloud是一种数据可视化的方式,可以将一段文本中出现频率较高的汇以状的形式展示出来。 WordCloud生成文字的过程首先需要对一段文本进行处理,包括分、去除停用等。然后根据每个汇在文本中出现的频率,确定汇在文字上的大小和颜色。频率高的汇会显示的更大、更显眼,而频率低的汇则相对较小。 生成文字时,我们可以选择不同形状的模板作为背景,如心形、动物等,以增加可视化效果的多样性。在最终的文字图中,我们可以看到频率高的汇集中在一起,形成状的集群,而频率低的汇则分散在文字的边缘。 WordCloud生成的文字图可以帮助人们直观地了解一段文本的重要内容和主题。通过观察文字的关键,我们可以快速抓住文本的要点和关注重点。同时,文字还可以用于情感分析,通过汇的大小和颜色可以反映出文本的情感色彩。这对于舆情监测和市场调研等领域具有一定的应用价值。 总而言之,WordCloud生成文字是一种简单而直观的数据可视化方式,可以有效帮助我们理解一段文本的重点内容和情感色彩。它在文本分析、信息提取、舆情监测等领域有着广泛的应用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值