簡體   English   中英

從多組文本生成WordCloud

[英]Generate WordCloud from multiple sets of text

基於此問題, 如何在Python中從語料庫創建詞雲? ,我確實使用amueller的庫建立了詞雲。 但是,我看不到如何為多個文本集提供雲服務。 到目前為止,這是我嘗試過的:

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

我找不到該庫的任何手冊,所以我不知道如何進行操作,對嗎? :)


實際上,正如您在此處看到的那樣: 具有不同類型數組的字典作為Python中的值 ,我具有以下數據結構:

category = {  "World news": [2, "foo bla content of", "content of 2nd article"],
              "Politics": [1, "only 1 article here"],
              ...
}

並且我想在世界雲后面加上“ foo bla的內容”和“第二篇的內容”。

https://github.com/amueller/word_cloud/blob/master/wordcloud/wordcloud.py中的類的簡短瀏覽中,沒有更新方法,因此您需要重新生成wordcloud或添加更新方法。

最簡單的方法可能是維護原始源文本,並添加到此文本的末尾,然后重新生成。

最簡單的解決方案是使用更新的語料庫重新生成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)

說明:

  • 加入膠水多個字符串由給定的分隔符一起分離
  • [1:]從列表中獲取除第一個元素外的所有元素
  • dict.values()給出字典中所有值的列表

因此,可以將" ".join([" ".join(value[1:]) for value in category.values()])的表達式" ".join([" ".join(value[1:]) for value in category.values()])轉換為:

首先將每個鍵的所有元素粘合在一起,但第一個除外(因為這是一個計數器)。 然后將所有產生的弦粘在一起。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM