【Python入門】iPad×Google Colabalatoryで手軽にTwitter分析

今回はiPadを利用した“PythonでのTwitter分析”について理解を深めます。

iPadで手軽にPythonで遊べないものかと考えて調べてみるとGoogle Colabalatoryという存在が良さげだと色々なところで紹介されています。

ちなみに、このGoogle Colabはブラウザ上でプログラム出来るコーディング環境です。では、これはどう使えうるものなのか?

今回は、シンプルにTwitterでのテキスト分析をiPadを使ってGoogle Colab上で実践してみたいと思います。(‘◇’)ゞ

今回の論点整理

今回のアウトプット

今回iPadのみでGoogleColabalatoryを介してtwitter分析をします。

以下のようなアウトプットをiPad上でキーワードを指定してサクッと出力できるようにします。

ちなみに、上記は「iPad Python」で検索した結果になります。

やはり私のようにiPad Proを利用したり、Kindleでpythonの勉強を模索したり、iOSのアプリづくりをするべくswiftを使ったりなどの傾向が見えます。

上記は自由に単語も指定できるので、iPadのみで無料でマーケターごっこなどもできてしまいそうです。

では何をiPad上でどのようなことを留意すればよいのか。以下にまとめます。

ツマ

テキスト眺めるだけでも色々と考察出来て面白いね!

抑えるべきポイント

上記を実現する手順について下記に備忘録的にまとめたいと思います。

抑えドコ!
  • iPad上でのPython環境について
  • Google colabの特徴と活用
  • ツイートデータの読み込み
  • テキストの形態素解析
  • ワードクラウド化

順に触れていきます。

”iPad×GoogleColab”活用ポイント

① iPadでのPython活用 (Juno)

さて、まず最初に何を実現したいかというとコレです。

iPad完結で分析・考察できる環境

これを創り上げたいと思います。ただ、デフォルトのアプリではできないため、これは当然別途アプリが必要です。

Pythonを書くアプリは色々ありますが、pandasや統計・計算用のライブラリを利用することを考えるとjunoというアプリが一つの有効な手段になります。

使い方は以前記載しています。

ただ、1点問題があります。

それは何かというとアプリが有料であることと、登録がやや煩雑(AWS/AzureのJupyterLabなるものを登録してつなげる設定が必要)であることです。

そのため、もっとシンプルに手軽に使える環境がないかと思うわけです。

ワタシ

iPadでもプログラミング環境ができるとどこでも勉強出来てとても便利です

② Google Colabaratoryの活用 

そこで今回、お勧めしたいのが、このGoogle ColabaratoryといわれるGoogle大先生のクラウド上のソフトです。

これは何かというと、Googleさんが創った、オンライン上で機械学習を回すことが出来るソフトです。jupyter notebookとUIは似てます。

で、これ、何がすごいかというと

クラウド上の処理なのでマシーンスペックに依存しない

という点です。つまりiPadであってもできちゃうというわけです。しかもさらにポイントがでかいのが

Google driveにマウントできるが出来る

という点です。そのため、iPadを介したダウンロードアップロードで苦戦することが少ないのです。

そのため、こいつをうまく使いこなせば、iPadで学習環境を創るのは割と楽にできます。

これも概要はググると腐るほどでます。

■ご参考リンク(外部リンクに飛びます)

余談ですが、自分のとった写真などをアップしていたらまさにそれを材料にディープラーニングを利用した分類わけを実験するなども出来そうですね。

詳細は至るところで使い方が出ています。

■ご参考リンク(外部リンクに飛びます)

③ツイートデータの読み込み

では実際に、Google Colabでデータの読み込みと分析を試みます。

iPad上で「Google Colabolatory」で検索してログインして頂いたら特別な環境設定なく、早速コードがウェブ上で書くことが出来ます。

ここでpipでインストールをしたり関数を使ってAPIを参照したりなども問題なくできるわけですのでまずは下記のようなコードでまずはツイッターと連動します。

pip install tweepy

#インストール済みでなければ一番下の参照
import tweepy
import datetime
import pandas as pd

## 認証処理
consumer_key = "ご自身のID"
consumer_secret = "ご自身のID"
access_token_key = "ご自身のID"
access_token_secret = "ご自身のID"

auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token_key, access_token_secret)
api = tweepy.API(auth)

尚、ツイッターの管理者の登録やAPIの設定については下記に記載しております。

これで認証ができたはずなので、その後に検索したい単語などを指定していきます。

#検索キーワードを設定する。
searchWord = ["iPad","Python"] #検索ワード複数

# twitter内を検索する
status_data = []
for status in api.search(q=searchWord, lang='ja', result_type='recent', count=1000): #qに検索したいワードを指定する。
    status_data.append([status.created_at,status.text, status.favorite_count,status.retweet_count])


columns_name = ["time","text","fav","RT"]        
df = pd.DataFrame(status_data, columns=columns_name)

print(len(df))

ちなみにTwitterの管理者の権限が無料版の場合は恐らく100個までしか検索が出来ないと思います。(上記len(df)はマックス100になります)

このデータを元に解析へと移ります。

ワタシ

基本コピペでイケると思います。

④テキストの形態素解析

上記を踏まえてテキストマイニングへと移ります。

コードとしては以下のようにまずはまとめます。

