LoginSignup
7

More than 3 years have passed since last update.

Google Colaboratoryでありますまいか

Last updated at Posted at 2021-01-07

2020年のうちに読んでおきたい2020年アドベントカレンダーをピックアップ に伴いクソアプリアドベントカレンダーを読んだ。で、「友達がいなくて寂しいので友達を作った(LineBot)」(クソなタイトルである:smiley:) に伴い、Google Colaboratoryというものをよく知らなかったので調べた。

Google Colaboratory便利だ!便利なのにGSuiteで余り使われていない気がするから使おう!という記事です。

ポイント

  1. Python使える
  2. だから簡単なスプレッドシート、CSV、その他整形に使える
  3. そして共有簡単

概説:Google Colaboratoryで初めての機械学習

Colab ノートブックは、Colab がホストする Jupyter ノートブックです。Jupyter プロジェクトの詳細については、jupyter.org をご覧ください。

ともかくPythonコードを共有して実行できる、GSuite利用企業的には期待が広がるツール。機械学習というよりちょっとした神エクセル作るくらいならこれ使ったほうが夢あるよという話である。機械学習という言葉に恐れる必要はなく。以下基本中の基本から、できること、便利なことと、できないこと、べからずまでを書くので参考になると嬉しいです。

基本:Helloworld

テストコードを実行してみよう。再生ボタン押すだけ。
image.png

1. Python使える

普段Pythonを主開発で触らないのでこれはチャンス。
Slackにメッセージ送信もできます。

Slackにメッセージ送信

以下、pythonとWebhookでSlackにメッセージ送信するPython。

Slackに送信する
PythonでSlackのIncoming Webhookを試してみる
Webhookはワークフロービルダーからも設定できるこれ。

image.png
でメッセージを送るとこうなる。
image.png

import requests, json;
from bs4 import BeautifulSoup;
web_hook_url = 'https://hooks.slack.com/services/xxxxxxxxxx/xxxxxxxxxx/xxxxxxxxxx'

requests.post(web_hook_url, data = json.dumps({
    'text': 'Slackでありますまいか', # 送りたい内容ですぞ
    'username': 'ありますまいか'  # botの名前ですぞ
}));

Colab上ではこう。
image.png
以上。

2. だから簡単なスプレッドシート、CSV、その他整形に使える

有用そうなのがこれ。某かのファイルからデータ読込ができる。

まずCSV:How to read csv to dataframe in Google Colab
これは見る限り Python Pandas PyInstallerで5日間で「操作ログ」CSV整形ツールを作る 等と組み合わせると便利。

以下サンプルCSVを読み込んだところ。
image.png
ついでに操作ログも試してみたら動いた。
image.png

Colaboratoryのデータの入出力まとめ で網羅されているので参照のこと。

CSV集計

はてなブックマーク3万件にみる技術トレンド2020年まとめ 等よろしく問合せ傾向分析のようなことも試せそう。

3. そして共有簡単

で、せっかくなら皆に使ってもらいたいですよね。
はい、普段のGSuiteの使い方と一緒です。権限を与えてシェア。

image.png

ところで :thinking:

そうなると。これGASとかと連携したら相当便利そうだなと思いませんでしょうか。私は思いました。以下は使用上の留意点です。

[できない] 自動実行

現状:できない。 ようです。
Selenium とか、無理やり定期実行させる仕掛け でどうにかしているようだ。少々トリッキー。

[できないこともある] スクレイピング

冒頭の友達がいなくて寂しいので友達を作った(LineBot)で行われていたスクレイピングというものに戻ると、例えば以下が詳しい。PythonでHTMLを解析してデータ収集してみる? スクレイピングが最初からわかる『Python 2年生』

scraiping_sample.py
import requests
from bs4 import BeautifulSoup

# Webページを取得して解析しますぞ
load_url = "https://ameblo.jp/masayukimakino/entry-11084331526.html"
html = requests.get(load_url)
soup = BeautifulSoup(html.content, "html.parser")

# すべてのstrongタグを検索して、その文字列を表示しますぞ
for element in soup.find_all("strong"):    # すべてのstrongタグを検索して表示しますまいか
    print(element.text)

すると例えばこんなことができる。
image.png
スクレイピングは違法?3つの法律問題と対応策を弁護士が5分で解説 を読みましょう。

利用目的
スクレイピングの対象
アクセス制限の遵守
利用規約

Webスクレイピングの注意事項一覧
Webスクレイピングの法律周りの話をしよう!
を考えた上でうまくツール化する必要がある。よって要・勉強。Qiitaのトレンド(ランキング)を取得してSlackに送信する 等先人の記事を参考に。
社内資料などなどを内部的に解析するには便利そう。

[十分に注意] Githubに保存

もう一つ、私がやらかしそうだったので反省文兼ねて追記。
image.png

Githubにコピーを保存する簡単機能もついています。
が、社内利用する場合にはそれがGithubに公開されてしまうことになるので十分注意。

結論

冒頭に紹介したJupyterというやつ、まだJupyter Notebook使ってるの? VS CodeでJupyter生活 (.py)で快適Pythonライフを?! も参考にさらに発展利用させることができそう。
特にPython触ったことがない方、ちょっと試してみるにはお手軽です!
以上社内Gsuiteツールにまつわるお勧めでした。

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
7