LoginSignup
1
3

More than 3 years have passed since last update.

Google Formへの回答を元にGoogle Colaboratoryで日本語ワードクラウドを作る

Last updated at Posted at 2020-09-24

こんにちはGeraldです。
Google Formsで集めた回答をもとに、その場でワードクラウドを作って、セミナー参加者に見せたい!というご要望をいただき、誰でも実行できる方法を考えてみました。思いの外好評だったので手順をまとめます。

準備

  • Googleアカウントを作る
  • Google Formsでアンケートフォームを作る
  • アンケートフォームの回答をGoogle SpreadSheetに書き出しておく
  • Google Colaboratoryでノートブックを作る

ソースコード

wordcloud.py

fileId = '対象となるGoogle SpreadSheetのIDをここに書く'

#ライブラリのインポート
from google.colab import auth
from wordcloud import WordCloud
import gspread
from oauth2client.client import GoogleCredentials

#Google Driveへの接続要求
auth.authenticate_user()
gc = gspread.authorize(GoogleCredentials.get_application_default())

# 日本語フォントを取得する
!apt-get -y install fonts-ipafont-gothic

# Google Formsから入力され、Google SpreadSheetに格納されている情報を収集する。
gotWords = []

book = gc.open_by_key(fileId) # 対象となるスプレッドシートを開く
shts = book.worksheets() # スプレッドシートの全シートを取得する。(Google Formsの回答シートが前提なのでシートは1枚)
row_list = shts[0].get_all_values() # 1枚めのシートからデータを取得する。

for j, row in enumerate(row_list):
  if j > 0 : # 1行目はヘッダーなので読み飛ばす
    for i,cell in enumerate(row):
      if (i > 0): # 1列目は回答時刻なので読み飛ばす
        gotWords.append(cell) # 回答時刻を除いて載せていく

splitted = ' '.join(gotWords) #リストを空白区切りで結合する。

# ワードクラウドの作成
fpath = '/usr/share/fonts/truetype/fonts-japanese-gothic.ttf'  # 日本語フォント指定

# パラメータはお好みで
wordc = WordCloud(font_path=fpath,
                  background_color='white',
                  width = 1600, height = 1200,
                  repeat = False,
                  collocations = False,
                  random_state = 42,
                  relative_scaling = 0,
                  contour_width = 0)

wordc.generate(splitted) # ワードクラウドを生成

# ここで画面にワードクラウドを表示。画像をダウンロードして利用。
wordc.to_image()

ポイント

  • Google SpreadSheetのファイルIDはURLの"d/"のあとから、"/edit"の手前まで。
  • Google Driveへの接続要求に来ると、別ページが立ち上がるので、承認して、許諾キーをコピーして、貼り付ける。
  • うまく行かないときは、”ランタイムを再実行”でなんとかなる。

参考にさせていただいたページ

今後

  • Mecabも動かして分かち書き対応する予定です。
  • 出力先を指定して、Webページに反映して、リアルタイムに変わっていくようにする予定です。

最後まで読んでいただき、ありがとうございました。

1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3