2017-09-09

『Pythonによるスクレイピング&機械学習 開発テクニック』レビュー

『Pythonによるスクレイピング&機械学習 開発テクニック』を読了しました。



Pythonによるスクレイピング&機械学習 開発テクニック BeautifulSoup,scikit-learn,TensorFlowを使ってみよう』について、レビューします。


Amazonの紹介によると

機械学習の重要性は、日々高まっているものの、いったいどのように実務に取り入れたら良いのかという声を聞くようになりました。
本書では、実際にデータの集め方から、機械学習を活用するところまで、実践的なPythonのサ ンプルコードで紹介します。

と書いてありました。Pythonを利用して、データを集めて整理するところから始められる参考書はなかなかなかったので、これは!と思い『Pythonによるスクレイピング&機械学習 開発テクニック』を購入しました。実際に買ってみて試したうえでレビューしていきたいと思います。




目次


  • 買った経緯
  • こんな人におすすめ
  • 本の内容
  • できるようになったところ

買った経緯


私はもともと趣味でエクセルを使って、教育のオープンデータ分析をしていたのですが、どうしてもHTMLからデータを取ってくるのが面倒で、調べてみるとスクレイピングという技術を使えばわりとできそうだとわかりました。スクレイピングについてはこちら



「Webスクレイピングとは何ぞや?」という疑問が浮かんできたので調べてみた。 - おしい県でWebに携わって働く人のブログ

最近よく聞く、、、わけではありませんが、なんとなく自分の中で「Webスクレイピング」について知りたくなったので、ググったりして調べてみました。



調べてみるとデータを扱ったり機械学習に関してはPythonをよく使うみたいで、ちょうど両方扱っているみたいなので、購入しました。


ちなみにこの本を購入した時点では、ノンプログラマではありません(*HTML、CSS,
JS、jQuery、Rubyを1年学習済み)でしたが、Pythonは書いたことがありませんでしたので、ProgateのPythonコースと、ドットインストールのPythonコースを全部学んで、キャッチアップしてからスタートしました。

Progate(プロゲート) | Learn to code, learn to be creative.

Progateはオンラインでプログラミングを学べるサービスです。プログラミングを学んでWEBアプリケーションを作ろう。


Python 3入門 (全31回)

データ解析や機械学習などにも利用される、シンプルなオブジェクト指向型言語であるPythonについて見ていきます。

こんな人におすすめ


上記に書いたような、データサイエンス・機械学習に興味があるような人や、Pythonを使って何かやってみたいという人にはおすすめです。実際まったくの初心者でも、コードを移していくとスクレイピングできるコードを自分で作ったりできるようになります。


ただし、全くのプログラミング初心者では難しいので、基本的なHTML、CSS、Javascript、jQueryが理解できる程度の知識が必要です


というのも、どうしてもスクレイピングを利用するとなると、HTMLの力が知識が前提となってしまうからです。それを操作するCSS、Jsの知識は必要となります。無料でできるので、さきほどのProgateやドットインストールでキャッチアップしましょう。


また、僕のように機械学習エンジニアに興味があるくらいのレベルであれば、実際にコードを書いて学ぶことができるのでおすすめですが、機械学習はマシンのスペックゲーになることが多かったので、機械学習をちゃんとやりたい場合はちゃんとしたマシンを用意しないとだめですね。僕はノートパソコンで試したら死亡しました。


本の内容



