web-dev-qa-db-ja.com

PythonのコーパスからWordクラウドを作成する方法は?

Rのコーパスから単語のサブセットを作成する から、回答者はterm-document matrix Wordクラウドに簡単に。

生のWordテキストファイルまたはNLTKコーパスまたはGensim MmcorpusをWordクラウドに取り込むpythonライブラリからの同様の関数はありますか?

結果は次のようになります。 enter image description here

40
alvas

これを行うブログ投稿は次のとおりです。 http://peekaboo-vision.blogspot.com/2012/11/a-wordcloud-in-python.html

コード全体は次のとおりです。 https://github.com/amueller/Word_cloud

55
Marcin
from wordcloud import WordCloud, STOPWORDS
import matplotlib.pyplot as plt
stopwords = set(STOPWORDS)

def show_wordcloud(data, title = None):
    wordcloud = WordCloud(
        background_color='white',
        stopwords=stopwords,
        max_words=200,
        max_font_size=40, 
        scale=3,
        random_state=1 # chosen at random by flipping a coin; it was heads
    ).generate(str(data))

    fig = plt.figure(1, figsize=(12, 12))
    plt.axis('off')
    if title: 
        fig.suptitle(title, fontsize=20)
        fig.subplots_adjust(top=2.3)

    plt.imshow(wordcloud)
    plt.show()

show_wordcloud(Samsung_Reviews_Negative['Reviews'])
show_wordcloud(Samsung_Reviews_positive['Reviews'])

enter image description here

13
HeadAndTail

これらのWordクラウドをWebサイトまたはWebアプリで表示する必要がある場合は、データをjsonまたはcsv形式に変換し、 d などのJavaScript視覚化ライブラリにロードできます。 d3のワードクラウド

そうでない場合、Marcinの答えは、あなたが説明することをするための良い方法です。

10
valentinos

動作中のミューラーのコードの例

コマンドライン/ターミナルで:

Sudo pip install wordcloud

次に、python script:

## Simple WordCloud
import matplotlib.pyplot as plt
from wordcloud import WordCloud, STOPWORDS 

text = 'all your base are belong to us all of your base base base'

def generate_wordcloud(text): # optionally add: stopwords=STOPWORDS and change the arg below
    wordcloud = WordCloud(font_path='/Library/Fonts/Verdana.ttf',
                          relative_scaling = 1.0,
                          stopwords = {'to', 'of'} # set or space-separated string
                          ).generate(text)
    plt.imshow(wordcloud)
    plt.axis("off")
    plt.show()

generate_wordcloud(text)

enter image description here

9
MyopicVisage

ここに短いコードがあります

#make wordcoud

from wordcloud import WordCloud, STOPWORDS
import matplotlib.pyplot as plt
stopwords = set(STOPWORDS)

def show_wordcloud(data, title = None):
    wordcloud = WordCloud(
        background_color='white',
        stopwords=stopwords,
        max_words=200,
        max_font_size=40, 
        scale=3,
        random_state=1 # chosen at random by flipping a coin; it was heads
    ).generate(str(data))

    fig = plt.figure(1, figsize=(12, 12))
    plt.axis('off')
    if title: 
        fig.suptitle(title, fontsize=20)
        fig.subplots_adjust(top=2.3)

    plt.imshow(wordcloud)
    plt.show()


if __== '__main__':

    show_wordcloud(text_str)   
1
Ujjawal107