インプレス[コンピュータ・IT]ムック PyTorch自然言語処理プログラミング
インプレス / 2021年03月18日 / 全255ページ
word2vec/LSTM/seq2seq/BERTで日本語テキスト解析!
ディープラーニング技術を使った自然言語処理においてword2vec、LSTM、seq2seq、BERTは、重要な技術です。本書では、機械学習フレームワークのPyTorchを利用することで、それらのディープラーニング技術を使ったプログラムをより容易に実装する方法を解説します。本書で作成するプログラムは、「文章内の単語の品詞を分類する」「日英の機械翻訳を行う」「質問に対する回答を返す」ことなどを目的にしています。本書は、そうした自然言語処理システムの実装を試してみたいという方にとって格好の一冊です。
ディープラーニング技術を使った自然言語処理においてword2vec、LSTM、seq2seq、BERTは、重要な技術です。本書では、機械学習フレームワークのPyTorchを利用することで、それらのディープラーニング技術を使ったプログラムをより容易に実装する方法を解説します。本書で作成するプログラムは、「文章内の単語の品詞を分類する」「日英の機械翻訳を行う」「質問に対する回答を返す」ことなどを目的にしています。本書は、そうした自然言語処理システムの実装を試してみたいという方にとって格好の一冊です。
目次
- サンプルコード・商標・免責
- まえがき
- 第1章 PyTorchの基礎
- 1.1 Tensorとは
- 1.2 Tensorの演算と操作
- 1.3 Tensorの自動微分
- 1.4 PyTorchの学習プログラムの作成1.4.1 プログラムのひな形
- 1.4.2 ライブラリの読み込み1.4.3 学習データの準備
- 1.4.4 モデルの設定
- 1.4.5 モデルの生成、最適化アルゴリズムと損失関数の設定
- 1.4.6 学習
- 1.4.7 テスト
- 1.4.8 実行1.4.9 ミニバッチ
- 1.4.10 GPUの利用
- 第2章 word2vecによる分散表現 ~単語をベクトルで表現~
- 2.1 分散表現とは何か
- 2.2 word2vecによる分散表現の構築
- 2.3 gensimによる分散表現の構築
- 2.4 既存の分散表現とその読み込み
- 2.5 分散表現の利用方法
- サンプルコード・商標・免責
- まえがき
- 第1章 PyTorchの基礎
- 1.1 Tensorとは
- 1.2 Tensorの演算と操作
- 1.3 Tensorの自動微分
- 1.4 PyTorchの学習プログラムの作成1.4.1 プログラムのひな形
- 1.4.2 ライブラリの読み込み1.4.3 学習データの準備
- 1.4.4 モデルの設定
- 1.4.5 モデルの生成、最適化アルゴリズムと損失関数の設定
- 1.4.6 学習
- 1.4.7 テスト
- 1.4.8 実行1.4.9 ミニバッチ
- 1.4.10 GPUの利用
- 第2章 word2vecによる分散表現 ~単語をベクトルで表現~
- 2.1 分散表現とは何か
- 2.2 word2vecによる分散表現の構築
- 2.3 gensimによる分散表現の構築
- 2.4 既存の分散表現とその読み込み
- 2.5 分散表現の利用方法
- 2.6 doc2vecによる文書間類似度
- 2.7 Word Mover Distanceによる文間距離
- 2.8 fastText
- 第3章 LSTMによる時系列データ解析 ~文を単語の系列として解析~
- 3.1 LSTMとは何か
- 3.2 LSTMの入出力
- 3.3 LSTMの学習
- 3.4 LSTMの推論
- 3.5 LSTMのバッチ処理
- 3.6 多層LSTM
- 3.7 双方向LSTM
- 第4章 seq2seqモデルによる機械翻訳 ~ある系列を別の系列に変換~
- 4.1 seq2seqモデルとは何か
- 4.2 NMTの学習
- 4.3 NMTのモデルによる翻訳
- 4.4 BLEUによるNMTの評価
- 4.5 Attentionの導入
- 4.6 Attention付きNMTのモデルによる翻訳
- 4.7 バッチ処理への改良
- 4.8 SentencePieceによる単語分割
- 第5章 事前学習済みモデルBERTの活用 ~タスクに応じてモデルを調整~
- 5.1 BERTとは
- 5.2 Self-Attentionとは
- 5.3 既存BERTモデルの利用
- 5.4 BERTの入出力
- 5.5 BERTの各層の情報の取り出し
- 5.6 Tokenizer
- 5.7 BertForMaskedLMの利用
- 5.8 ローカルにあるモデルからの読み込み
- 5.9 BERTを利用した文書分類の実装5.9.1 訓練データとテストデータの作成
- 5.9.2 文書分類モデルの設定
- 5.9.3 最適化関数の設定
- 5.9.4 モデルの学習
- 5.9.5 モデルによる推論
- 5.9.6 BERTのバッチ処理
- 5.9.7 パラメータ凍結によるfeature basedの実装
- 5.9.8 BertForSequenceClassificationの利用
- 5.9.9 識別の層とBERTの上位層のみの学習
- 5.10 BERTを利用した品詞タガーの実装5.10.1 データの準備
- 5.10.2 モデルの設定
- 5.10.3 学習
- 5.10.4 推論
- 5.11 DistilBERT
- 5.11.1 既存のDistilBERTモデルの利用
- 5.11.2 DistilBERTを用いたMASK単語の推定
- 5.11.3 DistilBERTを用いた文書分類
- 5.11.4 Laboro版DistilBERTを用いた文書分類
- 5.12 SentenceBERT
- 5.12.1 既存のSentenceBERTモデルの利用
- 5.12.2 バッチに対する平均ベクトルの算出
- 5.12.3 SentenceBERTを用いた文書分類
- 5.13 2文入力のタスクに対するBERTの利用
- 5.13.1 2文入力タイプのBERTの入出力
- 5.13.2 2文入力タイプのタスク
- 5.13.3 HuggingFaceの登録モデルの利用
- 5.13.4 BERTを利用した含意関係認識
- 5.13.5 BERTを利用したQAタスク
- 付録A プログラミング環境の構築(Windows)
- A.1 AnacondaA.2 PyTorch
- A.3 CUDA
- 付録B 本書で解説した主要プログラム集
- B.1 iris0.py
- B.2 lstm.py
- B.3 nmt.py
- B.4 att-nmt.py
- B.5 doccls.py
- B.6 doccls4.py
- B.7 bert-tagger.py
- 参考文献
- あとがき
- 索引
- 著者プロフィール・STAFF LIST
- 奥付
※このデジタル雑誌には目次に記載されているコンテンツが含まれています。それ以外のコンテンツは、本誌のコンテンツであっても含まれていません のでご注意ください。
※電子版では、紙の雑誌と内容が一部異なる場合や、掲載されないページがある場合があります。