除了wordcloud中的默认停用词外,如何添加额外的停用词?

How to add extra stop words in addition to default stopwords in wordcloud?

我想将某些词添加到 wordcloud 中使用的默认停用词列表中。当前代码:

all_text = " ".join(rev for rev in twitter_clean.text)
stop_words = ["https", "co", "RT"]
wordcloud = WordCloud(stopwords = stop_words, background_color="white").generate(all_text)
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis("off")
plt.show()

当我使用自定义stop_words变量时,"is"、"was"、"the"等词都被解释并显示为高频词。但是,当我使用默认停用词列表(没有停用词参数)时,还有许多其他词显示为高频率。如何将我的自定义 stop_words 变量连同默认停用词列表添加到我的词云中?

只需使用 from wordcloud import STOPWORDS 获取原始停用词列表,然后附加您的列表。像这样[STOPWORDS.add(n) for n in custon_stop_words]

只需将您的列表附加到内置的停用词列表即可:

来自 wordcloud 文档:

stopwords : set of strings or None. The words that will be eliminated. If None, the build-in STOPWORDS list will be used.

因此您只需将停用词附加到您的自定义列表并使用它

all_text = " ".join(rev for rev in twitter_clean.text)
stop_words = ["https", "co", "RT"] + list(STOPWORDS)
wordcloud = WordCloud(stopwords = stop_words, background_color="white").generate(all_text)
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis("off")
plt.show()
stopwords.update(["https", "co"])

通过将自定义停用词列表添加到 wordcloud.STOPWORDS 集

来自 wordcloud 的内置停用词是 python 集。

from wordcloud import STOPWORDS

print(type(STOPWORDS))

输出

<class 'set'>

我们可以使用 set.update() 添加到这个集合中,如图所示:

stop_words = STOPWORDS.update(["https", "co", "RT"])

现在更新wordcloud中的停用词

wordcloud = WordCloud(stopwords = stop_words, background_color="white").generate(all_text)