ISBN 9784839966607
機械学習・深層学習による自然言語処理入門 : scikit-learnとTensorFlowを使った実践プログラミング
概要
機械学習・深層学習で日本語NLPを基礎から実装する
想定読者
Pythonでの開発経験があり、自然言語処理をゼロから手を動かして習得したい開発者・データサイエンティスト志望者
こんな人には向いていない
- BERTやTransformerを業務で活用し始めている中級以上のNLPエンジニアには、RNN/LSTM中心の構成が古めに感じられ物足りない
- 機械学習の理論的背景(線形代数・確率論・情報理論)を体系的に押さえたい読者には、本書は実装・手順中心の構成であり向いていない
- scikit-learnとTensorFlowをすでに業務投入しており、NLPタスクの経験も一定ある人には序盤の基礎説明の比重が冗長に感じる可能性がある
この本で身につくこと
- 形態素解析を含む日本語テキストの前処理パイプラインを自力で組める
- Word2Vec等の単語分散表現の仕組みを理解し、日本語コーパスで学習・評価できる
- scikit-learnを使ったテキスト分類モデルを構築し、特徴量エンジニアリングと正則化を実務水準で適用できる
- TensorFlowでRNN・LSTM・CNNを実装してシーケンスラベリングや系列変換タスクに対応できる
- アテンション機構の原理を理解し、エンコーダ・デコーダ構成の系列変換モデルを実装できる
- ハイパーパラメータチューニングの手順を踏まえ、日本語データセットで各モデルを検証・改善できる
ハイライト(外部からの言及)
機械学習を用いた自然言語処理手法を日本語に対して適用しようとすると、途端にデータセットの壁に当たります。このような状況を踏まえ、本書では、日本語のデータセットで自然言語処理の様々なタスクを試せるようにしています。 — 出典
英語チュートリアル中心の入門書が多い中、日本語コーパス対応という本書の最大の差別化点が端的に示されている箇所
読了後にできること
Before(読む前): 英語データセット向けのNLPコードを日本語に転用しようとすると形態素解析やコーパス整備の壁で詰まっていた
After(読み終えた後): 日本語テキストの前処理からRNN/LSTMによるシーケンスタスクまで、自前データで一貫して実装できる
章立て
(公式情報未確認 — 出版社公式ページの目次が公開され次第、本セクションを更新予定)
関連記事 / 参考情報
- 【データ分析の必読10冊+差をつける10冊+100冊超】データサイエンス、データ分析、機械学習関連の本 — 機械学習・データ分析の学習書100冊超をカテゴリ別に整理したリスト記事。NLP入門書の一冊として収録
- 【2020年版・初心者向け】独学でAIエンジニアになりたい人向けのオススメの勉強方法 — AIエンジニアへのキャリアチェンジを独学で目指す人向けの学習経路ガイド。自然言語処理分野の実装入門として紹介
- ゆるふわ自然言語処理(その2)fastText で単語分散表現 — fastTextを使った単語分散表現の実装解説。本書の分散表現章を前提知識として参照している
学習のヒント
- 日本語固有の課題(形態素解析・コーパス準備)は序盤に集中的に解説される。まずその章を完走してから機械学習・深層学習章に進むと後半の詰まりを減らせる
- scikit-learnとTensorFlowが並行して登場する構成上、最初はscikit-learnのテキスト分類章だけ通して基礎を固め、その後TensorFlowのRNN/LSTM章に進む順序が吸収しやすい
- 各章の実装コードを、業務やプロジェクトで使う自前コーパス(ログ・レポート・レビュー文等)に差し替えて動かすと、日本語データセット対応という本書の強みを最大限に活かせる
- 2020年刊行のため本書ではBERT/Transformerは扱われていない。アテンション機構とLSTM章を丁寧に読み込んでおくと、後続のTransformer系学習への橋渡しとして機能する
前提知識
- PythonとNumPy・pandasの基本操作(データ読み込み・配列演算)
- 機械学習の概念的な理解(教師あり学習・損失関数・勾配降下法の大枠)
- ベクトル・行列演算の基礎(内積・次元の概念)
次に読む本
Hugging Face Transformersによる自然言語処理の実践
本書でアテンション機構の基礎を習得した後、BERTやGPT系モデルを実務投入するためのライブラリ実践に進む自然な経路
ゼロから作るDeep Learning ❷ — 自然言語処理編
RNN/LSTMの内部を手書き実装で理解し直したい場合の補完書。本書との読み合わせで理解が深まる
自然言語処理の基礎
言語モデルや構文解析の理論的背景を体系化したい読者向け。本書の実装経験を土台に理論を補強できる
出版社による内容紹介
本書は、自然言語処理について初歩から学べる書籍です。プログラミングについては、なんらかのプログラミング言語を使ったことのある開発者を対象に書いています。 自然言語とは、私たち人間が日常的に読み書きしたり、話したりするのに使っている言語のことです。そして、自然言語で書かれたテキストデータをコンピュータで処理するための技術を自然言語処理と呼びます。自然言語処理によって実行できるタスクの代表的な例としては、自動翻訳や質問応答、対話などがあります。 本書では、この自然言語処理について、今まで学習したことがない人でも学べるように、基礎から解説しています。自然言語をコンピュータで処理するために、事前にどのような処理をしておくのか、どのように単語や文章を解析するのか、自動翻訳などのタスクを実行させるためにどのような処理を行うのか、などについて、やさしく説明していきます。 基礎からはじめて、単語分散表現やテキスト分類、系列ラベリング、系列変換、アテンションといった、自然言語処理では欠かせない技術について、理論を解説した上で、Pythonを使って実装し、手を動かしながら理解できるようにしています。 また、現在の自然言語処理は、機械学習や深層学習とも切り離せません。ですので本書では、これらの技術についても基礎から説明し、Pythonを使って処理を実装していきます。基礎的な実装のみではなく、RNN、LSTM、CNNさまざまなモデルを使っての実装、特徴量エンジニアリングや正則化、ハイパーパラメータチューニングなど、実際の処理で必要になるところまで、詳しく解説しています。 本書の特徴として、ほとんどの実装で日本語のデータを使っている点があります。機械学習を用いた自然言語処理手法を日本語に対して適用しようとすると、途端にデータセットの壁に当たります。このような状況を踏まえ、本書では、日本語のデータセットで自然言語処理の様々なタスクを試せるようにしています。 これから、プログラムでの実装も合わせて自然言語処理をしっかり学習したいという方にとっては、最適の1冊です。
この本がどの学習段階で役立つかは、 関連する ロードマップ から確認できます。