自然言語処理(NLP)とは?
自然言語処理(NLP)とは、コンピュータサイエンスの一分野であり、より具体的には人工知能(AI)の一分野で、人間と同じようにテキストや話し言葉を理解する能力をコンピュータに与えることを目的としています。
NLPは、人間の言語をルールに基づいてモデル化した計算言語学と、統計学、機械学習、深層学習のモデルを組み合わせたものです。これらの技術を組み合わせることで、コンピュータはテキストや音声データの形で人間の言葉を処理し、話し手や書き手の意図や感情を含めた完全な意味を「理解」することができます。
NLPは、テキストをある言語から別の言語に翻訳したり、音声コマンドに応答したり、大量のテキストを迅速に(時にはリアルタイムで)要約したりするコンピュータプログラムを駆動します。音声で操作するGPSシステム、デジタルアシスタント、音声合成ディクテーションソフト、カスタマーサービス用チャットボットなど、消費者にとって便利な形でNLPを利用している可能性が高いです。しかし、NLPは、ビジネスオペレーションの合理化、従業員の生産性の向上、ミッションクリティカルなビジネスプロセスの簡素化を支援するエンタープライズソリューションにおいても、その役割が高まっています。
NLPの課題
人間の言葉には曖昧な部分が多く、テキストや音声データの意図する意味を正確に判断するソフトウェアを書くことは非常に困難です。同音異義語、同音異義語、皮肉、慣用句、比喩、文法や用法の例外、文章構造の変化など、人間の言語の不規則性は、人間が何年もかけて習得するものですが、プログラマーは、自然言語駆動のアプリケーションが有用であるためには、最初から認識して正確に理解できるように教えなければなりません。
いくつかのNLPタスクは、人間のテキストや音声データを分解して、コンピュータが摂取しているものを理解できるようにします。これらのタスクには次のようなものがあります。
音声認識(Speech-to-Textとも呼ばれる)は、音声データを確実にテキストデータに変換する作業です。音声認識は、音声による命令に従ったり、音声による質問に答えたりするアプリケーションに必要です。音声認識が特に難しいのは、人間の話し方にあります。すなわち、速く、言葉をだらだらと並べ、強調やイントネーションを変え、さまざまなアクセントで話し、間違った文法を使うことも少なくありません。
品詞タグ付けは、文法タグ付けとも呼ばれ、特定の単語やテキストの一部の品詞を、その使用状況や文脈に基づいて決定するプロセスです。品詞は、「I can make a paper plane」では「make」を動詞として、「What make of car do you own」では「make」を名詞として識別します。
語義曖昧性解消とは、複数の意味を持つ単語の意味を、意味分析のプロセスを通じて選択し、与えられた文脈で最も意味を持つ単語を決定することです。例えば、語義曖昧化は、「make the grade」(達成する)と「make a bet」(賭ける)の動詞「make」の意味を区別するのに役立ちます。
名前付きエンティティ認識(NEM)は、単語やフレーズを有用なエンティティとして識別します。NEMは、「ケンタッキー」を場所として識別したり、「フレッド」を人の名前として識別したりします。
Co-reference resolution(共参照の解決)は、2つの単語が同じエンティティを参照しているかどうか、またいつ参照しているかを識別するタスクです。最も一般的な例は、ある代名詞が指す人や物を特定することですが(例:「she」=「Mary」)、文章中の比喩や慣用句を特定することも含まれます(例:「bear」が動物ではなく、大きな毛むくじゃらの人であることを特定すること)。
センチメント分析は、主観的な性質(態度、感情、皮肉、混乱、疑念など)をテキストから抽出しようとするものである。
自然言語生成は、音声認識やSpeech-to-Textとは逆に、構造化された情報を人間の言語に変換する作業と表現されることもあります。