Pythonを使ったワードクラウドのチュートリアルへようこそ。
ワードクラウドの技術は、特にテキストデータが存在する場合、データ可視化のトレンドの技術となっています。
したがって、ワードクラウドは、自然言語処理(NLP)を用いたデータ可視化のための著名なテクニックの一つであると言うことができます。
ワードクラウドとは?
記事中で最も頻繁に使用されている単語を抽出し、その単語の使用回数に基づいて計算します。
使用回数が多いほど、ワードクラウドでの単語の大きさも大きくなります。
How to Create Word Cloud using Python?
それでは、Pythonを使って独自のワードクラウドを作成してみましょう。
1. wordcloud と Wikipedia ライブラリのインストール
ワードクラウドを作成するには、python 3.xとwordcloudをインストールする必要があります。
wordcloudをインストールするには、pipコマンドを使用します。
sudo pip install wordcloud |
この例では、Wikipediaのウェブページ、すなわちPython(プログラミング言語)を使用することにします。
Wikipediaのコンテンツを使用するには、wikipediaの依存関係をインストールする必要があります。
sudo pip install wikipedia |
2. クエリに基づく Wikipedia の検索
まず、以下のコードで wikipedia
ライブラリをインポートします。
import wikipedia
|
search` 関数を使用して、最初の要素だけを取り出します。
これが私たちのページのタイトルになります。
def get_wiki(query):
title = wikipedia.search(query)[ 0 ]
# get wikipedia page for selected title
page = wikipedia.page(title)
return page.content
|
タイトルを取り出したら、
page()を使ってページの内容を取り出します。
この後、page.contentを使って、ページの
content` だけを返します。
上記のコードをコンソールで実行すると、サイトのすべての生データがコンソールに表示されます。
しかし、我々のタスクはここで終わりではなく、ワードクラウドを作成する必要があります。
from wordcloud import WordCloud, STOPWORDS
|
この記事もチェック:PythonのPlotlyライブラリを使ってデータを地図上に表示させる方法
3. クラウドマスクの作成とストップワードの設定
まず始めに、wordcloud
ライブラリをインポートし、WordCloud
や STOPWORDS
などの特定のパッケージをインポートします。
STOPWORDS` をインポートするのは、a, an, the などの基本的な冠詞や、英語でよく使われる単語を削除したいからです。
def create_wordcloud(text):
mask = np.array(Image. open (path.join(currdir, "cloud.png" )))
stopwords = set (STOPWORDS)
# create wordcloud object
wc = WordCloud(background_color = "white" ,
max_words = 200 ,
mask = mask,
stopwords = stopwords)
wc.generate(text)
# save wordcloud
wc.to_file(path.join(currdir, "output.png" ))
|
マスクを使用します。
これはcurrdir` で示されるカレントワーキングディレクトリにある ‘cloud.png’ という名前のラフな図です。
この画像を開いて、numpyの配列に格納します。
import sys
from os import path
import numpy as np
from PIL import Image
import wikipedia
from wordcloud import WordCloud, STOPWORDS
currdir = path.dirname(__file__)
def get_wiki(query):
title = wikipedia.search(query)[ 0 ]
page = wikipedia.page(title)
return page.content
def create_wordcloud(text):
mask = np.array(Image. open (path.join(currdir, "cloud.png" )))
stopwords = set (STOPWORDS)
wc = WordCloud(background_color = "white" ,
max_words = 200 ,
mask = mask,
stopwords = stopwords)
wc.generate(text)
wc.to_file(path.join(currdir, "output.png" ))
if __name__ = = "__main__" :
query = sys.argv[ 1 ]
text = get_wiki(query)
create_wordcloud(text)
|
次のタスクは、ストップワードのセットを定義することなので、set(STOPWORDS)
を使用します。
WordCloud()を使ってPythonのオブジェクトでワードクラウドを作成します。
background_color、max_words
(ここでは単語の上限を200とします)、mask
、stopwords
などのパラメータを渡します。
次に、 wc.generate()
を使用して、パラメータとして生のテキストを渡します。
生成されたワードクラウドをファイルに保存することができます。
ファイル名は output.png
とします。
これらの2つの関数を実行すると、初回は30-40秒かかりますが、回数を重ねるごとに短縮されるかもしれません。
完全なコードと出力画像は次のセクションに示すとおりです。
PythonによるWord Cloudの完全実装
結果は以下の通りです。
まとめ
Pythonを使ったワードクラウドの作成は、あらゆるテキストコンテンツで使用されている最大数の単語を視覚化する最も簡単な方法の1つです。
このコードを実行するだけで、テキストで議論されている主題やトピックを簡単に理解することができます。
この記事を楽しんでいただければ幸いです。
私たちは下のコメント欄であなたのフィードバックを知ってみましょう。