xy1770 发表于 2020-7-19 23:07:01

词云

"""
wordcloud库
"""

# wordcloud.WordCloud() 注意大小写,只能这么写
import wordcloud


c = wordcloud.WordCloud(width=600,height=400,
                        min_font_size=50,max_font_size=100,
                        font_step=5,
                        max_words=20,
                        stop_words={'Python'})
            # 这步不是“将 c 定义为 wordcloud 的缩写”,import wordcloud as c才是。这步是设定参数。
            # 括号里如果没填参数,那就用系统默认的。                                                                           
            # font_step=字体最小间隔;
            # font_path='字体(一般格式为.ttc)';
            # max_words=单词云显示的最大单词数量;
            # stop_words=排除不需要显示的单词列表
      
print( c.generate('Love and Peace! Love Python! banana, apple or orange. @Python') )               # 向 WordCloud 对象 c 中加载文本txt
c.to_file('//Users//h//Desktop//picture.png')                                             # 将词云输出为图像文件(.png 或者.jpg)



---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-26-7a10733b695e> in <module>
   11                         font_step=5,
   12                         max_words=20,
---> 13                         stop_words={'Python'})
   14             # 这步不是“将 c 定义为 wordcloud 的缩写”,import wordcloud as c才是。这步是设定参数。
   15             # 括号里如果没填参数,那就用系统默认的。

TypeError: __init__() got an unexpected keyword argument 'stop_words'


stop_words,这怎么会没有呢??
我要做一个词云,想把文本里的Python这个词排除在统计之外

Twilight6 发表于 2020-7-19 23:08:47



stop_words 参数的下划线去掉,改成 stopwords

"""
wordcloud库
"""

# wordcloud.WordCloud() 注意大小写,只能这么写
import wordcloud

c = wordcloud.WordCloud(width=600, height=400,
                        min_font_size=50, max_font_size=100,
                        font_step=5,
                        max_words=20,
                        stopwords={'Python'})
# 这步不是“将 c 定义为 wordcloud 的缩写”,import wordcloud as c才是。这步是设定参数。
# 括号里如果没填参数,那就用系统默认的。
# font_step=字体最小间隔;
# font_path='字体(一般格式为.ttc)';
# max_words=单词云显示的最大单词数量;
# stop_words=排除不需要显示的单词列表

print(c.generate('Love and Peace! Love Python! banana, apple or orange. @Python'))# 向 WordCloud 对象 c 中加载文本txt
c.to_file('//Users//h//Desktop//picture.png')# 将词云输出为图像文件(.png 或者.jpg)


Levin-e 发表于 2020-7-20 01:28:08

上面的大神把解答写的很清楚了,然后我只是想分享一下碰到类似的问题怎么去自己解决。
根据报错的提示,告诉你在wordcloud这个类初始化方法中出现了unexpected的参数“stop_words”
很显然是那个注释出了错,正确的参数应该是“stopwords”
那么如何去自己解决这个问题。
首先找到你使用的这个包的源码,这里给出链接:https://github.com/amueller/word_cloud/blob/master/wordcloud/wordcloud.py
找到wordcloud这个类的源码,可以善用GitHub的搜索功能

然后作者写了详细的关于使用到的参数的注释

可以看到在这里写的很清楚stopwords的参数命名
页: [1]
查看完整版本: 词云