目次はこんな内容となっています。(一部省略)


  1. クローリングとスクレイピング
    1. データのダウンロード
    2. Beautiful Soupでスクレイピング
    3. CSSセレクタについて
    4. リンク先をまるごとダウンロード
  2. 高度なスクレイピング
    1. ログインが必要なサイトからダウンロード
    2. ブラウザを経由したスクレイピング
    3. スクレイピング道場
    4. Web APIからのデータ取得
    5. Cronと定期実行なクローリング
  3. データソースと書式・設定
    1. テキストデータとバイナリデータ
    2. XMLの解析
    3. JSONの解析
    4. YAMLを解析する
    5. データベースについて
  4. 機械学習
    1. 機械学習とは
    2. 機械学習のはじめの一歩
    3. 画像の文字認識
    4. 外国語文書の判定
    5. サポートベクターマシンとは
    6. ランダムフォレストとは
    7. データの検証方法について
  5. 深層学習に挑戦してみよう
    1. 深層学習とは何か
    2. TensorFlowのインストール
    3. JupyterNoteBookのすすめ
    4. TensorFlowの基本をおさえよう
    5. TensorBoardで可視化しよう
    6. TensorFlowで深層学習に進もう
    7. Karasでもっとらくに深層学習をしよう
  6. テキスト解析とチャットボットの作成
    1. 日本語解析(形態素解析)について
    2. Words2Vecで文章をベクトル変換しよう
    3. ベイズの定理でテキストを分類しよう
    4. MLPでテキスト分類しよう
    5. 文書の類似度をn-gramで調べよう
    6. マルコフ連鎖やLSTMで文書を作成しよう
    7. チャットボットの作成
  7. 深層学習を実践してみよう
    1. 類似画像の検出をしよう
    2. CNNでCaltech101の画像分類をしよう
    3. 牛丼屋のメニューを画像判定しよう
    4. OPEN CVで顔認識
    5. 画像OCR・連続文字認識に挑戦しよう
  8. APPENDIX 作業の準備と環境構築
    1. Dockerで環境構築しよう
    2. Python + Anacondaで環境を整える


Pythonの環境構築から、スクレイピング、データの操作、APIの利用、機械学習等データサイエンスの基礎部分に関する内容が、ソースコードとともにかなり丁寧に解説されています。Amazonの本の紹介でもあった通り、Web上のデータをスクレイピングし、データベースに格納、必要なデータを機械学習でコーディングするという一連の作業がこの本を通して学べたと思います。


また、Python初心者も想定して、親切にもWindows、Mac両方で環境構築の説明ランがあります。WindowsとMacの両方の環境構築方法が記述してあります。なので、初心者でも十分進められると思います。最悪環境構築につまったら、Cloud9というWeb上で環境構築を行えるプラットフォームを利用すればなんとかなります。

たった3分で?!初心者向けPython開発環境構築3ステップ | 侍エンジニア塾ブログ | プログラミング入門者向け学習情報サイト

こんにちは!インストラクターの井上(@InoIno_iesa )です。 Python学習したい!そう思っても プログラミングを始めるところにすらたどり着けない という方もいらっしゃるかと思います。 実際、プログラミングの「環境構築」は中級者でも数時間・数日はまってしまう可能性のあるものです。 しかし、そんな 環境構築を一瞬で終わらせる方法 があります! ...


できるようになったこと、この本の知識を活かして試したこと


この本を使ってできるようになったこととしては、seleniumを利用した基礎的なスクレイピングと、APIの利用、pandasとsqliteを利用してデータベースをいじり、matliolibやnumpyでグラフ描写する力、cronを利用してスクレイピングを自動で定期実行などですね。


実際に試したこととしては、TinderのAPIをPython上で利用して、Facebook上の既婚者が利用していないか調べたり、そういう情報をデータベースに格納したりとか....

PythonでTinderのAPIをいじる

PythonでTinderのAPIを利用する TinderにはAPIがあるそうなので、さっそく利用してみた。 PythonはCloud9というクラウドで環境構築してある。 TinderのAPIを使うために必要なのはFacebookのアクセストークンと、Pynderというモジュール。 Pynderを準備 pythonでapiをいじるためのpynderをinstall $ sudo pip install pynder インストールされたみたい。 インストールされたか確認 apiいじるコードをgithubからコピペする https://github.com/charliewolf/pynder import pynder session = pynder.Session(facebook_id, facebook_auth_token) session.matches() # get users you have already been matched with session.update_location(LAT, LON) # updates latitude and longitude for your profile session.profile # your profile.


PythonでTinder APIを使ってネトストとサイバーナンパ師やってみた

