利用wordcloud模块和jieba模块创建词云图
词云wordcloud
wordcloud可以将一段文字直接转成词云
方法是导入wordcloud,使用变量将词云实例化w = wordcloud.WordCloud(font_path='', width=, height=, background_color='')
再通过实例进行w.generate(a),最后w.to_file('aaa.png')
import wordcloud# 打开文件
a = open('ENGTST.txt',mode='r',encoding='UTF-8').read()# 建立并设置词云实例
# font_path为字体路径,width为图像宽度,height为图像高度,background_color为背景颜色
w = wordcloud.WordCloud(font_path='ZhanKuWenYiTi-2.ttf', width=1280, height=1080, background_color='white')# generate可以使用这个实例生成词云,这里读取了刚才打开的文件
w.generate(a)# 最后to_file可以写入某个文件中。可以是jpg也可以是png
w.to_file('aaa.png')
对于英文文本来说,可以直接扔进去进行转换,但对于中文文本,则必须使用jieba进行分词,分词后使用空格进行重新组合成一个长字符串txt = " ".join(ls)才能进行生成
中文词云例子:
import jieba
import urllib
import wordcloudexclude = ['的', '和', '是', '在']# 使用urllib模块抓取网上的内容,也可以使用本地文件url = urllib.request.quote('https://python123.io/resources/pye/新时代中国特色社会主义.txt',safe=":;/?@&=+#,")
response = urllib.request.urlopen(url)
t = response.read().decode('utf-8')# lcut为jieba的精准模式,可以精准把中文词汇分割开来,并存进列表中
ls = jieba.lcut(t)
print(ls)# 因为jieba生成的是一个列表,wordcloud只能读取字符换,所以我们以空格连接每个词汇
txt = " ".join(ls)
print(txt)# 生成词云实例,这里注意如果某些词汇不想在词云中出现,如“的”之类的无意义词汇
# 可以使用stopwords参数剔除。stopword设置成列表即可
w = wordcloud.WordCloud(font_path='ZhanKuWenYiTi-2.ttf',\width=1000, height=700, background_color='white',\stopwords=exclude)生成并写入词云
w.generate(txt)
w.to_file("grwordcloud.png")
jieba分词模块详解
jieba分词模块是很强大的中文分词模块,具体应用如下:
import jiebajieba.enable_paddle() # 启动paddle模式。 0.40版之后开始支持,早期版本不支持
strs=["我来到北京清华大学","乒乓球拍卖完了","中国科学技术大学"]
for str in strs:seg_list = jieba.cut(str,use_paddle=True) # 使用paddle模式print("Paddle Mode: " + '/'.join(list(seg_list)))# 全模式会把所有可能的词汇都列出来,这里输出有“清华”、“华大”
seg_list = jieba.cut("我来到北京清华大学", cut_all=True)
print("Full Mode: " + "/ ".join(seg_list)) # 精准模式则不会重复列出可能词汇
seg_list = jieba.cut("我来到北京清华大学", cut_all=False)
print("Default Mode: " + "/ ".join(seg_list)) # 精确模式# 默认为精准模式,推荐用lcut,因为cut返回的是一个生成器,lcut返回的是列表
seg_list = jieba.cut("他来到了网易杭研大厦")
print(", ".join(seg_list))# 搜索引擎模式会进行模糊匹配,类似搜索引擎
seg_list = jieba.cut_for_search("小明硕士毕业于中国科学院计算所,后在日本京都大学深造") # 搜索引擎模式
print(", ".join(seg_list))# add_word可以向词库中加新的词语,添加之后遇到这个词汇会作为一个词来识别
# 如果没有添加,则会分割成“蟒蛇”和“语言”两个
jieba.add_word("蟒蛇语言")
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
