5章自然言語処理入門

自然言語処理(NLP:Natural Language Processing)は、人間の言語を理解する人工知能の技術です。これには、言語を理解し、コンテンツを分類し、さらには新しい言語の生成・作成を可能とするモデルのためのプログラミング技術を含みます。これらの技術については、この後の数章を使って説明します。NLPを利用してチャットボットなどのアプリケーションを作成するサービスも多く存在しますが、それは本書の範囲外です。代わりに、NLPの基礎と、ニューラルネットワークの学習によりテキストを理解したり分類するために、言語をモデル化する方法を紹介します。また、ちょっとしたお楽しみとして、機械学習モデルの予測を使って、詩を書く方法も学びます。

この章では、言語を数値に変換し、その値をニューラルネットワークで利用する方法について説明します。

5.1 言語の数値化

言語はさまざまな方法で数値にエンコードできます。最も一般的なのは、プログラムで文字列を扱うように文字でエンコードすることです。メモリには、文字aではなく、それをASCIIまたはUnicodeなどでエンコードしたものが格納されています。例えば、「listen」という単語で考えてみましょう。これはASCIIでは108、105、115、116、101、110という数値列にエンコードできます。これは、数値を使って単語を表現できるという点で優れています。それでは、「listen」のアンチグラムである「silent」ではどうでしょうか。順番は異なりますが同じ数値がその単語を表します。そのため、テキストを理解するためのモデルを作るのは少し難しいかもしれません。

アンチグラムとは、別の単語のアナグラムであり、反対の意味を持つ単語のことです。例えば、「united」と「untied」はアンチグラムであり、「restful」と「fluster」、「Santa」と「Satan」、「forty-five」と「over ...

Get 動かして学ぶAI・機械学習の基礎 ―TensorFlowによるコンピュータビジョン、自然言語処理、時系列データの予測とデプロイ 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.