TypeError: WordCloud.generate() missing 1 required positional argument: ‘text‘, 关于词云generate() 报错

目录

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()


1 目标:解决一个奇怪的报错:TypeError: WordCloud.generate() missing 1 required positional argument: 'text'

  •  WordCloud.generate() 报错的问题
  • 详细见下面的解决办法 

2 一个关于词云wordcloud代码报错

2.1 出错的代码

2.1.1 代码

import matplotlib.pyplot as plt
import wordcloud

text="你好,hello,hi"
wordcloud=wordcloud.WordCloud.generate(text)

2.1.2 报错

  • TypeError: WordCloud.generate() missing 1 required positional argument: 'text'

3  网上查到的解决方法(试了都不对)

下面是搜到的一些解决办法

这个错误通常出现在使用了一个过期的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版本。

4 实际解决办法

4.1 解决办法

  • 只要将 wordcloud=wordcloud.WordCloud.generate(text)
  • 修改为wordcloud=wordcloud.WordCloud().generate(text)
  • 马上就不报错了

下面是修正的代码

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")

效果如下

4.2 出错原因   必须使用 wordcloud.WordCloud() 函数的返回值来生成对象

4.2.1  必须用wordcloud.WordCloud() 函数的返回值来生成对象

# 生成对象
wc  = WordCloud().generate(text)

  • # 创建一个WordCloud对象 wordcloud = WordCloud()
  • wordcloud=wordcloud.WordCloud.generate(text)
  • wordcloud=wordcloud.WordCloud().generate(text)
  • 必须是函数WordCloud()的返回对象的的方法wordcloud.WordCloud().generate(text)
  • 而不是对象名为WordCloud这样的某个对象的方法wordcloud.WordCloud.generate(text)

4.2.2  还要注意大小写wordcloud.WordCloud()

  • wordcloud.WordCloud()

你可能感兴趣的:(python,wordcloud,matplotlib)