自然言語処理(NLP)とは
自然言語処理は、人間と同じように、テキストまたは音声のデータ(および機械自身のテキストまたはスピーチ)を理解し対応できる機械の構築を目指した一連の技術です。
自然言語処理を用いてメタデータを抽出するサービス
青いドットがある黒い背景
自然言語処理とは

自然言語処理(NLP)は、人間と同じようにテキストや音声言語を理解できる機能をコンピューターに与えることに関連したコンピューター・サイエンスの一分野(さらに具体的に言うなら、 人工知能つまりAIの一分野)のことを指します。

NLPはコンピューター言語(人間の言語のルール・ベースのモデリング)を統計モデル、機械学習モデル、およびディープ・ラーニング・モデルと組み合わせます。 これらの技術をまとめて使うことで、コンピューターはテキストや音声データなどの形式の人間の言語を処理し、その意味を発話者または執筆者の意図や感情とともに完全に「理解」します。

NLPでは、1つの言語から他の言語へテキストを翻訳し、音声による指示に対応し、大量のテキストを迅速に(リアルタイムでも可能です)まとめるコンピューター・プログラムが使用されています。 皆さんは、音声で作動するGPSシステム、デジタル・アシスタント、音声言語をテキストに起こすソフトウェア、カスタマー・サービス・チャットボット、およびその他、消費者の利便性を高めるものを通してNLPに触れてきたことでしょう。 しかし、NLPは、業務の効率化、従業員の生産性の向上、基幹業務ビジネスのプロセスの簡素化を助ける企業向けのソリューションで、さらに多くの役割を果たすようになっています。

IBM Watson自然言語処理テキスト分析のデモを見る
NLPのタスク

人間の言語は、あいまいなものであふれています。そのあいまいさが、テキストまたは音声データが意図する意味を正確に判別するソフトウェアを作成することを、ますます難しくしています。 同音同形意義語、同音異義語、皮肉、イディオム、比喩、例外的な文法や例外的な用法、さまざまな種類の文章構造などがあります。これらは、人間が何年にもわたって学習する不規則な人間言語の一部にすぎません。しかし、自然言語駆動型アプリケーションを有用なものとするには、プログラマーはこれらの不規則な人間言語をアプリケーションに教え、アプリケーションが最初から正確に認識・理解できるようにする必要があります。

複数のNLPタスクでは、コンピューターが取り込んだ人間のテキストと音声データを理解できる形で、細分化します。 以下に、これらのタスクの一部を挙げます。

  • 音声認識(テキストの読み上げとも呼ばれます)は、音声データをテキスト・データに確実に変換するタスクです。 音声認識は、音声による指示に従ったり、音声による質問に答えたりするあらゆるアプリケーションで必要とされます。 特に音声認識を難しくする要因は、人々の話し方です。人は早口で話したり、言葉をつなげたりします。強調やイントネーションも変わり、人によってアクセントも異なります。また、誤った文法を使用することもあります。
  • 品詞タグ付け(文法的タグ付けとも呼ばれます)とは、特定の言葉またはその使用法とコンテキストに基づくテキストの一部の品詞を判別するプロセスのことです。 品詞タグ付けでは「I can make a paper plane」という文では「make」を動詞として、「What make of car do you own?」という文では、「make」を名詞として識別します。
  • 語義のあいまい性解消は、特定のコンテキストで最も意味のある言葉を決める意味解析のプロセスを介して、 複数の意味を持つ言葉の意味を選択することを指します。 例えば、語義のあいまい性の解消は、動詞 「make」は、「make the grade」では、「達成する」という意味で、「make a bet」では「賭けをする」という意味であるというように意味を区別する助けとなります。
  • 固有表現抽出 (NEM)は単語またはフレーズを有用なエンティティーとして特定します。 NEMにより、「Kentucky」は場所で「Fred」は男性の名前であることが特定されます。
  • 共参照解析は、2つの単語が、同じエンティティーを指している場合にそれを特定するタスクです。 よくある例は、特定の代名詞が指す人または物を判別すること(例:「she」が「Mary」を指すこと)ですが、 テキスト中の比喩やイディオムの特定 (例:「bear」が動物ではなく、体が大きくて毛が多い人のことを指すという事例)も含まれます。
  • 感情分析 は、テキストから主観的な性質(態度、感情、皮肉、混乱、疑惑)を抽出しようと試みます。
  • 自然言語生成 は、音声認識またはテキストの読み上げとは反対のものとして説明されます。これは、構造化された情報を人間の言語にするタスクです。

