python 定制个性化词云(根据图片自动生成形状和颜色)

一、涉及的第三方库

1、jieba:中文分词
2、wordcloud:生成词云
3、imageio:读取图像数据

二、代码详细展示

2.1

#引入需要的库
import jieba
import imageio
import wordcloud
#用imageio的imread函数读取图片,在生成词云的时候将他设置为mask参数(形状)的值
mask1=imageio.imread(r"C:/Users/Desktop/xxx.png")#读取背景图片

2.2

#以删除2020-XX-XX所在行为例
#打开文本文件,按行读取
with open(r"C:\Users\lenovo\Desktop\aganzhengzhuan.txt","r",encoding="UTF-8") as r:
    lines=r.readlines()
# 删除不需要的行
with open(r"C:\Users\lenovo\Desktop\aganzhengzhuan.txt","w",encoding="UTF-8") as w:
    for line in lines:
        if "2020-" not in line:
            w.write(line)
r.close()
w.close()

2.3
用jieba库对聊天记录进行分词,得到聊天中的众多关键词

f=open(r"C:\Users\lenovo\Desktop\aganzhengzhuan.txt","r",encoding="UTF-8")#打开处理好的聊天记录文件
t=f.read()
f.close()
ls=jieba.lcut(t)   #用lcut函数进行分词
txt="".join(ls)   #用空格将关键词隔开

2.4
用wordcloud生成词云

image_colors = wordcloud.ImageColorGenerator(pic1)#利用ImageColorGenerator函数将词云的颜色参数设置为根据图片颜色确定
w=wordcloud.WordCloud(font_path="msyh.ttc",width=800,height=200,mask=pic1,background_color="white",max_words=100000,color_func=image_colors,max_font_size=60)
#设置词云的参数,记住将提到的形状参数设为上面生成的mask1,颜色参数设为image_colors
w.generate(txt)#生成词云
w.to_file("love2.png")#图片保存为love2.png(注意位置在你的程序文件夹里头)

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 生成关键词词云图需要使用Python中的第三方库wordcloud和jieba。首先需要安装这两个库,可以使用以下命令进行安装: ``` pip install wordcloud pip install jieba ``` 接下来,我们可以使用如下代码生成关键词词云图: ```python import jieba from wordcloud import WordCloud, STOPWORDS import matplotlib.pyplot as plt # 读取文本文件 with open('text.txt', 'r', encoding='utf-8') as f: text = f.read() # 分词处理 words = jieba.cut(text) words = ' '.join(words) # 去除停用词 stopwords = set(STOPWORDS) stopwords.add('的') stopwords.add('了') stopwords.add('是') # 生成词云图 wc = WordCloud( background_color='white', # 背景颜色 stopwords=stopwords, # 停用词 max_words=200, # 最多显示词数 font_path='msyh.ttc', # 字体文件路径 margin=5 # 边距 ).generate(words) # 显示词云图 plt.imshow(wc, interpolation='bilinear') plt.axis('off') plt.show() # 保存词云图 wc.to_file('wordcloud.png') ``` 其中,`text.txt`是待处理的文本文件,需要将其放在与代码同一目录下。在生成词云图时,我们使用了中文分词工具jieba对文本进行分词,并去除了一些常见停用词。此外,我们还可以设置词云图的一些参数,如背景颜色、最多显示词数、字体文件路径等。最后,使用`imshow`函数将词云图显示出来,并使用`to_file`函数将其保存到本地。 ### 回答2: Python生成关键词词云图的过程主要包括以下步骤: 1. 数据准备:首先需要准备要生成词云图的数据,可以是一段文本、文章、网页内容等。例如,我们可以使用Python的`requests`库爬取网页内容,或者读取本地文件。 2. 文本处理:将获取到的文本进行处理,去除无意义的词语、标点符号、停用词等。可以使用Python的`jieba`库进行分词,`nltk`库进行停用词的过滤。 3. 关键词提取:根据处理后的文本, 使用Python的`TF-IDF`算法或者`TextRank`算法提取关键词。可以使用`gensim`库或`textrank4zh`库等。 4. 生成词云图:根据提取到的关键词,使用Python的`wordcloud`库生成词云图。可以设置词云形状、背景颜色、字体样式、词语大小等。 5. 显示词云图:最后可以使用Python的`matplotlib`库或者`pyplot`库将生成的词云图进行显示和保存。 下面是一个简单的示例代码: ```python import requests import jieba from wordcloud import WordCloud import matplotlib.pyplot as plt # 获取文本数据 url = 'http://example.com' response = requests.get(url) text = response.text # 文本处理 # 去除停用词,可以自行准备停用词表 stopwords = ['的', '了', '是', '我', '你'] seg_list = jieba.cut(text) seg_list = [word for word in seg_list if word not in stopwords] # 关键词提取 keywords = ' '.join(seg_list) # 将分好的词连接成字符串 # 生成词云图 wordcloud = WordCloud().generate(keywords) # 显示词云图 plt.imshow(wordcloud, interpolation='bilinear') plt.axis('off') plt.show() ``` 通过上述步骤,我们可以使用Python生成关键词词云图。当然,具体的实现方式还可以根据自己的需求进行调整和优化。 ### 回答3: 生成关键词词云图是利用Python中的一些库和模块来实现的。首先,我们需要安装和导入一些相关的库,比如jieba用于中文分词,wordcloud用于生成词云图,matplotlib用于显示词云图。 具体操作步骤如下: 1. 安装所需库:在命令行中输入以下命令安装所需库。 ``` pip install jieba pip install wordcloud pip install matplotlib ``` 2. 导入所需库:在Python脚本中导入所需库。 ```python import jieba from wordcloud import WordCloud import matplotlib.pyplot as plt ``` 3. 准备文本数据:将需要生成词云图的文本保存在一个字符串中。 ```python text = "我爱中国,我喜欢学习编程,Python是一门很有用的编程语言。" ``` 4. 中文分词:使用jieba库对文本进行中文分词。 ```python words = jieba.lcut(text) ``` 5. 统计词频:统计每个词出现的次数。 ```python word_counts = {} for word in words: if len(word) > 1: # 过滤掉单个字符 word_counts[word] = word_counts.get(word, 0) + 1 ``` 6. 生成词云图:使用WordCloud库生成词云图。 ```python wordcloud = WordCloud(font_path="SimHei.ttf", width=800, height=400).generate_from_frequencies(word_counts) ``` 7. 显示词云图:使用matplotlib库显示生成的词云图。 ```python plt.imshow(wordcloud, interpolation='bilinear') plt.axis("off") plt.show() ``` 以上就是用Python生成关键词词云图的基本步骤,通过逐步操作可以得到一个简单的关键词词云图。当然,还可以根据自己的需求进行一些参数调整,如字体、颜色形状等,以生成更加个性化词云图

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值