2013-05-20 6 views
22

Creating a subset of words from a corpus in Rから、回答者はterm-document matrixを簡単にワードクラウドに変換できます。Pythonのコーパスからワードクラウドを作成するには?

生ワードのテキストファイルまたはNLTKコーパス、または​​Mmcorpusをワードクラウドに変換するPythonライブラリと同様の機能はありますか?

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

+1

ここでは恥知らずのプラグインがありますが、Andreas Mueller氏のコードを使用した「sklearn」ソリューションではありません。 https://github.com/alvations/translation-cloud – alvas

答えて

10

ウェブサイトやウェブアプリでそれらを表示するには、データをjsonまたはcsv形式に変換し、d3などのJavaScript視覚化ライブラリに読み込むことができます。 Word Clouds on d3

もしそうでなければ、Marcinの回答は、あなたが記述したことのための良い方法です。

3

アクションでamuellerのコードコマンドラインで

/端末の例:

# Simple WordCloud 
from os import path 
from scipy.misc import imread 
import matplotlib.pyplot as plt 
import random 

from wordcloud import WordCloud, STOPWORDS 

text = 'all your base are belong to us all of your base base base' 
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() 

enter image description here

+0

これはかなり欺瞞的な言葉の雲です。カウントは同じですが、ピクセルと単語の長さに基づいて正規化されていることを考えれば、米国はベースよりも大きいのです。 – alvas

+0

ドキュメントを参照してください。プロットはストップワードとrelative_scaling(周波数をスケーリングするときの周波数とランク)に対して変更することができます。デフォルトではrelative_scalingは0(Rank)ですが、relative_scaling = 1.0(Frequency)を探していると思います。 – MyopicVisage

+0

答えに入れてもらえますか?また、1.0で別の単語の雲を生成する?ありがとう!それは将来の読者を助けるでしょう=) – alvas

1
from wordcloud import WordCloud, STOPWORDS 
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']) 

sudo pip install wordcloud 

は、次にPythonスクリプトを実行します

enter image description here

関連する問題