Follow #ソシム販売部Twitterアイコン

 

Pythonによるスクレイピング&機械学習 開発テクニックBeautifulSoup、scikit-learn、TensorFlowを使ってみよう

クジラ飛行机

定価
3,520円(本体価格 3,200円)
  • 発売日
    2016年12月6日
  • 判型/ページ数
    B5変型/320ページ(オール2色)
  • ISBN
    978-4-8026-1079-7

いまどきのWebアプリに必須とも言える機械学習・深層学習・スクレイピング・クローリング。
こうした施術を習得するには、サンプルを動かしながら使ってみるのがいちばんの早道。

本書では、まずインターネットのクローリングと、そのデータのスクレイピングを行います。

そして、得られたデータを活用する例として、機械学習や深層学習、画像認識などの例を紹介しています、

実用的なものから、ちょっと笑えるものまで、さまざまなサンプルが紹介されているので、これからPythonをつかって何か新しいアプリを開発してみたい…という人には最適の一冊といえます。

★★著者によるサポートサイトが開設されました★★
http://kujirahand.com/blog/go.php?740

★0 章 機械学習のためのデータ処理とは

0-1 クローリング、スクレイピングそして機械学習

ビッグデータはネットにある
インターネットは宝の山
ブログやSNS – トレンド解析
ネットショップ – 商品データベースの利用
金融情報の利用
画像データの利用
行政機関の情報 – オープンデータ
辞書情報の利用
著作権切れの作品 – パブリックドメイン
機械学習用のデータセットの利用
スクレイピングとクローリング〜データの入手と加工
スクレイピングとは?
クローリングとは?
機械学習で使えるデータ構造

★1 章 クローリングとスクレイピング

1-1 データのダウンロード

Web 上の情報を取得する方法
urllib.request を使ったダウンロード
urlopen() を使ってファイルに保存する方法
Web からデータを取得してみよう
クライアントの接続情報を表示してみよう
任意のパラメーターを付けてリクエストを送信する方法
百人一首を検索するコマンドを自作してみよう

1-2 BeautifulSoup でスクレイピング

BeautifulSoup でスクレイピングしよう
BeautifulSoup のインストール
BeautifulSoup の基本的な使い方
任意のid で要素を探す方法
複数の要素を取得する – find_all() メソッド
DOM 要素の属性について
urlopen() とBeautifulSoup の組み合わせ
CSS セレクタを使う
Yahoo! ファイナンスの為替情報を取得してみよう!

1-3 CSS セレクタについて

HTML の構造確認にはWeb ブラウザーを使おう
任意の要素を選択してみよう
青空文庫で公開されている夏目漱石の作品一覧を得る
CSS セレクタをマスターしよう
CSS セレクタを抽出する練習をしてみよう
CSS セレクタで野菜・フルーツを選択しよう
正規表現と組み合わせる方法

1-4 リンク先を丸ごとダウンロード

丸ごとダウンロードを実現するのに必要な処理
相対パスを展開する方法
再帰的にHTML ページを処理すること
丸ごとダウンロードするプログラム

★2 章 高度なスクレイピング

2-1 ログインの必要なサイトからダウンロード

HTTP 通信について
クッキーについて
セッションについて
requests を使ってみよう
requestsモジュールのメソッド
ログイン時に送信しているデータを調べる

2-2 ブラウザーを経由したスクレイピング

Web ブラウザーを遠隔操作するSelenium について
画面なしブラウザー「PhantomJS」について
Selenium + PhantomJS の実行環境を整えよう
画面キャプチャしてみよう
会員制Web サイトにログインしてみよう
Selenium でスクレイピングする方法
Selenium でDOM 要素を選択する方法
Selenium で要素に対して行う操作
Selenium のドライバに対する操作
より詳しいSelenium のマニュアルについて
JavaScript を実行してみよう

2-3 スクレイピング道場

ページからリンク一覧を列挙する
URL の一覧を一気にダウンロードする方法
タグを解析してCSV ファイルとして出力するSNS で特定ユーザーの作品を全部お気に入りにしよう

2-4 Web API からのデータ取得Web API とは?

なぜ、Web API が提供されるのか?
Web API のデメリットも確認しておこう
Web API を利用しよう – OpenWeatherMap で天気予報
有名なWeb API の紹介
Rakuten Web Service
Yahoo! ショッピングWeb API
Recruit Web Service
ぐるなびAPI
日テレアプリ Web API
Twilio – 電話/SMS
ぽすたん(郵便番号→住所、住所→郵便番号)
OpenWeatherMap – 世界中の天気情報を取得
オープンデータ API
政府統計の総合窓口(e-Stat)
国立国会図書館サーチ
J-SHIS 地震ハザードステーション API
ハローワークのAPI
観光情報 公共クラウドシステムのAPI
国土交通省が提供する位置参照情報 API
国土交通省による国土数値情報のAPI
国税庁による法人番号システム Web-API
国土交通省土地総合情報システムAPI

