2章自然言語と単語の分散表現
マーティ:「これはヘビーだ」
ドク:「未来ではそんなに物が重いのか?」
——映画『バック・トゥ・ザ・フューチャー』
これからいよいよ自然言語処理の世界へ足を踏み入れます。自然言語処理が扱う分野は多岐にわたりますが、その本質的問題は、コンピュータに私たちの言葉を理解させることにあります。本章では、コンピュータに言葉を理解させるとはどういうことか、そしてどのようなアプローチが存在するのか、ということを中心に考察を進めます。特に古典的な手法——ディープラーニング登場以前の手法——について詳しく見ていきます。そして次章から、ディープラーニング(正確にはニューラルネットワーク)をベースとした手法へと進みます。
また、本章ではテキストをPythonで扱う練習も行います。テキストを単語に分割する処理や、単語を単語IDに変換する処理などを実装します。そして本章で実装する関数は、次章以降でも利用します。つまり本章は、これから先のテキスト処理の下準備も兼ねています。それでは、自然言語処理の世界へと進みましょう!
2.1 自然言語処理とは
日本語や英語など、私たちが普段使っている言葉を自然言語(Natural Language)と言います。自然言語処理(Natural Language Processing:NLP)とは、文字どおり解釈すれば、「自然言語を処理する分野」ということになります。これは分かりやすく言うと、「私たちの言葉をコンピュータに理解させるための技術(分野)」ということです。つまり、自然言語処理の目標とすることは、人の話す言葉をコンピュータに理解させ、私たちにとって役に立つことをコンピュータに行わせることにあるのです。
ところで、コンピュータが理解できる言語というと、「プログラミング言語」や「マークアップ言語」のようなものを思い浮かべるかもしれません。それらの言語は、コードの意味が一意に解釈できるように文法が定義されており、コンピュータは決まったルールに従ってコードを解析します。 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access