从Pandas系列创建Wordcloud

问题描述

byte

在这里我有一个名为sbyte的系列,其中删除了停用词,被import pandas as pd import matplotlib.pyplot as plt % matplotlib inline import spacy from wordcloud import WordCloud,STOPWORDS,ImageColorGenerator nlp= spacy.load('en_core_web_sm') 并进行了合法化

tokens_lemma

我想使用以上系列创建一个wordcloud。

.lower()

我个人认为问题来自tokens_lemma 0 [laptop,sit,4,star,similarly,price,compa... 1 [order,monitor,want,makeshift,area,powerf... 2 [monitor,great,deal,size,.,use,of... 3 [buy,height,adjustment,swivel,ability,... 4 [work,month,die,5,call,hp,support,nu... ... 30618 [great,deal] 30619 [pour,le,travail] 30620 [business,use] 30621 [good,size] 30622 [pour,mon,ordinateur.plus,grande,image.vra... Name: text_body,Length: 30623,dtype: object 对象,因为wordcloud的数据格式错误。但是同样,我不知道如何更改以匹配wordcloud格式。

解决方法

在写完问题后,我不小心解决了问题,所以我还是要发布它。 只需将数据从for w in tokens_lemma: w=str(w) comment_words += " ".join(w) wordcloud = WordCloud(width = 800,height = 800,background_color ='white',min_font_size = 10).generate(comment_words) # plot the WordCloud image plt.figure(figsize = (8,8),facecolor = None) plt.imshow(wordcloud) plt.axis("off") plt.tight_layout(pad = 0) plt.show() --------------------------------------------------------------------------- ValueError Traceback (most recent call last) <ipython-input-33-9faee80d909b> in <module> ----> 1 wordcloud = WordCloud(width = 800,2 background_color ='white',3 min_font_size = 10).generate(comment_words) ~\anaconda3\envs\datasci\lib\site-packages\wordcloud\wordcloud.py in generate(self,text) 629 self 630 """ --> 631 return self.generate_from_text(text) 632 633 def _check_generated(self): ~\anaconda3\envs\datasci\lib\site-packages\wordcloud\wordcloud.py in generate_from_text(self,text) 611 """ 612 words = self.process_text(text) --> 613 self.generate_from_frequencies(words) 614 return self 615 ~\anaconda3\envs\datasci\lib\site-packages\wordcloud\wordcloud.py in generate_from_frequencies(self,frequencies,max_font_size) 401 frequencies = sorted(frequencies.items(),key=itemgetter(1),reverse=True) 402 if len(frequencies) <= 0: --> 403 raise ValueError("We need at least 1 word to plot a word cloud," 404 "got %d." % len(frequencies)) 405 frequencies = frequencies[:self.max_words] ValueError: We need at least 1 word to plot a word cloud,got 0. 更改为comment_words就可以了。

comment_words