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 環境
推奨スペック
| 用途 | GPU | VRAM |
|---|---|---|
| 推論(BERT) | GTX 1660 | 6GB |
| ファインチューニング(BERT) | RTX 4060 Ti | 16GB |
| LLM 推論(7B) | RTX 4060 Ti | 16GB |
| LLM 推論(70B) | RTX 4090 × 2 | 48GB+ |
| LLM 学習 | A100 | 80GB |
関連用語
- LLM(Large Language Model)
- BERT、GPT、Llama、Claude
- Transformer、Attention
- RAG(Retrieval-Augmented Generation)
- Hugging Face、LangChain