これらの概念がどのように関連するかについて詳しくは、「NLPとNLUとNLG:3つの自然言語処理の概念の違い」(英語)を参照してください。

NLPのツールとアプローチ

PythonとNatural Language Toolkit(NLTK)

Pythonのプログラミング言語は、特定のNLPタスクに取り組むための幅広いツールとライブラリーを提供しています。 これらの多くは、NLPプログラムを構築するためのライブラリー、プログラム、教育リソースを集めたオープンソース・コレクションであるNatural Language ToolkitまたはNLTKに存在するものです。

NLTKには上記の多くのNLPのタスクのためのライブラリーに加えて、文の構文解析、単語のセグメンテーション、互換処理と見出し語解析(単語を語源までトリミングする手法)、トークン化(コンピューターがテキストをより理解できるように、フレーズ、文、段落、節をトークンに分割すること)のようなサブタスクのためのライブリーが含まれています。 これには、テキストから抽出された事実に基づいて論理的な結論に達する機能である、語義の推論などの機能を導入するためのライブラリーも含まれています。

統計的NLP、機械学習、ディープ・ラーニング

最初期のNLPアプリケーションは、特定のNLPタスクを実行できるハンド・コーディングの、ルール・ベースのシステムでしたが、無限のように見える例外や、量が増え続けるテキストや音声データを収容するために拡張することはできませんでした。

統計的NLPを入力することで、コンピューター・アルゴリズムを機械学習やディープ・ラーニングモデルと組み合わせ、自動でテキストや音声データの要素を抽出・分類・ラベル付けし、その後、これらの要素において考えられる意味のそれぞれに統計的な可能性を割り当てます。 今日、畳み込みニューラル・モデル(CNN)と回帰型ニューラル・ネットワークに基づいたディープ・ラーニング・モデルと学習技法は、「学習」を行うNLPシステムが、機能し、莫大な量の一連の生の構造化やラベル付けがされていないテキストや音声データからより正確な意味を抽出できるようにします。 

これらのテクノロジーとその学習アプローチのニュアンスについて詳しくは「AI、機械学習、ディープ・ラーニング、およびニューラル・ネットワークの相違点」(英語)を参照してください。

NLPのユースケース

