詞雲(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 wordcloud
		sentence = '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 wordcloud
		sentence = '尺寸超差錯錯錯錯錯錯錯錯錯錯錯錯錯錯錯錯錯錯 '
		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行,修改這一行的正則表達式)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章