自然言語処理のしくみ
自然言語処理は、機械が非構造化言語データを、音声データやテキストデータの解釈、大規模データセット内の複雑な関係の検出と可視化、および新しい言語データの生成に使用できる構造化形式に変換することを目的としています。
人間の言語の生データは、オーディオ信号、Web やソーシャルメディア、ドキュメント、データベースなど、さまざまなソースから入手できます。このデータには、音声コマンド、トピックに対する国民感情、運用データ、メンテナンスレポートなどの貴重な情報が含まれています。自然言語処理では、可視化とトピックモデルを用いてこれらの大規模なデータソースを組み合わせて簡略化し、意味のある洞察に変換することができます。
音声データに対して自然言語処理を実行するには、オーディオセグメント内の人間の音声の存在を検出し、音声からテキストへの変換を実行し、得られたテキストにテキストマイニングと機械学習の手法を適用します。
自然言語処理に向けたデータの準備
テキストを非構造化形式から構造化形式に変換するために自然言語処理で使用される手法には、次のようなものがあります。
トークン化: 通常、これは自然言語処理のためのテキスト処理の最初の手順です。これは、テキストを文や単語に分割することを指します。
ステミング: このテキスト正規化手法では、接辞を除去することで単語をその語幹に変換します。ここでは単純なヒューリスティック ルールが使用されるため、無効な辞書単語が生じる可能性があります。
レンマ化: この高度なテキスト正規化手法では、意味解析と形態素解析を用いて単語の接辞を除去します。たとえば、"building has floors " は "build have floor "になります。
Word2vec: 最も広く実装されている単語埋め込みの手法は、Word2vec です。この手法では、数値ベクトル化により単語の分散表現を作成し、単語間の意味や関係を取得します。
n-gram モデリング: n-gram はテキストドキュメント内の連続する n 個のアイテムの集合を意味します。これには単語、数字、記号、句読点などが含まれる可能性があります。n-gram モデルは、感情分析、テキスト分類、テキスト生成など単語の配列が関係する自然言語処理アプリケーションで役立ちます。
AI を活用した自然言語処理
言語データに基づいて学習を行った AI モデルでは、パターンを認識し、文中の後続の文字や単語を予測できます。自然言語処理モデルを構築するには、ロジスティック回帰や決定木などの従来の機械学習アルゴリズムを使用したり、畳み込みニューラル ネットワーク (CNN)、リカレント ニューラル ネットワーク (RNN)、オートエンコーダーなどのディープラーニング アーキテクチャを使用したりすることができます。たとえば、CNN を使用してテキストを分類したり、RNN を使用して文字の並びを生成したりすることができます。
Transformer モデル (ディープラーニング モデルの一種) は自然言語処理に革命をもたらし、BERT や ChatGPT™ などの大規模言語モデル (LLM) の基礎となっています。Transformer は、シーケンシャルデータの関係を追跡するよう設計されています。Transformer は、入力と出力の間の大域的な依存関係を取得するために自己注意 (Self-Attention) 機構を使用します。
これにより、自然言語処理のコンテキストにおいて、LLM は長期的な依存関係、単語間の複雑な関係、および自然言語に存在するニュアンスを捉えることができます。LLM はすべての単語を並列で処理できるため、学習と推論の実行速度が向上します。
他の事前学習済みのディープラーニング モデルと同様に、自然言語処理における特定の問題を解決するために、事前学習済みの LLM を用いて転移学習を行うことができます。たとえば、日本語テキスト用 BERT モデルをファインチューニングすることができます。
自然言語生成 (NLG) と呼ばれる自然言語処理のもう 1 つのサブ領域には、データが入力された場合にコンピューターが使用するテキスト応答の生成方法が含まれます。NLG は、テンプレートベースのテキスト生成から始まりましたが、AI 手法の活用により、リアルタイムで動的にテキストを生成できるようになりました。NLG タスクには、テキストの要約や機械翻訳などがあります。
自然言語処理は、金融、製造、エレクトロニクス、ソフトウェア、IT、その他の産業分野で、次のような用途に使用されています。
- 肯定的または否定的な感情に基づくレビューの分類の自動化
- 文書内の単語やフレーズの頻度のカウントとトピックモデリングの実行
- 音声記録のラベル付けとタグ付けの自動化
- センサーデータとテキストログデータに基づいた予知保全スケジュールの作成
- 要件の形式化とコンプライアンス チェックの自動化
MATLAB による自然言語処理
MATLAB では、データ準備から展開までの自然言語処理のパイプラインを作成できます。Deep Learning Toolbox™ や Statistics and Machine Learning Toolbox™ を Text Analytics Toolbox™ とともに使用することで、テキストデータに対して自然言語処理を実行できます。また、Audio Toolbox™ を使用することで、音声データに対して自然言語処理を実行できます。
データの準備
ローコードアプリを使用して、自然言語処理用に音声データを前処理できます。信号アナライザーアプリでデータを探索および解析し、信号ラベラーアプリでグラウンドトゥルースに自動的にラベルを付けることができます。オーディオ特徴量の抽出を用いて、ドメイン固有の特徴量を抽出し、時間-周波数変換を行うことができます。次に、speech2text 関数を使用して、音声をテキストに書き起こすことができます。
自然言語処理を適用するためのテキストデータを入手したら、[テキスト データの前処理] ライブ エディター タスクを使用して、非構造化言語データを対話的に構造化形式に変換し、データをクリーニングできます。あるいは、組み込み関数を使用して、プログラムにより NLP データを準備することもできます。
さらに、ワードクラウドと散布図を使用して、テキストデータと自然言語処理のモデルを可視化することもできます。
AI モデリング
分類または回帰を行うために、多くの種類の機械学習モデルの学習を行うことができます。たとえば、数行の MATLAB コードを用いて長期短期記憶ネットワーク (LSTM) を作成し、学習を行うことができます。また、ディープ ネットワーク デザイナー アプリを使用してディープラーニング モデルの作成と学習を行い、精度、損失、検証のメトリクスをプロットしてモデルの学習状況を監視することもできます。
ディープラーニング モデルをゼロから作成するのではなく、事前学習済みのモデルを取得して自然言語処理タスクに直接適用したり、適応させたりできます。MATLAB を使用して、MATLAB Deep Learning Model Hub から事前学習済みネットワークにアクセスできます。たとえば、VGGish モデルを使用してオーディオ信号から特徴量の埋め込みを抽出したり、wav2vec モデルを使用して音声からテキストへの変換を行ったり、BERT モデルを使用して文書分類を行ったりすることができます。また、関数 importNetworkFromTensorFlow または関数 importNetworkFromPyTorch を使用して、TensorFlow™ または PyTorch™ からモデルをインポートすることもできます。
関連するトピック
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)