基于这个问题How to create a word cloud from a corpus in Python?,我确实使用amueller's库构建了一个词云。但是,我没有看到如何用更多的文本集来提供云。这是我到目前为止所尝试的:
wc = WordCloud(background_color="white", max_words=2000, mask=alice_mask,
stopwords=STOPWORDS.add("said"))
wc.generate(set_of_words)
wc.generate("foo") # this overwrites the previous line of code
# but I would like this to be appended to the set of words
我找不到图书馆的任何手册,所以我不知道如何继续,是吗? :)
实际上,如您所见:Dictionary with array of different types as value in Python,我有这样的数据结构:
category = { "World news": [2, "foo bla content of", "content of 2nd article"],
"Politics": [1, "only 1 article here"],
...
}
我想追加世界云" foo bla内容"和#34;第二篇文章的内容"。
答案 0 :(得分:1)
从https://github.com/amueller/word_cloud/blob/master/wordcloud/wordcloud.py中对类的简要描述中没有更新方法,因此您需要重新生成wordcloud或添加更新方法。
最简单的方法可能是维护原始源文本,然后添加到此结尾,然后重新生成。
答案 1 :(得分:1)
最简单的解决方案是使用更新的语料库重新生成wordcloud。
要使用category
数据结构中包含的文本(针对所有主题)构建语料库,您可以使用此理解:
# Update the corpus
corpus = " ".join([" ".join(value[1:]) for value in category.values()])
# Regenerate the word cloud
wc.generate(corpus)
为数据结构中的单个密钥构建单词云(例如Politics):
# Update the corpus
corpus = " ".join(category["Politics"][1:])
# Regenerate the word cloud
wc.generate(corpus)
说明:
表达式" ".join([" ".join(value[1:]) for value in category.values()])
因此可以翻译为:
首先将每个键的所有元素粘在一起,除了第一个(因为它是一个计数器)。然后将所有结果字符串粘在一起。