python:用wordcloud生成一个文本的词云

今天学习了wordcloud库,对《三国演义》生成了词云图片,非常漂亮。就想多尝试几个,结果发现一系列问题。

最常出现的一个错误就是"UnicodeDecodeError : ...", 冒号后面的info不一而足。看意思也能猜出是"encoding"解码方式不对,于是各种编码尝试,有的默认或者"ANSI"就可以解码,有的必须用"UTF-8", 一狠心用了”errors='ignore'“, 结果顺利运行了,词云图片却是一堆乱码。

注:如果图片各种方框,应该是字体没加对了(ttf文件系统里搜一下):font_path = "msyh.ttf"

想着应该有个办法能获取到文本的编码方式啊,一搜果然如此:https://blog.csdn.net/qq_32618817/article/details/81363235.  

 1 #wordcloud_V2.py
 2 
 3 import wordcloud
 4 import chardet                                     #用命令安装这个包"pip install chardet"
 5 def get_encoding(file):                        
 6     with open(file,'rb') as f:                     #二进制方式读取,获取字节数据,检测类型
 7         return chardet.detect(f.read())            #获取文件的编码方式
 8 
 9 #打印文件编码
10 file_type = get_encoding('prime.txt')
11 print(file_type)
12 
13 #制作词云
14 txt = open('prime.txt','r',encoding = 'utf-16' ).read()
15 fo = wordcloud.WordCloud(width=1920,height=1080,font_path="msyh.ttf")
16 
17 fo.generate(txt)
18 fo.to_file('prime3.jpg')

python的魅力:

猜你喜欢

转载自www.cnblogs.com/xier/p/10452510.html
今日推荐