2-5 cron と定期的なクローリング

定期的なクローリングについて
定期実行を使うメリットを確認
為替情報を毎日保存しよう
cron を仕掛けて毎日一回実行しよう
必要に応じて「nano」エディタをインストール
cron の設定を行う「crontab」
cron 実行時の環境変数に注意
crontab の記述方法の詳細

★3 章 データソースと書式・整形

3-1 Web のデータはさまざまなデータフォーマット

テキストデータとバイナリデータ
テキストデータにおける注意点
XML の解析
Python でXML の解析 – 地域防災拠点データを読む
JSON の解析
JSON の構造
Python でJSON の解析 – 百人一首を読む
JSON 形式を書き出す
YAML を解析する
Python でYAML の読み書き
YAML のデータ形式の紹介
CSV/TSV の解析
Python で単純なCSV ファイルを読む
Python でcsv モジュールを使う
Pandas も使える!
Excel ファイルの解析
Python-Excel をインストールしよう
Python でExcel ファイルを読む
Python でExcel ファイルに書き込む
Pandas を利用してExcel を読み出す方法

3-2 データベースについて

データベースについて
データの保存にはどのデータベースが向いている?
データベース
SQLite – お手軽単体ファイルのデータベース
MySQL を使う
docker でPython+MySQL の環境を整えよう
MySQL を起動してデータベースを作成しよう
Python から接続してデータベースを操作しよう
TinyDB を使う

★4 章 機械学習

4-1 機械学習とは

機械学習の概要どのようにして特徴や規則を調べるのか?
全自動ではない回帰分析とは?
機械学習の分類
教師あり学習
教師なし学習
強化学習
機械学習の流れ
機械学習の応用分野
クラス分類 (Classification)
グループ分け – クラスタリング (Clustering)
推薦 (Recommendation)
回帰 (Regression)
次元削減(Dimensionality Reduction)
過学習(過剰適合)について

4-2 機械学習はじめの一歩

scikit-learn – 機械学習のフレームワークについて
XOR 演算を学習させてみよう
フレームワークを利用してプログラムを楽に書く
アヤメを品種ごとに分類しよう
アヤメデータの入手
機械学習でアヤメの品種を分類しよう
訓練データとテストデータの分割を専用メソッドで

4-3 画像の文字認識

手書き数字の認識
手書き数字データならMNIST
画像データを学習させよう
6万件のフルデータで試してみよう

4-4 外国語の文章を判定

外国語の判定について
どのように判定を行うか?
サンプルデータの収集
言語判別のプログラム
データごとの分布をグラフにする
Web のインターフェイスを付けよう
学習済みのパラメーターを保存するプログラム
Web から使える言語判定アプリ

4-5 サポートベクターマシン(SVM) について

SVM とは?
SVM を実践で使ってみよう
データの分布を確認
SVM の種類について

4-6 ランダムフォレスト

ランダムフォレストとは?
ランダムフォレストを使ってみる
データを数値に直す際に気をつけること

4-7 データの検証方法について

クロスバリデーションについて
クロスバデーションを実践しよう
scikit-learn のクロスバリデーションを試す
グリッドサーチについて

★5 章 深層学習に挑戦しよう

5-1 深層学習とはなにか

深層学習——ディープラーニングについて
従来の画像認識と深層学習の手法の違い
ニューラルネットワークについて
パーセプトロンについて
そしてTensorFlow の世界へ

5-2 TensorFlow のインストール

TensorFlow について
インストール方法について
Ubuntu Linux (Docker) へのインストール
Ubuntu Linux へのインストール
macOS へのインストール
インストールできたかを確認する方法
TensorFlow に簡単な計算をさせてみよう
簡単な計算

5-3 Jupyter Notebook のススメ

Jupyter Notebook のセットアップと起動
新規ノートを作成しよう
コメントやドキュメントを入力しよう
ノートを保存しよう
出力がおかしくなったら
Python 以外にも使える
データを視覚化してみよう
Python のパスは?
グラフに日本語を表示する
TensorFlow とともに利用しよう

5-4 TensorFlow の基本を押さえよう

TensorFlow の基本
TensorFlow での変数の表現方法
TensorFlow のプレースホルダについて
機械学習に挑戦しよう

5-5 TensorBoard で視覚化しよう

TensorBoard の使い方
掛け算を行うコードを視覚化してみよう
変数を使った場合
機械学習を行うプログラムをTensorBoard に表示
TensorBoard を見やすくするために処理をまとめよう

5-6 TensorFlow で深層学習に進もう

深層学習の仕組み
畳み込み層について
プーリング層について
全結合層について
深層学習を実践してみよう – MNIST の手書きデータ再び

5-7 Keras でもっと楽に深層学習を実践しよう

Keras について
Keras のインストール
Keras でMNIST を試してみよう
Keras で肥満度判定ができるか試してみよう

5-8 Pandas/NumPy を使いこなそう

