OkayuTech

情報系大学生の技術的なこと

自然言語処理を学ぶのにオススメの本

これから自然言語処理を学ぶ方にオススメの本を紹介する記事です。
自然言語処理の研究室に配属された学部生をメインに想定していますが、それ以外の方でも参考になると思います。

自然言語処理の基本と技術

自然言語処理の基本と技術

自然言語処理の基本と技術

自然言語処理が対象とする多くのタスクを分かりやすく解説しています。手法についても簡単にですが触れています。
ほとんど数式を用いずに説明*1しているのが特徴で、読む上で必要な前提知識はほとんどありません。
もし私の母親に自分の研究分野を教えるのであれば、間違いなくこの一冊を選ぶでしょう。

自然言語処理概論

自然言語処理概論 (ライブラリ情報学コア・テキスト)

自然言語処理概論 (ライブラリ情報学コア・テキスト)

これから自然言語処理の研究を始めるのであれば必ず読んだ方が良い本です。
前半は形態素解析→構文解析→意味解析→文脈解析と順番に広域なテキスト解析について説明し、後半は情報検索や機械翻訳などといった具体的なタスクについて説明しています。
上で紹介した本に比べれば多少は難しいですが、当時学部3年の私がこの本を参考に研究室で勉強会が出来たぐらいなので、特に問題はないと思います。

ところで「この本は持ってないけど下の緑の本は持ってるよ」という方がおられるかもしれません。

自然言語処理 (放送大学教材)

自然言語処理 (放送大学教材)

この本は上で紹介した「自然言語処理概論」とほとんど同じです*2
発行年が異なるので、ニューラルネットワークに触れられていない等の違いはありますが、どちらにせよ他の本で学ぶことになるので大した問題ではありません。
既に持っているのであればこの緑の本を使えばいいですし、これから買うのであれば、600円程度安い「自然言語処理概論」がオススメです。

言語処理のための機械学習入門

言語処理のための機械学習入門 (自然言語処理シリーズ)

言語処理のための機械学習入門 (自然言語処理シリーズ)

これはあくまで自然言語処理というよりは機械学習の入門本なのですが、もはや自然言語処理の世界で機械学習は当たり前になっている*3ので、学んでおくべきだと思います。
ただ上で紹介した2冊とは違って基本的な確率統計などを前提知識とするので、さっぱり分からないということであれば、大学の教科書で復習なり予習なりしましょう。
ちゃんと数式が読めてそれをプログラムに落とし込む力があれば、割と簡単に実装できるので楽しいです。時間があるのであれば、実装しつつ読み進めてもいいかもしれません。

深層学習による自然言語処理

深層学習による自然言語処理 (機械学習プロフェッショナルシリーズ)

深層学習による自然言語処理 (機械学習プロフェッショナルシリーズ)

「機械学習の次はディープラーニングかよ」と思われるかもしれませんが、もはや自然言語処理の世界でディープラーニングは当たり前になっている*4ので、学んでおくべきだと思います。
例えば以下のようなことを日本語で学べます。

  • ニューラル言語モデル (neural language model)
  • 単語分散表現 (word embedding)
  • 系列変換モデル (sequence-to-sequence)
  • 注意機構 (attention mechanism)

特定のツールやライブラリのための本ではなく、上のようなことを日本語でしっかり説明している本は、私が知る限り本書しかありません*5
ですので自然言語処理 × ディープラーニングを日本語本で学ぶなら他に選択肢はないでしょう。

注意点とすれば、言語処理においてこの手の分野はまだ歴史が浅く、専門用語の日本語訳が浸透していません。
ですので例えば「符号化器」や「注意機構」と言っても相手に通じない可能性があります。そのため併記してある英語(encoder, attentionなど)も一緒に覚えておくことをオススメします。

最後に

この記事は私が本当にオススメできる本のみを紹介しているので網羅性はかなり低いです。より多くの本に関する情報を知りたい場合は以下のサイトを参考にしてください。
自然言語処理を学ぶ推薦書籍 - 首都大学東京 自然言語処理研究室(小町研)

本ではないですが、自然言語処理やその周辺の実践的な問題を集めた問題集として「言語処理100本ノック」というものがあります。
独学で進めるのは難しいかもしれませんが、答えになるようなコードはググれば出てくるので参考になると思います。
www.cl.ecei.tohoku.ac.jp

「こんないい本・サイトがあるよー」という方はぜひコメントください。

*1:出てくるには出てきますが、小学生でも分かるような式とlogが出る程度

*2:どちらも黒橋先生が著者。緑の方は放送大学の教材ということもあって構成が異なる。

*3:決して機械学習を使った研究を勧めているわけではありません。先行研究を調べる上で必要になりますし、自分の研究を進める上で一度は「これ機械学習だとどうなるだろう」というようなことは考えるべきでしょう。もちろん批判するためにも必要です。

*4:決してディープラーニングを使った研究を勧めているわけではありません。先行研究を調べる上で必要になりますし、自分の研究を進める上で一度は「これディープラーニングだとどうなるだろう」というようなことは考えるべきでしょう。もちろん批判するためにも必要です。

*5:他にあれば是非教えてください