Python

ワードクラウドとは?使い方や作り方、無料ツール一覧など全て解説

(最終更新月:2022年9月)

✔このような方へ向けて書かれた記事となります

「ワードクラウドって何?」

「ワードクラウドってどうやって使うの?」

「ワードクラウドでアプリが作りたい!」

✔当記事を通じてお伝えすること

  • ワードクラウドとは?
  • ワードクラウド画像の作り方
  • 無料のワードクラウドツール
  • ワードクラウドアプリの作り方

当記事をご覧いただくと、ワードクラウドの基本がわかるのはもちろん、実際にWord Cloudを使ったアプリやその作り方もわかります。

ワードクラウドを使ったアプリはこちらです。

https://react.itc.tokyo/blog-cloud

ホームページのテキストデータを抜き出し画像化するツールです。

ぜひ遊んでみてください。

アプリの作り方やコードを見てみたい方はこちらです。

https://note.com/itc/n/n3d4f31e43090

ワードクラウドとは?

ワードクラウドとは、テキストデータを画像化できるプログラミングパッケージです。

例として、ワードクラウドを使ったアプリ「ブログクラウド」では、URLを入れるとホームページ上のテキストを抜き出し、ワードクラウド化してくれます。

こちらのページを画像化しました。(https://itc.tokyo/django/foreignkey/)

特徴として以下の4つをご説明していきます。

  • どうやって画像を作ってるの?
  • ワードクラウドは無料?費用は?
  • ワードクラウドが扱える言語
  • そもそもテキストマイニングって何?

どうやって画像を作ってるの?

ワードクラウドは、与えられた文章の中で、重複して出てくる単語の数を大きさに反映し、画像化します。

AIの分野である「自然言語処理」の技術を使うことで以下のような処理がおこなわれています。

  1. 文章を単語に分ける
  2. 同じ単語をまとめる
  3. 単語の数に応じて、文字サイズや文字の色、文字の向きを決める
  4. 画像として表示する

一定の文字を除外して画像を作ることなどもできます。

ワードクラウドは無料?費用は?

ワードクラウドは、オープソースパッケージです。

オープンソースとは、プログラムのソースコードを無償で公開すること。

誰でもプログラムの利用や改良、再配布がおこなえます。

つまり、費用はかかりません。

ワードクラウドが扱える言語

ワードクラウドは、プログラミング言語「Python」のパッケージです。

ワードクラウドは標準のライブラリではありませんので、以下のコマンドでインストールする必要があります。

pip install wordcloud

pipのインストール方法について知りたい方はこちら。

Pythonのインストールがまだの方はこちらをどうぞ。

そもそもテキストマイニングって何?

ワードクラウドは、テキストマイニングの一種

なぜならテキストマイニングとは、文章を解析し、有益な情報を取得することをいい、まさにワードクラウドがおこなっていることだからです。

例えばテキストマイニングでは、以下のようなことをおこないます。

  • 文章を単語に分割
  • 出現の頻度を調べる
  • 単語の相関関係を分析する

ワードクラウドは画像化してしまうので高度なことはできませんが、テキストマイニングの入り口として誰でも簡単に触れられるのが、その人気の理由です。

ワードクラウド画像の作り方

ホームページをワードクラウド化できる自作アプリ「ブログクラウド」の使い方を解説します。

使い方はとても簡単です。

  • サイトへアクセス
  • ワードクラウド化したいサイトのURLを入力
  • 除外したいワードを指定
  • イメージを取得

サイトへアクセス

以下のページが「ブログクラウド」のページです。

https://tools.itc-app.site/blog-cloud

もちろん費用等は一切かかりませんので、ご自由にどうぞ。

ワードクラウド化したいサイトのURLを入力

アクセスをしたらまずは、ワードクラウド化したいサイトのURLを入力。

除外したいワードを指定

除外したいワードがあれば、入力。

複数ある場合は、スペースで区切ってください。

イメージを取得

イメージの取得をしましょう。

これだけでお好きなページのワードクラウド化が完了です。

ワードクラウドが作成できるツール

ブログクラウド以外のワードクラウドツールをご紹介します。

  • User Local
  • ファンブライト@ラボ

それぞれ簡単にご紹介します。

User Local

https://textmining1.userlocal.jp/

User Localはデザイン性にかけるものの、文章の解析ができるのが特徴。

ファンブライト@ラボ

https://lab.fanbright.jp/wordcloud/

ファンブライト@ラボはテキストだけでなく以下のワードクラウド化ができます。

  • テキスト
  • Webページ
  • Twitter検索
  • リスト

細かい設定もできるので、いろいろ試してみるととても面白いですよ!

ワードクラウドアプリが作れる7ステップ

こちらでは「自分でもアプリを作りたい!」という方のために簡単な流れをご説明していきます。

  1. 必要なPythonパッケージのインストール
  2. 日本語のフォントをOSにインストール
  3. テキストを単語ごとに分解
  4. 記号などを削除し、リスト→テキストへ
  5. ワードクラウドのフレーム作成
  6. フレームの中にテキストを埋め込む
  7. 画像を保存する

必要なPythonパッケージのインストール

Pythonでは標準ライブラリに用意されていないものはpipを使いインストールする必要があります。

インストールするパッケージは以下のとおり。

  • wordcloud
  • Janome
pip install wordcloud Janome

まとめてインストールしてしまいましょう。

日本語のフォントをOSにインストール

日本語のテキストを扱う場合、フォントをインストールしておきましょう。

こちらはUbuntu OSの場合の方法です。

✔フォントのインストール

sudo apt install -y fonts-ipafont

✔キャッシュを更新します

fc-cache -fv

以下のファイルが確認できればOKです。

usr > share > fonts > opentype > ipafont-mincho > ipam.ttf

テキストを単語ごとに分解

ワードクラウドパッケージにテキストを渡す前に、単語は分割してなければいけません。

まずは「Janome」ライブラリを使い、以下のように取得したテキストを単語ごとに分けましょう。

text = "<既存のテキスト>"
t = Tokenizer()
tokens = t.tokenize(text)
tokens_list = [token for token in tokens]

tokens_listを出力すると以下のようになります。

>>> for token in tokens_list:
>>>    print(token)

【	記号,括弧開,*,*,*,*,【,【,【
実例	名詞,一般,*,*,*,*,実例,ジツレイ,ジツレイ
付	名詞,接尾,一般,*,*,*,付,ヅケ,ズケ
】	記号,括弧閉,*,*,*,*,】,】,】
Django	名詞,固有名詞,組織,*,*,*,Django,*,*
 	記号,空白,*,*,*,*, ,*,*
User	名詞,固有名詞,組織,*,*,*,User,*,*
モデル	名詞,一般,*,*,*,*,モデル,モデル,モデル
を	助詞,格助詞,一般,*,*,*,を,ヲ,ヲ
カスタマイズ	名詞,一般,*,*,*,*,カスタマイズ,カスタマイズ,カスタマイズ
する	動詞,自立,*,*,サ変・スル,基本形,する,スル,スル
方法	名詞,一般,*,*,*,*,方法,ホウホウ,ホーホー
Django	名詞,一般,*,*,*,*,Django,*,*

各行がそれぞれ、JanomeのTokenクラスです。

>>> print(type(tokens_list[0]))
<class 'janome.tokenizer.Token'>

単語とその種類が記載されています。

記号などを削除

記号などはテキストマイニングに不要なことが多いです。

なぜなら意味を持った単語の数や関係性を調べるのがテキストマイニングだから。

アプリに応じて不要なものを省くために以下の処理をします。

#1 先程のtokens_listから新しいリストを作成する
new_tokens = [token for token in tokens_list if <単語選びの条件>]

#2 JanomeのTokenクラスから実際の単語だけを取り出す
for_wc_list = [<単語を取り出す処理> for token in new_tokens]

#3 for_wc_listを一つのテキストにする
for_wc_txt = " ".join(for_wc_list)

詳しいコードは以下のnoteで、ブログクラウドのコードとともに公開しています。

目次は全てみれますので、コードを知りたい方はぜひご覧ください。

https://note.com/itc/n/n3d4f31e43090

ワードクラウドのフレーム作成

いよいよワードクラウドを作っていきます。

まずは画像のフレームを作成

FONT_PATH = "/usr/share/fonts/opentype/ipafont-mincho/ipam.ttf"

#フレームの高さ、幅、フォントを指定
wc = WordCloud(width=1280, height=853, font_path=FONT_PATH)

先程インストールしたフォントも使っています

フレームの中にテキストを埋め込む

フレームにテキストを埋め込むと自動で画像が生成されます。

wc.generate(for_wc_txt)

ワードクラウド画像を保存する

ファイルパスとファイル名を指定して、画像を保存。

wc.to_file("/<保存したい場所>/<ファイル名>.png")

もしブログクラウドの実例コードを詳しく見たい方は、こちらの記事「【React × Django】ワードクラウドアプリの全コードを徹底解説|note(540円)」をどうぞ。

まとめ:ワードクラウドで「自然言語処理」を体感

当記事の内容をまとめます。

  • ワードクラウドは、文章を解析し画像に落とし込む技術
  • ワードクラウドを作れる無料サービスはさまざま
  • ワードクラウドアプリを作るのはそんなに難しくない

ワードクラウドは、「自然言語処理」技術を使い、文章を画像化する技術です。

誰でも無料で開発できるので、AIに触れてみたい方にはおすすめです。

筆者自作のアプリ「ブログクラウド」では、ホームページ中の文章を集めて画像化できます。

もし実際のコードをご覧になりながら、自身のアプリ開発を進めたいならこちらのnote(一括540円)をどうぞ。