関連サイト
本書の関連ページが用意されています。
内容紹介
日本語テキスト解析処理を快速プログラミング! 単語/文書の分類、機械翻訳などを実装。
自然言語処理は、検索エンジン、自動要約、機械翻訳、音声認識などで利用される技術です。PyTorchでは、特にTransformersというBERT系モデルを提供することで、より簡単にBERTを利用できるようになっています。本書では、自然言語処理で特に重要なディープラーニング技術であるword2vec、LSTM、seq2seq、そしてBERTを取り上げます。
まず第1章でPyTorchの基本を説明します。そのあと各技術の考え方を説明し、PyTorchを使ったそれぞれのプログラミング手法を解説します。それらのプログラミングでは、以下のことなどを目的にしています。
・単語や文書の類似度を測る
・文章内の単語の品詞を分類する
・日英の機械翻訳を実行する
・文書を分類する
・質問/回答タスクを実行する
書誌情報
- 著者: 新納 浩幸
- 発行日: 2021-03-18 (紙書籍版発行日: 2021-03-18)
- 最終更新日: 2021-03-18
- バージョン: 1.0.0
- ページ数: 256ページ(PDF版換算)
- 対応フォーマット: PDF, EPUB
- 出版社: インプレス
対象読者
自然言語処理についての初心者。自然言語処理のシステムを作ってみたい人、あるいは作らなくてはならない人。
著者について
新納 浩幸
1961年生まれ。1985年 東京工業大学理学部情報科学科卒業。1987年 東京工業大学大学院理工学研究科情報科学専攻修士課程修了。現在、茨城大学工学部情報工学科教授、博士(工学)。専門分野は自然言語処理、機械学習、統計学など。2018年から言語処理学会 理事を務める。
目次
まえがき
第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 Anaconda/A.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