AI・機械学習
初級

Natural Language Processing(ナチュラルランゲージプロセッシング)

Natural Language Processingは、人工知能・機械学習分野における重要な概念・技術です。

0 回閲覧
0 いいね
2026/4/25 更新
関連タグ
AI
機械学習
初心者向け

Natural Language Processing(自然言語処理、NLP)

概要

Natural Language Processing(自然言語処理、NLP)は、人間の言語(テキスト、音声)をコンピュータで処理・理解・生成する技術分野です。1950 年代から研究され、2010 年代後半から深層学習、特に Transformer の登場によって劇的に進化しました。現代では ChatGPT、Google 検索、DeepL 翻訳、Siri などの形で日常生活に深く浸透し、人類の言語活動を支える基盤技術となっています。

主要なタスク

1. Text Classification(テキスト分類)

  • 感情分析: ポジティブ/ネガティブ判定
  • スパム検出: メールフィルタ
  • トピック分類: ニュースカテゴリ
  • 言語判定: 入力言語の自動判定

2. Named Entity Recognition(固有表現認識、NER)

テキストから人名、地名、組織名、日付などを抽出:

「田中さんは昨日東京で会議に出席した」
→ 田中(人名)、昨日(日付)、東京(地名)

3. Machine Translation(機械翻訳)

  • 統計的機械翻訳(古典)
  • ニューラル機械翻訳(NMT)
  • 主要サービス: Google Translate、DeepL、ChatGPT

4. Question Answering(質問応答)

  • 抽出型: 文書から回答箇所を特定
  • 生成型: 自由な回答生成
  • オープンドメイン: 任意のトピック
  • 代表: SQuAD、Natural Questions

5. Text Summarization(要約)

  • 抽出型: 重要な文を選択
  • 生成型: 新しい文を生成
  • 用途: ニュース要約、論文要約

6. Text Generation(文章生成)

  • 自動記事: ニュース、ブログ
  • 対話システム: チャットボット
  • 創作: 小説、詩

7. Dialogue Systems(対話システム)

  • タスク指向: 予約、カスタマーサポート
  • オープンドメイン: 雑談
  • 代表: ChatGPT、Claude、Gemini

8. Sentiment Analysis(感情分析)

  • ポジティブ/ネガティブ/中立
  • 細粒度: 喜び、怒り、悲しみ
  • 用途: ブランド監視、レビュー分析

9. Coreference Resolution(共参照解析)

代名詞が何を指すかを特定:

「太郎は本を買った。彼はそれを読んだ。」
→ 彼 = 太郎、それ = 本

10. Semantic Role Labeling(意味役割付与)

文の構造を解析:

「太郎が花子にプレゼントを贈った」
→ 動作主: 太郎、対象: 花子、物: プレゼント

技術の進化

規則ベース(1950-1990)

  • 文法規則: 手動で記述
  • 辞書: 単語の意味
  • 問題: 例外処理、スケール

統計的手法(1990-2010)

  • n-gram: 連続語の確率
  • HMM: 隠れマルコフモデル
  • CRF: 条件付き確率場
  • Word2Vec(2013): 単語埋め込み

深層学習(2013-2017)

  • RNN、LSTM: 系列処理
  • Seq2Seq: 翻訳・要約
  • Attention: 長距離依存

Transformer(2017〜)

  • BERT: 理解タスク革命
  • GPT シリーズ: 生成タスク革命
  • T5: すべてをテキストに統一
  • 大規模言語モデル: GPT-3/4、Llama、Claude

現在(2024〜)

  • LLM の汎用化: 単一モデルで多タスク
  • マルチモーダル: テキスト + 画像 + 音声
  • エージェント AI: 自律的タスク実行
  • RLHF: 人間フィードバックで調整

主要なモデル

単語埋め込み

  • Word2Vec: Google、2013
  • GloVe: Stanford、2014
  • FastText: Facebook、2016

エンコーダー系

  • BERT: Google、2018
  • RoBERTa: Facebook、2019
  • DeBERTa: Microsoft、2020

デコーダー系

  • GPT-2: OpenAI、2019
  • GPT-3: OpenAI、2020(175B)
  • GPT-4: OpenAI、2023
  • Llama 3: Meta、2024
  • Claude 4: Anthropic、2025

エンコーダー・デコーダー

  • T5: Google、2019
  • BART: Facebook、2019
  • PaLM: Google、2022

多言語

  • mBERT、XLM-R: 多言語 BERT
  • mT5: 多言語 T5
  • BLOOM: 176B、46 言語

