中英文词云绘制

今天呢,我给大家带来如何用python制作中英文词云,我们话不多说开始我们的中英文词云绘制吧,我们先做英文的词云。

我们在绘制前必须要做的是导入所需的库

import matplotlib.pyplot as plt
import wordcloud
from imageio import imread

这里用到一个新的库就是imageio,imageio是一个Python库,它提供了一个简单的接口来读取和写入大量的图像数据,包括动画图像、体积数据和科学格式。具体参考这个http://imageio.github.io/

首先我们需要把作为背景的图片导出来

mk=imread('../R&Q_pic/Love_Star.PNG')

注:一定要找到自己保存图片的地址,不然的话电脑找不到,就无法继续下去,建议放在一个文件夹中

接着我们要配置对象参数,设置背景

w=wordcloud.WordCloud(mask=mk,background_color='yellow')

掩膜(mask),数字图像处理中的掩膜的概念是借鉴于PCB制版的过程,在半导体制造中,许多芯片工艺步骤采用光刻技术,用于这些步骤的图形“底片”称为掩膜(也称作“掩模”),其作用是:在硅片上选定的区域中对一个不透明的图形模板遮盖,继而下面的腐蚀或扩散将只影响选定的区域以外的区域。 
图像掩膜与其类似,用选定的图像、图形或物体,对处理的图像(全部或局部)进行遮挡,来控制图像处理的区域或处理过程。
完成这一系列操作后,我们便成功一大半了,接下去我要打开填入里面的英文,代码如下:

f=open('../Stu_Pack/wordcloud/See You Again.txt','r')

还是那句话注意文件所在的位置

 好了我们现在按照词云的库的生成的办法给他显现出来,不清楚的话可以参考我上个博客词云库的生成,在那里面我详细介绍了如何生成一个词云库。

w.generate(f.read())
plt.imshow(w)
plt.axis('off')
plt.show()

完整代码如下:

import matplotlib.pyplot as plt
import wordcloud
from imageio import imread
mk=imread('../R&Q_pic/Love_Star.PNG')
w=wordcloud.WordCloud(mask=mk,background_color='yellow')
f=open('../Stu_Pack/wordcloud/See You Again.txt','r')
w.generate(f.read())
plt.imshow(w)
plt.axis('off')
plt.show()
w.to_file('../Stu_Pack/Love_Star.PNG')

结果如下:

 这样一个英文词云就完成了,我们接下去来做中文词云,步骤基本差不多还是先导入库

import matplotlib.pyplot as plt
import wordcloud
import imageio
import jieba

这里又有新的库jieba,我来给大家简单介绍下,jieba是优秀的中文分词第三方库中文文本需要通过分词获得单个的词语, jieba库提供三种分词模式:精确模式、全模式、搜索引擎模式 

精确模式:把文本精确的切分开,不存在冗余单词
全模式:把文本中所有可能的词语都扫描出来,有冗余

搜索引擎模式:在精确模式基础上,对长词再次切分

jieba分词的原理:Jieba分词依靠中文词库,利用一个中文词库,确定汉字之间的关联概率
汉字间概率大的组成词组,形成分词结果,除了分词,用户还可以添加自定义的词组

jieba库常用函数:

函数描述
jieba.cut(s)精确模式,返回一个可迭代的数据类型
jieba.cut(s,cut_all=True)全模式,输出文本中所有可能单词
jieba.cut_for_search(s)搜索引擎模式,适合搜索引擎建立索引的分词结果
jieba.lcut(s)精确模式,返回一个列表类型,建议使用
jieba.lcut(s,cut_all=True)全模式,返回一个列表类型,建议使用
jieba.lcut_for_search(s)搜索引擎模式,返回一个列表类型,建议使用
jieba.add word(w)向分词词典中添加新词

简单介绍完后,我们接着继续,跟英文词云一样还是先打作为背景的图片和文字

mk=imageio.imread('../Stu_Pack/wordcloud/Five_Star.png')
f=open('../Stu_Pack/万疆.txt','rt',encoding='utf=8')

