Python自然言語処理入門を読みました
以前レビューを書いた「ディープラーニングの数学」の作者、IBMの赤石さんから、出版社様経由で「Python自然言語処理入門」を献本いただきました。
「ディープラーニングの数学」は、「ゼロから作るDeep Learning」に並ぶ良書と書かせていただきましたが、今回の本も自然言語処理を扱ったゼロから作るシリーズの「ゼロから作るDeep Learning ❷ ―自然言語処理編」と対になるような位置付けの良い本と思いました。
じっくり読んでいたので、読了に時間がかかってしまい、本の発売から時間が経った今更のレビューになってしまいましたが、簡単に紹介をしたいと思います。
自然言語処理の基礎を学べた
個人的に、自然言語処理に関しては趣味レベルで独学したり、手を動かして遊んでいたので、本の内容の半分くらいは知っていることの復習だったのですが、基礎的な知識が怪しい自分にとっては、過去の復習ができると共に、抜けていたポイントの補完や最新技術の概要が知れてとても良かったです。
特に、自分にとって良かったポイントは以下でした(過去の復習や新規の知見はごちゃ混ぜになっています)。
- Pdf、Wordファイルからのテキスト取得(Tika Python API)
- 青空文庫からのテキストのスクレイピング方法
- ウェブサイトからのテキストのスクレイピング方法
- 著作権を気にせず利用できるテキストの入手先(政府関係サイト等)
- 形態要素解析ソフトの違い(MeCab/Janome/JUMAN)
- 係り受けとは何かとソフト(CaboCha)
- 検索技術(ElasticSearch)
- 文章の単語の評価指標(TF-IDF)
- 最新の言語処理技術(Word2Vec, BERT)
初級者から中級者の幅広いレベルの人にとって、新しい発見がある本だと思います。
ただ、IBM所属の作者様には申し訳ないのですが、4章のWatson APIに関する章は個人的には不要でした(笑)
もちろん、Watsonに興味がある人にとっては重要な章となりますし、ビジネス関係でWatsonというのはかなりのビッグワードなので、どういうものなのか抑えておくという意味では、多くの人にとって意味のある内容とは思います。
あとは、気になっていた最新のBERTまで解説があるのは嬉しかったです。
BERTの解説に関しては、最近ネットで以下のような素晴らしい記事もありました。
ただ、上記記事はある程度知識ある人に向けた記事なので、全く知識ない人が読むと最初の方で「One-Hot-Encoder?」「TF-IDF?」「N-gram?」「Word2Vec??」とハテナが連続してしまうと思いますが、本書を読んでから記事を読むと、ムスカ大佐のように「読める…読めるぞ!」という感動が得られると思います(個人の感想です)。
本書のプログラムを「Google Colaboratory」で実行する方法
この本では、本の内容をすぐ実践できる自然言語処理のプログラムが、GitHubに公開されています。
残念ながら書籍ではMac環境のみを前提とした環境構築の説明がされています。結構MacへのPython環境構築は大変ですし、Mac以外の人だと実践が困難です。
ただ、実はこのプログラム書籍では保証も推奨もしていませんが「Google Colaboratory(Google Colab)」というGoogle提供の無料のクラウドでのPython実行環境で動かすことができます。Google ColabとそのTIPSに関しては、以下記事参照下さい。
上記記事に書いてある、「GitHub上のJupyter NotebookファイルをGoogle Colaboratory上で実行」という項目を使えば、GitHub上のJupyter NotebookファイルをそのままGoogle Colabで実行することが可能です。
以下は「ch02-01-01.ipynb」を「Google Colab」で動かしてみた様子です。
もちろん、Watsonの章を含めて動かなかったり、変更が必要と思われる箇所も多数ありますが、手軽に試してみるにはとても良いと思います。
自然言語処理で遊んでみたい人へ
本書の応用編として、過去自分が自然言語処理で遊んでみた例を紹介します。書籍と合わせて、手を動かしてみるとより理解が深まるかもしれません。
まとめ
書籍「Python自然言語処理入門」の紹介をさせていただきました。とても良い本でした。基礎が分かると、色々応用したくなってきますね。
過去にAIで小説書こうとしたときに色々限界を感じたので、自然言語処理はあまり触れていなかったのですが最新のBERT含めて、また試してみたいなと思いました。