Python TinderのAPI Pynderを利用する こんにちは。突然ですが、ナンパしたい。僕は陰キャラなので、歌舞伎町でナンパに繰り出すことなんてできない。 そういえば前回、 PythonでTinderのAPIをいじる で書いた通り、PythonでTinderのAPIをいじれた。原理的には自分のアカウントのFacebook access ...

pythonでsqlite3を利用してデータを挿入する

受験・教育学、心理学、社会学、プログラミング・書評とかで記事書いてます。


Cloud9上で実装したPythonスクリプトをHerokuにディプロイしてして定期実行する手段を生み出したり...


【Pythonで定期処理】 Cloud9を利用して、Seleniumでherokuから定期実行する

Python Cloud9を利用して、定期処理をherokuから行う Cloud9というIDEを利用して、PythonからSeleniumを利用し、あるサイトでいいねを自動化するプログラムを作った。 これを定期実行を行いたい。検索してみると、crontabを使えば定期実行ができるようだが、cloud9上では実行できないらしい。 ほかの代替案を考えたとき、 heroku ...


定期実行プログラムをかけるようになったから、Twitterのフォロワーを自動いいねしたりするプログラムを書いたり


【Python twitter】tweepyを利用してlike、follow、removeを実装したbotを作る

なぜやるか ・ブロガーをやっているので、自分のファンになってくれる可能性があるユーザーをフォローしたい。 ・そのユーザーのコメントにいいねして、後で見返したい。フォローしてきたスパムアカウントはりむーぶしたい。 ・毎日自分の手でやるのは社会人になってしまったので時間がない。ということで自動化したい。 - python 3 - Cloud9を利用 - すでにherokuにpythonプロジェクトをdeploy済みです。 deployまでは下の記事を参考にしてください! やりたいこと 0. とりあえずtwitter apiを使ってログインしてみる 1. それぞれのユーザー名を取得し、そのユーザーのコメントにいいねとフォローを行う 2. 自分のタイムラインからツイートを10つ取得し、上から下までいいねを行う 3.フォロワー数が100未満のユーザーはすべてりむーぶする 4. heroku schedulerを利用して、上記の機能を定期処理で自動化する 0. pythonのtwitter apiであるtweepyを利用してログインしてみる APIを利用して、ツイッターからの情報とるためには、最初に情報を準備しておかなければならない。詳しいことはこの記事に書いてあるので、参照してほしい。 # Tweepyライブラリをインポート import tweepy # 各種キーをセット CONSUMER_KEY = 'xxxxxxxx' CONSUMER_SECRET = 'xxxxxxxx' ACCESS_TOKEN = 'xxxxxxxx' ACCESS_SECRET = 'xxxxxxxx' auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET) auth.set_access_token(ACCESS_TOKEN, ACCESS_SECRET) #APIインスタンスを作成 api = tweepy.API(auth) PythonでTwitterを使う 〜Tweepyの紹介〜 http://kivantium.hateblo.jp/entry/2015/01/03/000225 Tweepyでpythonについて呟いたアカウントをフォローしまくってみた - 駆け出し眼鏡のプログラミング道場 http://taikomegane.hatenablog.jp/entry/2017/07/08/151110 1.


わりとやりたいことができるようになった感じですね。


アマゾンで最近見たら書店より少し安くなっていたので、

  • Pythonに興味がある
  • データサイエンスに興味がある
  • しかもなんか意味あることを実践的にやりたい
という人のは強くおすすめします!


Pythonによるスクレイピング&機械学習 開発テクニック BeautifulSoup,scikit-learn,TensorFlowを使ってみよう
クジラ飛行机
ソシム
売り上げランキング: 13,688

注目の投稿

めちゃくちゃ久しぶりにこのブログ書いたw 更新3年ぶりw > 多様性というゲームは尊厳と自由を勝ち取るゲームなのかもしれないな。  もともとツイッターでツイートした内容なんだけど、ちょっと深ぼる。 ----- 自分は男 x 30代x 二児の父 x 経営者 x 都心(共働き世...