人工言語で自然言語を解析する楽しみ――『入門 自然言語処理』
入門 自然言語処理 Steven Bird、Ewan Klein、Edward Loper (著) 萩原正人、中山敬広、水野貴明 (翻訳) オライリージャパン 2010年11月 ISBN-10: 4873114705 ISBN-13: 978-4873114705 3990円(税込) |
■自然言語処理とは
「自然言語処理」(NLP:Natural Language Processing)という言葉をご存じだろうか。自然言語処理は、コンピュータの用途の1つとして、古くから研究されてきたジャンルである。
言葉を分割して考えてみよう。「言語」は自明であるとして、「自然言語」とは何か。
「自然言語」とは、人間が日常のコミュニケーションを取るために使う「言葉」である。単に「言語」といえば、一般的には英語や日本語など自然言語のことを指すことがほとんどだろう。まあ、エンジニアが「言語」という場合はRubyだったりCだったりするのだが。
「自然言語」に対して、人間が作った言語を「人工言語」という。ゼビ語やクリンゴン語など架空の言語、HTMLやXMLなどのマークアップ言語、そしてRubyやCなどのプログラミング言語などが代表的な「人工言語」である。
「自然言語」という場合は、「人工言語」との対比を明確にする狙いがあるようだ。
続く「処理」は、コンピュータプログラムで解析・利用すること。「自然言語」に対しての「処理」は、字句解析や構文解析などの「解析」と、文章の意味を理解したり作文したりする「理解」に大別される。
つまり、この本は「自然言語」をコンピュータで「処理」するために必要な基礎知識を身に付けるための「入門」書なのである。
■入門準備号
……と、こんなようなことを、この本のレビューをすること決めてから本が届くまでの間に調べてみた。なんとなく分かっているつもりでも、きちんと調べると知らなかったことが出てきたりして面白い。さらに、これをネタにして社内のLT(Lightning Talks)大会で発表したりと、読み始める前から盛りだくさんな1冊である。
このように個人的予習をしてから読み始めたのだが、届いてからもなお、まだやるべきことがあった。題材として選ばれているプログラミング言語「Python」と、Pythonの自然言語処理ライブラリである「NLTK」(Natural Language Toolkit)の準備である。
教材のサンプルを実行する環境を用意し、手を動かしながら読むことで、この本の真価に触れられる。手前味噌で恐縮だが、環境構築手順のメモをブログにまとめたので、参考にしていただければ幸いだ。
■1冊で、自然言語処理とPythonと英語が学べる
「まえがき」にあるように、本書は学生の新学期のカリキュラムとして、
- 「自然言語処理について」
- 「コンピュータプログラミングについて」
- 「Pythonについて」
を教えてくれる。プログラミングの基本となる考え方にもざっと触れているし、Pythonの特徴的な部分にも言及しているので、熟達していない分野があれば一緒に学べる(というか、学ばざるを得ない)というのも、手強く、かつ面白いところである。
読み進めると、自然言語処理についての理解が深まるのはもちろんだが、題材が主に英語についての解析なので、強制的に英語の勉強もすることになる。手元に使いやすい英和辞典を用意しておくとよいだろう。わたしはこれがきっかけで、iPhoneアプリを購入した。
また、日本語を処理するための知識として、訳者陣によって第12章「Pythonによる日本語自然言語処理」が丸ごと加筆されている(第12章は無償公開されている)。第11章までの内容は、日本語の読者にとっては「十分すぎる予習」なのかもしれない。第12章では、日本語特有の事情、形態素解析と係り受け解析、意味解析への入り口など、これまでなかった「日本語に対しての自然言語処理」の案内が記されている。
■まとめ:自然言語処理への入門
さあ、これで「自然言語処理」に「入門」する準備はできた。
本書は、大学のカリキュラムとして十分な量の学びが用意されている。焦らずじっくり、手を動かしながら読みこんで、自然言語処理の世界に入門しよう。
(『Wife Hacks ~仕事と家族とコミュニティと~』コラムニスト kwappa)