2章自然言語と単語の分散表現

マーティ:「これはヘビーだ」

ドク:「未来ではそんなに物が重いのか?」

——映画『バック・トゥ・ザ・フューチャー』

これからいよいよ自然言語処理の世界へ足を踏み入れます。自然言語処理が扱う分野は多岐にわたりますが、その本質的問題は、コンピュータに私たちの言葉を理解させることにあります。本章では、コンピュータに言葉を理解させるとはどういうことか、そしてどのようなアプローチが存在するのか、ということを中心に考察を進めます。特に古典的な手法——ディープラーニング登場以前の手法——について詳しく見ていきます。そして次章から、ディープラーニング(正確にはニューラルネットワーク)をベースとした手法へと進みます。

また、本章ではテキストをPythonで扱う練習も行います。テキストを単語に分割する処理や、単語を単語IDに変換する処理などを実装します。そして本章で実装する関数は、次章以降でも利用します。つまり本章は、これから先のテキスト処理の下準備も兼ねています。それでは、自然言語処理の世界へと進みましょう!

2.1 自然言語処理とは

日本語や英語など、私たちが普段使っている言葉を自然言語(Natural Language)と言います。自然言語処理(Natural Language Processing:NLP)とは、文字どおり解釈すれば、「自然言語を処理する分野」ということになります。これは分かりやすく言うと、「私たちの言葉をコンピュータに理解させるための技術(分野)」ということです。つまり、自然言語処理の目標とすることは、人の話す言葉をコンピュータに理解させ、私たちにとって役に立つことをコンピュータに行わせることにあるのです。

ところで、コンピュータが理解できる言語というと、「プログラミング言語」や「マークアップ言語」のようなものを思い浮かべるかもしれません。それらの言語は、コードの意味が一意に解釈できるように文法が定義されており、コンピュータは決まったルールに従ってコードを解析します。 ...

Get ゼロから作るDeep Learning ❷ ―自然言語処理編 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.