自然言語処理
自然言語処理とは
自然言語処理(NLP:Natural Language Processing)は、人間が日常的に使う言葉(自然言語)をコンピュータで処理する技術分野です。プログラミング言語のように厳密な文法を持つ「人工言語」と対比して、日本語や英語を「自然言語」と呼びます。
自然言語はあいまいで、同じ言葉が文脈で意味を変えます。「結構です」が承諾にも拒否にもなるように、文脈の理解が自然言語処理の長年の難題でした。
代表的なタスク
| タスク | 内容 | 身近な例 |
|---|---|---|
| 機械翻訳 | 言語間の変換 | 翻訳サービス |
| 文書分類 | テキストをカテゴリに分ける | 迷惑メールフィルタ |
| 感情分析 | 文章の肯定・否定を判定 | レビュー分析 |
| 固有表現抽出 | 人名・地名・日付などを抜き出す | 契約書からの情報抽出 |
| 要約 | 長文を短くまとめる | ニュース要約 |
| 質問応答 | 質問に答える | チャットボット、検索 |
ルールから学習へ、そしてLLMへ
自然言語処理のアプローチは大きく3段階で進化してきました。
- ルールベース — 文法規則や辞書を人手で作り込む。例外だらけの自然言語には限界があった
- 統計・機械学習 — 大量のテキストから単語の出現パターンを学ぶ([[機械学習の基礎]])。単語を数値ベクトルで表す [[埋め込みとベクトル検索]] の考え方もここで発展した
- ニューラル・LLM — [[Transformer]] の登場で文脈理解が飛躍し、1つのモデルが翻訳も要約も質問応答もこなす [[生成AI・LLM]] の時代になった
かつてはタスクごとに専用システムを作っていましたが、今は汎用の LLM に指示を変えるだけで多くのタスクをこなせます。
初学者向けポイント
- LLM 全盛でも、NLP の基本概念(トークン分割・埋め込み・タスクの分類)は生きています。[[トークンとトークナイザ]] は LLM 理解の入口です
- 分類のような単純なタスクなら、LLM より軽量な従来手法の方が高速・低コストな場合もあります
- 「何のタスクを解いているのか」を意識すると、AIサービスの構造が見えやすくなります
関連技術とのつながり
- [[生成AI・LLM]] — 自然言語処理の現在の主役
- [[トークンとトークナイザ]] — テキストを処理単位に分割する前処理
- [[機械学習の基礎]] — 統計的NLPの土台
- [[埋め込みとベクトル検索]] — 言葉を数値ベクトルで表す中核技術
- [[Transformer]] — 文脈理解を飛躍させたアーキテクチャ
Q: 自然言語処理の「自然言語」とは何を指す?
- [x] 日本語や英語など人間が日常的に使う言葉
- [ ] JavaScriptなどのプログラミング言語
- [ ] 動物の鳴き声
解説: 厳密な文法を持つ人工言語(プログラミング言語)と対比して、人間の日常の言葉を自然言語と呼びます。
Q: 迷惑メールフィルタに使われている自然言語処理のタスクはどれ?
- [ ] 機械翻訳
- [x] 文書分類
- [ ] 音声合成
解説: メールを「迷惑/通常」のカテゴリに分ける文書分類の応用例です。
Q: 自然言語処理のアプローチの進化の順序として正しいものはどれ?
- [ ] LLM → ルールベース → 統計・機械学習
- [x] ルールベース → 統計・機械学習 → ニューラル・LLM
- [ ] 統計・機械学習 → ルールベース → LLM
解説: 人手のルールから統計的学習へ、そして Transformer 以降のニューラル・LLM へと進化してきました。