自然言語処理(NLP)は、人間と同じようにテキストや音声言語を理解できる機能をコンピューターに与えることに関連したコンピューター・サイエンスの一分野(さらに具体的に言うなら、 人工知能つまりAIの一分野)のことを指します。
NLPはコンピューター言語(人間の言語のルール・ベースのモデリング)を統計モデル、機械学習モデル、およびディープ・ラーニング・モデルと組み合わせます。 これらの技術をまとめて使うことで、コンピューターはテキストや音声データなどの形式の人間の言語を処理し、その意味を発話者または執筆者の意図や感情とともに完全に「理解」します。
NLPでは、1つの言語から他の言語へテキストを翻訳し、音声による指示に対応し、大量のテキストを迅速に(リアルタイムでも可能です)まとめるコンピューター・プログラムが使用されています。 皆さんは、音声で作動するGPSシステム、デジタル・アシスタント、音声言語をテキストに起こすソフトウェア、カスタマー・サービス・チャットボット、およびその他、消費者の利便性を高めるものを通してNLPに触れてきたことでしょう。 しかし、NLPは、業務の効率化、従業員の生産性の向上、基幹業務ビジネスのプロセスの簡素化を助ける企業向けのソリューションで、さらに多くの役割を果たすようになっています。
人間の言語は、あいまいなものであふれています。そのあいまいさが、テキストまたは音声データが意図する意味を正確に判別するソフトウェアを作成することを、ますます難しくしています。 同音同形意義語、同音異義語、皮肉、イディオム、比喩、例外的な文法や例外的な用法、さまざまな種類の文章構造などがあります。これらは、人間が何年にもわたって学習する不規則な人間言語の一部にすぎません。しかし、自然言語駆動型アプリケーションを有用なものとするには、プログラマーはこれらの不規則な人間言語をアプリケーションに教え、アプリケーションが最初から正確に認識・理解できるようにする必要があります。
複数のNLPタスクでは、コンピューターが取り込んだ人間のテキストと音声データを理解できる形で、細分化します。 以下に、これらのタスクの一部を挙げます。
これらの概念がどのように関連するかについて詳しくは、「NLPとNLUとNLG:3つの自然言語処理の概念の違い」(英語)を参照してください。
Pythonのプログラミング言語は、特定のNLPタスクに取り組むための幅広いツールとライブラリーを提供しています。 これらの多くは、NLPプログラムを構築するためのライブラリー、プログラム、教育リソースを集めたオープンソース・コレクションであるNatural Language ToolkitまたはNLTKに存在するものです。
NLTKには上記の多くのNLPのタスクのためのライブラリーに加えて、文の構文解析、単語のセグメンテーション、互換処理と見出し語解析(単語を語源までトリミングする手法)、トークン化(コンピューターがテキストをより理解できるように、フレーズ、文、段落、節をトークンに分割すること)のようなサブタスクのためのライブリーが含まれています。 これには、テキストから抽出された事実に基づいて論理的な結論に達する機能である、語義の推論などの機能を導入するためのライブラリーも含まれています。
最初期のNLPアプリケーションは、特定のNLPタスクを実行できるハンド・コーディングの、ルール・ベースのシステムでしたが、無限のように見える例外や、量が増え続けるテキストや音声データを収容するために拡張することはできませんでした。
統計的NLPを入力することで、コンピューター・アルゴリズムを機械学習やディープ・ラーニングモデルと組み合わせ、自動でテキストや音声データの要素を抽出・分類・ラベル付けし、その後、これらの要素において考えられる意味のそれぞれに統計的な可能性を割り当てます。 今日、畳み込みニューラル・モデル(CNN)と回帰型ニューラル・ネットワークに基づいたディープ・ラーニング・モデルと学習技法は、「学習」を行うNLPシステムが、機能し、莫大な量の一連の生の構造化やラベル付けがされていないテキストや音声データからより正確な意味を抽出できるようにします。
これらのテクノロジーとその学習アプローチのニュアンスについて詳しくは「AI、機械学習、ディープ・ラーニング、およびニューラル・ネットワークの相違点」(英語)を参照してください。
自然言語処理は、現実世界で利用されている最新のアプリケーションの多くに存在する機械知能の背後にある原動力です。 以下にその例を一部ご紹介します。
AI搭載のエンタープライズ・サーチ・テクノロジーを使用して、ビジネス・データから重要な答えと洞察を見いだします。
高度なテキスト分析を行うための自然言語処理(NLP)サービスです。
あらゆるチャネルで、お客様の問題を最初に解決します。