鱼C论坛

 找回密码
 立即注册
查看: 2012|回复: 2

[已解决]词云

[复制链接]
发表于 2020-7-19 23:07:01 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
"""
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这个词排除在统计之外
最佳答案
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)

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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)

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

class wordcloud

class wordcloud

然后作者写了详细的关于使用到的参数的注释
2.png
可以看到在这里写的很清楚stopwords的参数命名
3.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-19 23:02

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表