注:1.因为py文件不支持中文因此需要使用这段代码encoding='utf-8'将文件编码类型改为UTF-8的类型,这个在我之前的博客中有提过,感兴趣的可以去看看。

接着我们要做的是把中文分割成几个有意义的词语并把他们连接起来

ls=jieba.lcut(t)#将t文件切割成多个有意义的词语
txt=' '.join(ls)#将切割的词语用空格连接成文本txt

接下去跟英文差不多了设置参数

w=wordcloud.WordCloud(mask=mk,background_color='pink',width=1000,height=700,font_path='../Stu_Pack/msyh.ttc')

最后给它显现出来

w.generate(txt)
plt.imshow(w)
plt.axis('off')
plt.show()
w.to_file('../R&Q_pic/Five_Star.png')

完整代码如下:

import matplotlib.pyplot as plt
import wordcloud
import imageio
import jieba
mk=imageio.imread('../Stu_Pack/wordcloud/Five_Star.png')
f=open('../Stu_Pack/万疆.txt','rt',encoding='utf=8')
t=f.read()
ls=jieba.lcut(t)#将t文件切割成多个有意义的词语
txt=' '.join(ls)#将切割的词语用空格连接成文本txt
w=wordcloud.WordCloud(mask=mk,background_color='pink',width=1000,height=700,font_path='../Stu_Pack/msyh.ttc')
w.generate(txt)
plt.imshow(w)
plt.axis('off')
plt.show()
w.to_file('../R&Q_pic/Five_Star.png')

结果如下:

 这里我用的是一些简单的图片,你们也可以找一些其他的图片,前提是这张图片就一个内容,并且图片里的内容一定是封闭的,不然的话,电脑会无法识别图片里内容,就会直接生成一张没有任何形状的词云,这里我还绘制了其他的图形的词云:

 

 

这些等等,大家可以把自己喜欢的图片放在上面进行创作,好了今天就聊到这吧,我们下次再见!

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
本篇文章介绍使用Python进行英文文献词频统计和词云绘制的方法。 1. 数据收集 首先需要收集要分析的英文文献数据。可以从网上搜索并下载文献的text或者pdf格式文件。 2. 数据处理 使用Python读入文献文件,并根据需要进行数据清洗和预处理,例如去除标点符号、停用词和数字等。可以使用nltk库进行自然语言处理。 import string from nltk.corpus import stopwords from nltk.tokenize import word_tokenize from collections import Counter #读入文献文件 with open(r"path/to/file.txt","r", encoding="utf-8") as f: text = f.read() #去除标点符号和数字 text = text.translate(str.maketrans("", "", string.punctuation+string.digits)) #分词并去除停用词 tokens = word_tokenize(text.lower()) stop_words = set(stopwords.words("english")) filtered_words = [word for word in tokens if word not in stop_words] 3. 数据分析 使用Python统计词频,并将结果保存为字典或DataFrame,方便后续绘制词云或更进一步的分析。 #计算词频 word_count = Counter(filtered_words) #将结果保存为pandas DataFrame import pandas as pd df = pd.DataFrame.from_dict(word_count, orient='index', columns=['count']) 4. 词云绘制 使用Python绘制词云,可以使用wordcloud库。在绘制词云的时候可以对每个单词附上对应的词频。 #导入wordcloud库 from wordcloud import WordCloud import matplotlib.pyplot as plt #将结果转换为字典格式 word_dict = {} for key in word_count: word_dict[key] = word_count[key] #绘制词云 wc = WordCloud(background_color="white", max_words=1000) wc.generate_from_frequencies(word_dict) plt.figure(figsize=(12,6)) plt.imshow(wc, interpolation='bilinear') plt.axis("off") plt.show() 完成以上代码后,就可以得到类似如下的词云图: 如图所示,大的词表示在文献中出现的频率更高的单词。通过词云来直观地展现文献中的主题和关键词,有助于提高阅读效率和理解文章主旨。 本篇文章介绍了如何使用Python进行英文文献词频统计和词云绘制。通过这些技术,不仅可以快速获取文献中的关键词,也可以更深入地理解文献的内容和结构。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值