人工知能（AI）：自然言語処理・音声認識・音声合成の違いって何？（前半）

応用分野一覧の「自然言語処理」「音声認識」「音声合成」は似ているけれども、何が違うのでしょうか？
前半では「自然言語処理（NLP）」について調べて行きます。

# 自然言語処理 とは
__自然言語処理（NLP:Natural Language Processing）__ とは、人間が日常的に使用する言語（自然言語）をコンピュータが理解、解釈、生成、応答できるようにする技術のことです。
書き言葉を処理するためのアルゴリズムと手法が含まれ、人工知能（AI）や機械学習（ML）の技術が活用されています。

# 自然言語処理の仕組み
### 1\. テキストの入力
自然言語(テキスト)をコンピュータに入力

### 2\. テキストの処理
入力されたデータ(テキスト)を解析可能な形式に変換

<details><summary><strong>変換処理</strong></summary>

<strong>トークナイゼーション</strong>：文を単語やフレーズに分割
(例：「猫が好き」→ ["猫", "が", "好き"])

<strong>形態素解析</strong>：日本語などの複雑な言語での単語の言語幹や助詞などの文法の構造を解析

<strong>ストップワード[^1]の削除</strong>：頻繁に出るが意味を持たない単語（例: 「の」「は」）の削除

<strong>ステミング[^2]/レンマ化[^3]</strong>：単語をその基本形に変換
（例:「踊っている」「踊った」→["踊る"]）

[^1]: __ストップワード__ とは自然言語をコンピュータで処理するにあたって、それ自体ほとんど意味を持たない等の理由で処理対象外とする単語のこと
[^2]: __ステミング__ とは自然言語処理タスク用に単語の活用形を「語幹(:語形変化の基礎になる部分)」に変換するプロセス
[^3]: __レンマ化__ とは正しくは「レンマタイゼーション」と言い、単語の基本形を抽出する方法

自然言語処理の手法として活用される<strong>形態素解析</strong>は、日本語の複雑な文法や単語が混在する文章のなかから、形態素解析ツールに登録されている辞書情報と照らし合わせ、文章として構成される形態素を割り出していく方法でおこなわれます。
</details>

### 3\. テキスト解析
文法や文の意味を解析し、文脈や構造を理解

<details><summary><strong>解析処理</strong></summary>

<strong>構文解析</strong>：文法規則に定める文の構造（主語、記述語、目的語など）を特定

<strong>意味解析</strong>：単語や文章全体の意味を理解
(例:「電気をつけて」と「電気を消して」の表示を区別)

<strong>文脈解析</strong>：前後の手間や単語の関係性を解析

</details>

### 4\. モデルの適用
機械学習や深層学習を利用して、言語の意味や構造を学習し、入力に応じた処理を実行
(例：ルールベースモデル、統計モデル、ニューラルネットワークモデル、など）

### 5\. タスクごとの処理
目的に応じて、特定のタスクを実行

<details><summary><strong>タスク処理</strong></summary>

<strong>論文要約</strong>：テキストを考えて考える
<strong>感情分析</strong>：ポジティブ/ネガティブなどの感情を抽出
<strong>質問応答</strong>：入力された質問に対して適切な回答を生成
<strong>翻訳</strong>：他の言語にテキストを変換

</details>

### 6\. 結果の出力
人間が理解できる形で応答やテキストを生成し、処理結果を出力

# 自然言語処理の主な目的
- __人間とコンピュータの円滑なコミュニケーション__
人間が日常的に使用する言語（自然言語）の意味を解析し、人間がコンピュータと自然な会話をするための技術
- __テキストや音声データの自動処理__
テキストの解析、翻訳、要約、分類などを効率的に行う

# 自然言語処理の応用例
テキスト翻訳、チャットボット、感情分析、自動要約など

# 自然言語処理における3つの概念の違い
### __自然言語処理 (NLP)__ 
人間の言語をコンピューターが理解し、操作する技術です。
言語の構造や意味を解析するだけでなく、情報の生成や変換も行われます。
サブトピックに、自然言語理解と自然言語生成が含まれています。
 
<details><summary><strong>自然言語処理 (NLP)の主な特徴</strong></summary>

__人間の言語の解析と理解__
人間が使う自然（テキストや音声）を解析する言語、文法、意味、中断を理解
(例: 文中の「ぎんこう」が金融機関を指しているのか川岸を指しているのかを判断)

__文脈に基づく処理__
単語や文の意味が慎重に依存する場合、その手間を省いて解析や処理を行う
(例:「彼(は走るの)が速い」と「彼(の時計)が速い」の違いを理解)

__曖昧さの解消__
人間の言語に特有の解消性を解消するためのアルゴリズムを使用
(「明日の予定を調整して」に対して、["誰の予定を？"]などの説明を要求）

__自動的な情報抽出__
大量のテキストデータから重要な情報を自動で抽出
(例:ニュース記事から「出来事」「関係者」「場所」などのキーワードを抽出)

__複数の言語に対応する__
異なる言語間での翻訳や意味解析が可能
(例:Google翻訳やDeepL翻訳での一時翻訳)

__構造化されていないデータの処理__
チャットやSNS投稿、レビューなどの非構造化データを処理し、価値ある情報を引き出す
(例:SNSの感情分析で「ブランドに対してポジティブな意見が多い」と判断)

__応用範囲の広さ__
自然言語処理 (NLP)はさまざまなタスクやアプリケーションで使用可能

</details>

### 自然言語理解 (NLU)
自然言語処理（NLP）の一分野であり、人間の言語（テキストや音声）をコンピューターが捉え、その意味や意図を正確に解釈することを目的とした技術です。

<details><summary><strong>自然言語理解 (NLU)の主な特徴</strong></summary>

__文脈の解釈__
同じ言葉でも意味が異なる場合はそれを正しく理解する
（例:「ぎんこう」→ 俳句を作るための「吟行」か、金融機関の「銀行」か）

__曖昧さを解消__
人間の言葉にある曖昧な表現を会話の背景から解釈
（例：「いいよ」＝承諾？拒否？）

__ユーザーの意図の理解__
発言の直接的な内容（表面の意味）だけでなく、その裏にある意図を解析
（例:「寒いね」→ エアコンをつける提案はできないかもしれません）

__非構造化データの処理__
書き言葉や話し言葉のような非構造化データ[^4]を扱い、構造化[^5]された情報に変換

[^4]: __非構造化データ__ とはネイティブな形式のまま保存され、使用時まで処理されないデータのこと(例:動画、音楽、テキスト)
[^5]: __構造化__ とは物事の全体像を定義し、その中にある構成要素と構成要素間の関係を整理する取り組みのことで、簡単に言ったら「物事を分解して整理する」

</details>

### 自然言語生成 (NLG)
自然言語処理（NLP）の一部であり、コンピュータがデータをベースに、人間が理解できる自然言語でテキストを生成する技術です。
データの自動要約やレポート作成、英語やその他の言語のテキスト生成、対話型システムに活用されています。

<details><summary><strong>自然言語生成 (NLG)の主な特徴</strong></summary>

__データをベースにテキストを作成__
構造化データ（例: 表、数値データ）や非構造化データ（例: 生テキスト）をベースに、人間が読める自然な文章を作成
(例:「2024年12月の売上は売上比20%増加しました。」（データから文章を生成）)

 __文法的に正しいテキストの生成__
自然な言語の文法を規則正しくして、適切な単語の並びや構造を生成
</details>