目录
1 目标:解决一个奇怪的报错:TypeError: WordCloud.generate() missing 1 required positional argument: 'text'
2 一个关于词云wordcloud代码报错
2.1 出错的代码
2.1.1 代码
2.1.2 报错
3 网上查到的解决方法(试了都不对)
4 实际解决办法
4.1 解决办法
4.2 出错原因 必须使用 wordcloud.WordCloud() 生成对象
4.2.1 必须用wordcloud.WordCloud() 生成对象
4.2.2 还要注意大小写wordcloud.WordCloud()
import matplotlib.pyplot as plt
import wordcloud
text="你好,hello,hi"
wordcloud=wordcloud.WordCloud.generate(text)
下面是搜到的一些解决办法
这个错误通常出现在使用了一个过期的Pillow库版本或者安装错误的Pillow库版本上。建议检查你的Pillow库版本是否正确,并更新至最新版本。可以通过以下命令更新Pillow库:pip install --upgrade Pillow(可能出现权限不允许,使用管理员身份运行cmd窗口)
pip install --upgrade Pillow
在执行generate方法时报错ValueError: Only supported for TrueType fonts
解决方法:
先确认一下WordCloud的font_path参数指向的font文件路径有无问题,如果没问题大概率就是pip没有更新的问题了
generate 实例: >>> text3.generate() Traceback (most recent call last): File "
", line 1, in TypeError: generate() missing 1 required positional argument: 'words' >>> 产生一些与text3风格类似的随机文本。但在本机上却出错,原因是我使用的是nltk3.3和Python3.6,该版本下generate函数被注释了,所以无法使用。 而《python自然语言处理时》书中用的是NLTK2.0版本。
下面是修正的代码
import matplotlib.pyplot as plt
import wordcloud
text="你好,hello,hi"
wordcloud=wordcloud.WordCloud().generate(text)
下面是修正的代码,加上显示图形,
import matplotlib.pyplot as plt
import wordcloud
text="你好,hello,hi"
wordcloud=wordcloud.WordCloud().generate(text)
plt.imshow(wordcloud, interpolation="bilinear")
plt.axis("off")
效果如下
# 生成对象
wc = WordCloud().generate(text)