报错:ValueError: We need at least 1 word to plot a word cloud, got 0."/>
词云(wordcloud)报错:ValueError: We need at least 1 word to plot a word cloud, got 0.
词云(wordcloud)报错:ValueError: We need at least 1 word to plot a word cloud, got 0.
- 一、现象
- 二、尝试解决
- (一)尝试解决方法一
- (二)尝试解决方法二
- 三、最终结论
一、现象
代码:import wordcloudsentence = 'I like you 'wc = wordcloud.WordCloud()wc.generate(sentence)wc.to_file('test.png')
报错:
ValueError: We need at least 1 word to plot a word cloud, got 0.
但是换一下:
import wordcloudsentence = '尺寸超差错错错错错错错错错错错错错错错错错错 'wc = wordcloud.WordCloud(font_path='msyh.ttc')wc.generate(sentence)wc.to_file('test.png')
不报错:
生成图片:
二、尝试解决
(一)尝试解决方法一
在github中找到了一个方法,方法是修改源码中的正则表达式
链接: link.
源码:
regexp = self.regexp if self.regexp is not None else r"\w[\w']+"
在 File “D:\Users\Administrator\AppData\Local\Programs\Python\Python37\lib\site-packages\wordcloud\wordcloud.py”, (我的python在D盘,需要找到自己的site-packages\wordcloud\wordcloud.py的第573行,修改为\w+
即
regexp = self.regexp if self.regexp is not None else r"\w+"
但是这样还是没有解决问题,只读了一个单词
(二)尝试解决方法二
既然可能是正则的问题,又重新查了一下
\w+:是指匹配一个以上的任意字母、数字及下划线
照理说这里有八个字母,应当匹配上,尝试去掉空格
import wordcloud
sentence = 'Ilikeyou '
wc = wordcloud.WordCloud()
wc.generate(sentence)
wc.to_file('test.png')
没有报错:
是空格的问题吗?加上下划线,看看怎么样
import wordcloud
sentence = 'Ilikeyou '
wc = wordcloud.WordCloud()
wc.generate(sentence)
wc.to_file('test.png')
也OK!!
要把空格加上只能将源码修改为
regexp = self.regexp if self.regexp is not None else r".+"
修改后没有报错,且存在空格
但是可能会影响到其他使用,因而最好还是不要更改。
三、最终结论
按照需求更改正则表达式
修改地址为:
"D:\Users\Administrator\AppData\Local\Programs\Python\Python37\lib\site-packages\wordcloud\wordcloud.py", (ps:我的python在D盘,需要找到自己的site-packages\wordcloud\wordcloud.py的第573行,修改这一行的正则表达式)
更多推荐
词云(wordcloud)报错:ValueError: We need at least 1 word to plot a word cloud, got 0.
发布评论