python 词云构建

python 词云生成小工具
词云,又称文字云、标签云,是对文本数据中出现频率较高的“关键词”在视觉上的突出呈现,形成关键词的渲染形成类似云一样的彩色图片,从而一眼就可以领略文本数据的主要表达意思。创建于文本分析及其可视化中。

用python中也可以用wordcloud包比较轻松地实现;在命令行中运行“pip install wordcloud”进行安装

官网:https://pypi.org/project/wordcloud/

github项目:https://github.com/amueller/word_cloud

jieba库

  • 精确模式:cut(s)、lcut(s)
  • 全模式: cut(s, cut_all = True)、lcut(s, cut_all = True)
  • 搜索引擎模式: cut_for_search(s)、lcut_for_search(s)
  • 动态增加新词: add_word(w)

wordcloud库

  • wwordcloud.WordCloud(<参数>)
  • 两个方法: w.generate(txt)、w.to_file(filename)
  • 参数列表: width、height、min_font_size、max_font_size、font_step、font_path、max_words、stop_wordsmask、background_color
实现功能

通过录入txt格式的文件路径和录入png格式的图片,利用图片来生成词云;

部分代码解析

导入背景图

    #导入背景图   
    # img_path = input("请输入png格式的图片地址:")
    img_path = r"C:\Users\gulu\Desktop\a.png"
    backgrim=np.array(Image.open(img_path))

导入文本文件

    #导入文本文件   
    # txt_path = input("请输入文本txt格式的地址:")
    txt_path = r"C:\Users\gulu\Desktop\a.txt"
    text=open(txt_path,encoding='utf-8').read()

jieba分词与构建空格分割字符串

    wordlist = jieba.cut(text, cut_all=True)
    wl = " ".join(wordlist)
    # 利用join函数,将列表拼接成字符串,并利用空格隔开
全部代码
import matplotlib.pyplot as plt
from wordcloud import WordCloud, ImageColorGenerator, STOPWORDS
import jieba
import numpy as np
from PIL import Image
def wordyun():
    #导入背景图   
    # img_path = input("请输入png格式的图片地址:")
    img_path = r"C:\Users\gulu\Desktop\a.png"
    backgrim=np.array(Image.open(img_path))
    #导入文本文件   
    # txt_path = input("请输入文本txt格式的地址:")
    txt_path = r"C:\Users\gulu\Desktop\a.txt"
    text=open(txt_path,encoding='utf-8').read()

    #jieba分词
    wordlist = jieba.cut(text, cut_all=True)
    wl = " ".join(wordlist)
    #设置参数
    wordcloud=WordCloud(
        background_color='white',  #背景颜色
        mask=backgrim ,   #背景图片
        max_words = 1000,  # 设置最多现实的词数
        stopwords=STOPWORDS,  # 设置停用词
        max_font_size=100,    # 设置字体最大值
        font_path='C:/Windows/Fonts/msyhbd.ttc',#设置字体,路径在电脑内
        width=2000,
        height=1500,
        random_state=30,  # 设置有多少种随机生成状态,即有多少种配色方案
        # scale=.5
    ).generate(wl)
    #改变字体颜色
    image_colors = ImageColorGenerator(backgrim)
    #展示词云
    plt.imshow(wordcloud)
    #是否显示想x,y坐标
    plt.axis("off")
    plt.show()
    #写入文件
    wordcloud.to_file('py_book1.png')  # 把词云保存下

wordyun()

 

© 版权声明
THE END
喜欢就支持一下吧
点赞32
分享
相关推荐
  • 暂无相关文章
  • 评论 抢沙发