str_df=df['text']                   # dataframeから指定列を抽出
dflst = str_df.astype(str).tolist() # 抽出したものをListに変換
dfstr = ' '.join(dflst)             # 空白文字で結合
print(dfstr)                    

txt = dfstr

その後にjanomeをインストールして形態素解析(品詞分解)をしていきます。

pip install janome

# Janomeで形態素分析 python解析器janomeをインポート - 1
from janome.tokenizer import Tokenizer

# 形態素解析用オブジェクトの生成 - 2
text = Tokenizer()

# txtから読み込んだデータを形態素解析 - 4
lines = txt.split("\r\n")
for i in lines:
    print(i)
    print("\n")
    text_c = text.tokenize(i)
    for j in text_c:
      print(j)

print("\n")

# テキストを一行ごとに処理 - 5
word_dic = {}
lines_1 = txt.split("\r\n")
print(lines_1)
print("\n")
for line in lines_1:
    malist = text.tokenize(line)
    for w in malist:
	    word = w.surface
	    ps = w.part_of_speech # 品詞 - 6
	    if ps.find("名詞") < 0: continue # 名詞だけをカウント - 7
	    if not word in word_dic:
		    word_dic[word] = 0
	    word_dic[word] += 1

これで下準備は完了です。

ちなみにテキストマイニングの仕組・考え方については以下にまとめております。

⑤ワードクラウド化

後は今回利用するwordcloudに流し込んでアウトプットします。コードは以下の通りです。

from wordcloud import WordCloud

text = ' '.join(word_dic)

# 除外したい単語 早稲田の意味不明なやつを消すので色々登録
stop_text = ["https","python","iPad"]

#日本語のパスの指定 (インストールしないとエラーになる部分です。後述します)
fpath = '/usr/share/fonts/truetype/fonts-japanese-gothic.ttf'

wordcloud = WordCloud(
    background_color="white",#背景を白に
    stopwords = stop_text,
    font_path=fpath,
    width = 800,height=600).generate(text)

#pngで保存する
wordcloud.to_file("./textmining.png")

そして、ここが一番苦戦したところなのですが、このまま解析をすすめると以下のような豆腐だらけのアウトプットになります。

何がおきているかというと文字化けです。つまり、日本語のフォントを指定しないといけません。散々ググッた結果以下をいれこめばiPad上でもいけます。

!apt-get -y install fonts-ipafont-gothic

これで指定フォルダにゴシックのフォントが保存されて、日本語を扱う加工の下準備ができました。これが出来ればめでたく日本語アウトプットができます。

気にならなければコピペでいけるはずです。気になるようであれば、個々の関数の意味を調べてみてください。

押さえておきたいポイントは除外したい単語(stop word)の指定のみです。出力したくない意味をなさない単語はここで指定して消しましょう。

上記が完了すればめでたくそれっぽい画像が出力されます。

ちなみにブラウザ上で出力するにはこのコードを入れるとできます。

from IPython.display import Image, display_png
display_png(Image('./textmining.png'))
タシ

文字化けとか□の豆腐現象は起きるだけでイラッとしてしまいます。

まとめ 

上記を活用する際に、理解しておくべきポイントは以下5点です。

今回の抑えドコ
  • iPad上でのPython環境について
    ▷junoも良いがiPadではGoogle Colabolatoryがオススメ!
  • Google colabのiPad利用・特徴
    ▷pipなどや外部APIの利用なども問題なく使える!
  • データの読み込み
    ▷ツイッターの管理者登録をして自身のアカウントからAPIを通す!
  • テキストの形態素解析
    ▷日本語設定に注意!基本はコピペで出来る!
  • ワードクラウド化・出力(ストップワードも)
    ▷ストップワードで調整して出力しまくる!

上記で自分はiPad Pro(初期)で問題なく出来ています。しかも一度通せれば、単語を変えて出力するのもすぐに出来ます。

しかもiPadで完結するため、移動中の電車や出先やカフェなどでもサクッとできるのが素晴らしいです。

既にiPadをもっていてPythonを学び始めた!という人はオープンデータを使うことで達成感やワクワク感を手軽に感じられるのでオススメします。

ご精読頂きありがとうございました。
m(_ _)m

【参考】Python初心者のお勉強のお供

上記の内容と併せて実務で活かすという視点では下記の参考図書も合わせて確認すると理解が深まります(-_-)

▼オススメの参考書籍(Kindle)▼

created by Rinker
¥2,138 (2024/11/23 08:42:40時点 Amazon調べ-詳細)

▼おすすめの動画学習(Udemy)

>>ゼロからPythonで学ぶ人工知能と機械学習 【2023年最新版】

>>現役シリコンバレーエンジニアが教えるPython 3 入門 + 応用

>>独学で身につけるPython〜基礎編〜【業務効率化・自動化】

【参考】Python初心者が抑えたいポイント集

Python(主にデータ分析・自動化)に関しては

下記に実践したポイントをまとめています。基本的にコピペするだけでそのまま使えます٩( ᐛ )و

業務効率化・自動化においてはGoogle Apps Scriptもセットで学ぶことをオススメ!

こちらもコピペしてすぐに使えます!

PythonとGoogle Apps Scriptどちらを深めようかを迷っていればこちら!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です