Pandas/NumPy について
Pandas/NumPy を使うには
DataFrame について
任意のデータの抽出
ソートや反転
データに対する操作
NumPy への変換
Pandas/Numpy のまとめ

★6 章 テキスト解析とチャットボットの作成

6-1 日本語の解析(形態素解析)について

形態素解析について
代表的な形態素解析のライブラリ
利用実績の多い定番ライブラリ「MeCab」
インストールがとにかくな簡単ピュアPython 解析器「Janome」
出現頻度の解析
夏目漱石の「こころ」もカウントしよう

6-2 Word2Vec で文章をベクトル変換しよう

Word2Vec について
Gensim とインストールについて
Gensim のWord2Vec で「こころ」を読む
夏目漱石「こころ」のモデルで遊んでみよう
夏目漱石・太宰治・芥川龍之介の作品をベクトル化しよう
夏目漱石のモデルで遊んでみよう
Wikipedia 日本語の全文データを辞書に使ってみよう
Wikipedia の全文データで遊んでみよう

6-3 ベイズの定理でテキストを分類しよう

テキストの分類に関する考察
ベイズの定理を紹介
ベイズの定理より、条件付き確率について
同時確率と乗法定理(積の法則)
ベイズの定理
イーブベイズ分類について
ベイジアンフィルタを使ってみよう

6-4 MLP でテキスト分類してみよう

MLP でテキスト分類しよう
livedoor ニュースコーパスをサンプルとして利用
テキストデータを固定長ベクトルに変換する方法
テキストの分類に挑戦してみよう
テキストの分かち書き
単語をID に変換し出現回数を数える
MLP でテキストの分類をしよう

6-5 文章の類似度をn-gram で調べよう

文章の類似度を調べることについて
レーベンシュタイン距離について
Python でレーベンシュタイン距離を計算するプログラム
N-gram で類似度を調べよう

6-6 マルコフ連鎖やLSTM で文章を生成しよう

マルコフ連鎖とLSTM/RNN について
マルコフ連鎖とは
マルコフ連鎖を実装してみよう
LSTM/RNN について
LSTM で文章を生成する

6-7 チャットボットの作成

チャットボット(会話ボット)について
チャットボットの仕組み
ボットに機械学習を導入する意味
ボットを作ろう
チャットボットのプログラムを実行してみよう
チャットボットのプログラム

★7 章 深層学習を実践してみよう

7-1 類似画像の検出をしよう

簡単な形状認識 – Average Hash
たくさんの画像から類似する画像を検索する

7-2 CNN でCaltech 101 の画像分類に挑戦しよう

CNN でカラー画像の分類に挑戦しよう
画像データをPython のデータ型に変換しよう
CNN を実践してみよう
さらに精度を上げるために
学習済みモデルを保存しよう

7-3 牛丼屋のメニューを画像判定しよう

牛丼判定ができるPC が良いPC である
スクレイピングからはじめよう
教師データの作成 – 手作業で牛丼を振り分けよう
画像データを数値データに変換しよう
まずはCNN で学習してみる
判定精度を向上させよう
コマンドラインで画像を判定できるようにしよう

7-4 OpenCV で顔認識

OpenCV について
OpenCV のインストール
Python3 用のCV2 モジュールのインストール
顔認識するプログラムを作ってみよう
顔にモザイクをかけよう

7-5 画像OCR – 連続文字認識に挑戦しよう

OpenCV でテキスト領域を認識しよう
100 桁の数字で挑戦
数字認識データを作ろう
100 個の数字をMNIST データで認識してみる
いろいろな数字フォントを学習させよう

★Appendix 作業の準備と環境構築

Appendix 1 Docker で開発環境を構築しよう

Docker とは
Docker のインストール
Windows10 以下でDocker Toolbox をインストール
macOS でDocker Toolbox をインストール

Appendix 2 Python + Anaconda の環境を整える

Docker が正しく動くか検証
Python + Anaconda のイメージをダウンロード
コンテナの状態を保存しよう
コンテナの再開について
ホストOS のホームディレクトリをマウントしよう
その他のインストール

ダウンロードデータ

本書で解説したサンプルデータをダウンロードできます。
なお、使用方法などに関しては、必ず書籍の該当箇所をご確認の上、ご利用ください。
ダウンロード後、解凍したファイル内に「readme.txt」ファイルなどが含まれる場合は、使用前にこちらもご確認ください。

※TensorFlow1.1.0対応に伴い6刷ではプログラムに若干の修正があります。1-5刷をお持ちのお客様でTensorFlow1.1.0への対応をご希望のかたは、お手数ですが、以下の修正ファイルを適用してください。

正誤情報

お問い合わせ

本書に関するお問い合わせは、下記のボタンをクリックしてお問い合わせフォームよりお問い合わせください。

この書籍を問い合わせる

[ この書籍をシェアする ]

新刊から本を探す

もっと見る

カテゴリから本を探す

シリーズから本を探す

本を探す