自然言語処理は、現実世界で利用されている最新のアプリケーションの多くに存在する機械知能の背後にある原動力です。 以下にその例を一部ご紹介します。

  • スパム検出: スパム検出は、NLPソリューションとして考えにくいかもしれませんが、最上位のスパム検出技術は、NLPのテキスト分類機能を使用してスパムまたはフィッシングであることを示唆する言語がないか、メールをスキャンします。 これらの指標は、金融用語、誤用が特徴的な文法、脅し文句、不適切な強要、スペルの違う会社名などの濫用を含む可能性があります。 スパム検出は、専門家が「ほとんど解決した」と考える、ごくわずかなNLPに関わる問題の1つにすぎません(もっとも、自身がEメールで実際に体験したケースには当てはまらないという意見もあると思われますが)。
  • 機械翻訳: Google翻訳は、幅広く使用できる現在稼働中のNLPテクノロジーの一例です。 本当に有用な機械翻訳は、ある言語で書かれた単語を別の言語の単語に置き換えるだけではありません。  効果的な翻訳では、入力言語の意味と文調を正確に捕らえ、出力言語で書かれた、同じ意味と望ましい効果を持つテキストに翻訳する必要があります。 機械翻訳のツールは、正確性に関して言うと、優れた進化を遂げてきています。 あらゆる機械翻訳ツールをテストするのに最良な方法は、テキストをある言語に翻訳し、元の言語に翻訳し直すことです。 よく引き合いに出される例を紹介します。つい最近まで、「The spirit is willing but the flesh is weak」という英語をロシア語に翻訳し、それから英語に戻すと、「The vodka is good but the meat is rotten」という文が生成されました。 今日では、「The spirit desires, but the flesh is weak」と出力されます。これもまだ完璧ではありませんが、英語からロシア語への翻訳において、以前よりも進化しているという自信を鼓舞してくれるものです。
  • 仮想エージェントとチャットボット: AppleのSiriやAmazonのAlexaのような仮想エージェントは音声認識を使用して、音声による指示のパターンと自然言語の生成のパターンを認識し、適切なアクションまたは、有用なコメントで対応します。 チャットボットは入力されたテキスト入力に対応して同じ作業を実行します。 これらの中で最良のものは、人間の要求に関するコンテキスト上の手掛かりを認識する方法も学習し、それらを使ってさらに適切な対応またはオプションを長期にわたって提供します。 これらのアプリケーションで次に強化が必要なのは、アプリケーション自身の言葉で明瞭で有用な回答で質問に答えること(予期されたものであるかは別として、私たちの質問に対応する能力)です。
  • ソーシャル・メディアの感情分析:NLPは、隠されたデータの洞察をソーシャル・メディア・チャネルから明らかにするために重要なビジネス・ツールとなりました。 感情分析では、企業が製品の設計、広告キャンペーンなどに使用できる情報である、製品、プロモーション、イベントに対応する態度と感情を抽出するために、ソーシャル・メディアの投稿、反応、レビューなどで使用される言語を分析できます。
  • テキストの要約:テキストの要約はNLP技術を使って、莫大な量のデジタル・テキストを体系化し、索引、研究データベース、または忙しくてテキスト全部を読む時間のない読者のために、要約や梗概を作成します。 最上位のテキストようやくアプリケーションは、語義の推論と自然言語の生成(NLG)を使用し、要約にとって有用なコンテキストや結論を追加します。
関連ソリューション
Watson Natural Language Processing

AI搭載のエンタープライズ・サーチ・テクノロジーを使用して、ビジネス・データから重要な答えと洞察を見いだします。

詳細はこちら
Watson Natural Language Understanding

高度なテキスト分析を行うための自然言語処理(NLP)サービスです。

詳細はこちら
watsonx Assistant

あらゆるチャネルで、お客様の問題を最初に解決します。

詳細はこちら
参考情報 Watsonによる自然言語処理

このNLPの解説書ではさまざまなNLPのユースケースについて説明します。

自然言語処理の初心者向けガイド

自然言語処理が、コンピューターとより自然な会話ができるようにする上で、どのように役立っているのか詳細をご覧ください。

英語を話さない人がより多くの知識を利用できるようにする

IBMは、複数言語の質問応答システムの向上を促進するために、新しいオープンソースのツールキット、PrimeQAの提供を開始しました。これにより、すべての人がWeb上で情報を迅速かつ簡単に見つけられるようになります。

Watson Natural Language Processingの概要

IBM Watsonの自然言語処理サービスを使用して、さらにスマートなアプリケーションを開発できます。

詳細情報はこちら

IBMは、組織が、重要なビジネス上の洞察を得つつ、複雑なビジネス・プロセスを自動化できるようにするNLP駆動型のツールとサービスの先駆者となることで、人工知能領域において革新を起こしました。 HTML、Webページ、ソーシャル・メディアなどの非構造化データ形式のテキストを分析します。 この自然言語ツールキットを活用して、人間の言語に対する理解を深め、コンセプト、キーワード、カテゴリー、語義、感情を特定して、テキスト分類、エンティティー抽出、固有表現抽出(NER)、語義分析、要約を実行します。

Watson Natural Language Understandingの詳細はこちら