日本語 NLP

形態素解析

  • MeCab: 定番
  • Sudachi: Works Applications
  • GiNZA: 統合ライブラリ
  • Juman++: 京都大

日本語モデル

  • Tohoku BERT: 東北大、最も広く使われる
  • rinna: 対話特化
  • Stockmark: ビジネス特化
  • ELYZA: ELYZA
  • Swallow: 東京工業大
  • CyberAgent LM

トークナイゼーション

  • 文字単位: 文字 BERT
  • サブワード: SentencePiece、BPE
  • 形態素 + サブワード: MeCab + WordPiece

主要ライブラリ

Python

  • Hugging Face Transformers: 事実上の標準
  • spaCy: 高速、商用利用可
  • NLTK: 教育向け、古典
  • Gensim: トピックモデル、Word2Vec
  • Stanza: Stanford、多言語
  • AllenNLP: AI2、研究向け

日本語特化

  • MeCab: 形態素解析
  • GiNZA: 統合ライブラリ
  • Sudachi: 形態素解析
  • KyTea: 京都大、軽量

LLM 関連

  • LangChain: LLM アプリ開発
  • LlamaIndex: RAG 特化
  • Haystack: 検索・QA
  • DSPy: プロンプト最適化

実装例

感情分析(Hugging Face)

from transformers import pipeline

classifier = pipeline("sentiment-analysis")
result = classifier("I love this movie!")
print(result)
# [{'label': 'POSITIVE', 'score': 0.999}]

日本語形態素解析(GiNZA)

import spacy

nlp = spacy.load("ja_ginza")
doc = nlp("東京から大阪まで新幹線で行きました。")

for token in doc:
    print(token.text, token.pos_, token.dep_)

ChatGPT API

from openai import OpenAI

client = OpenAI()
response = client.chat.completions.create(
    model="gpt-4o",
    messages=[
        {"role": "user", "content": "機械学習について説明して"}
    ]
)
print(response.choices[0].message.content)

評価指標

分類

  • Accuracy、Precision、Recall、F1
  • AUC-ROC: 二値分類

生成

  • BLEU: 翻訳、n-gram 一致
  • ROUGE: 要約、リコール
  • METEOR: 意味的類似度
  • BERTScore: BERT ベース
  • Human Evaluation: 最終的な判断

LLM 特化

  • MMLU: 知識・推論
  • HumanEval: コード生成
  • GSM8K: 数学問題
  • MT-Bench: 対話能力

実用アプリケーション

検索エンジン

  • Google: BERT、MUM
  • Bing: GPT-4
  • DuckDuckGo

翻訳

  • DeepL: 品質重視
  • Google Translate: 言語数
  • Microsoft Translator

対話 AI

  • ChatGPT: OpenAI
  • Claude: Anthropic
  • Gemini: Google
  • Copilot: Microsoft

カスタマーサポート

  • チャットボット
  • FAQ 検索
  • 自動応答

コンテンツ生成

  • ブログ、記事自動生成
  • マーケティングコピー
  • SEO 最適化

文書処理

  • 契約書レビュー
  • 論文検索
  • リーガルテック

教育

  • Duolingo: 言語学習
  • Grammarly: 文法チェック
  • Quillbot: 言い換え

課題

1. バイアス

  • 学習データの偏見: 性別、人種、文化
  • 対策: データ精選、RLHF、公平性評価

2. ハルシネーション

  • 存在しない事実の生成
  • 対策: RAG、ファクトチェック

3. 説明可能性

  • ブラックボックス
  • 対策: Attention 可視化、Probing

4. 多言語対応

  • 低資源言語: データ不足
  • 対策: 多言語モデル、Zero-shot

5. プライバシー

  • 機密情報の漏洩
  • 対策: Differential Privacy、ローカル実行

自作 PC での NLP 環境

推奨スペック

用途GPUVRAM
推論(BERT)GTX 16606GB
ファインチューニング(BERT)RTX 4060 Ti16GB
LLM 推論(7B)RTX 4060 Ti16GB
LLM 推論(70B)RTX 4090 × 248GB+
LLM 学習A10080GB

関連用語

  • LLM(Large Language Model)
  • BERT、GPT、Llama、Claude
  • Transformer、Attention
  • RAG(Retrieval-Augmented Generation)
  • Hugging Face、LangChain
この記事について
カテゴリーAI・機械学習
難易度初級
作成日2025/7/11