欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

每日10行代码34:wordcloud生成词云时过滤掉某些词

发布时间:2023/12/20 编程问答 67 豆豆
生活随笔 收集整理的这篇文章主要介绍了 每日10行代码34:wordcloud生成词云时过滤掉某些词 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

今天在制作词云时发现生成的词云有很多虚词,比方说“情况、一是、二是、要求、加快、推进、发展” 还有一些不想让他出现的人名。这时就需要过滤某些词了,在网上搜了下,发现大多都是在程序里添加一个列表,然后再过滤,或者是用stopwords.add() ,其实还有个方法:

  • 找到wordcloud的安装文件夹,把要屏蔽的词的添加到stopwords文件的后面。我个人的路径是:C:\Python36\Lib\site-packages\wordcloud
  • 在第一步中,如果添加的是中文,程序会报错,这是因为python遇到中文,会默认以gbk的编码打开,但存中文时有些编辑器会默认用utf-8存储。这时只需要找到wordcloud.py文件的第35行
  • STOPWORDS = set(map(str.strip, open(os.path.join(FILE, 'stopwords')).readlines()))

    修改成:

    STOPWORDS = set(map(str.strip, open(os.path.join(FILE, 'stopwords'),encoding='utf-8').readlines()))

    就可以了,不过可能有些编辑器不用修改代码就可以,我就没做多的试验了。
    这样修改屏蔽词有个好处就是简单,不用写过多的代码,用的包自身的屏蔽功能,不额外消耗内存,一次设置终身使用。不过也有一个问题,就是如果想针对不同的项目设置不同屏蔽词的话就不行了,这种方法最适合的是设置一些常用屏蔽词。

    ps: 明天可能比较忙,先把文章发了,明天可能断更一天。今天又爬了一个网站,写的代码可不止10行,但是跟前面爬人民日报的项目差不多,就不发上来了。

    总结

    以上是生活随笔为你收集整理的每日10行代码34:wordcloud生成词云时过滤掉某些词的全部内容,希望文章能够帮你解决所遇到的问题。

    如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。