即戦力化　ディープラーニング実習（第六週）

# 【第６週】情報抽出（NER）

講義目録：<a href="https://qiita.com/takenakayoichi/items/3b7435f4b155a181e39f">即戦力化　ディープラーニング実習 </a>

## はじめに

第6週では、**文章から特定の情報（名前・場所・日付など）を自動で抽出する技術**である  
**Named Entity Recognition（名前付きエンティティ認識、NER）** に挑戦します。

これまで扱ってきた「文章の生成（txt2txt）」や「ラベル分類（txt2cls）」に加えて、  
今回は **文章内の“単語やフレーズ”に着目し、対象をタグ付けする** という新しい視点での自然言語処理を体験します。

たとえば、次のような文章を考えてみてください。

```text
2025年5月27日、大阪で開催された人工知能学会において、山田太郎氏が基調講演を行った。
```
この文章から次のような情報を取り出します。

- 場所：**大阪**
- 組織：**AI国際会議**
- 人名：**山田太郎**

このように「文章の中に埋め込まれた重要な情報を取り出す」処理をNERと言います。


今週もcolab上で日本語NERモデルを動かし、  
「文から名前・場所・日付をどう取り出すか？」について学びましょう！

**Google Colabへのリンク**
- [情報抽出のcolab](https://colab.research.google.com/drive/1LZKQkhSEleKdKV_7N9oSnmEkRnys00eM?usp=sharing)

## 1. 実習の目的

- 名前付きエンティティ認識（Named Entity Recognition, NER）の概要を理解する
- Hugging Face 上の日本語対応NERモデルを Google Colab 上で実行する
- 抽出されたエンティティをラベル付きで表示・可視化する
- 実社会の応用（履歴書処理・ニュース要約）を意識した応用例に触れる

## 2. 実習のコード（NERモデルの実行）

NERの概要は**はじめに**に書きましたので、さっそくですが手を動かしてもらいましょう。

今回は、[**`tsmatz/xlm-roberta-ner-japanese`**](https://huggingface.co/tsmatz/xlm-roberta-ner-japanese) を使って、日本語文章から人名・場所・組織名などを抽出します。

なお、このモデルは多言語対応のXLM-RoBERTaをベースに、日本語Wikipediaを元にしたNERデータセットでファインチューニングされたものです。

### 🔧 Google Colabで実行するコード

```python
# 必要なライブラリのインストール
!pip install -q transformers

# モデルとパイプラインの読み込み
from transformers import pipeline

# NERパイプラインの作成（日本語対応モデルを指定）
ner_pipeline = pipeline(
    "token-classification",
    model="tsmatz/xlm-roberta-ner-japanese",
    aggregation_strategy="simple"  # 単語をまとめて表示（トークン単位でなく）
)

# 入力文
text = "2025年5月27日、大阪で開催された人工知能学会において、山田太郎氏が基調講演を行った。"

# NERの実行
results = ner_pipeline(text)

# 結果の表示
for entity in results:
    print(f"{entity['word']} : {entity['entity_group']} ({entity['score']:.2f})")
```


✅ 出力例
```
大阪 : LOC (1.00)
人工知能学会 : EVT (0.99)
山田太郎 : PER (1.00)
```

大阪という**地名**、人工知能学会という**イベント名**、そして、山田太郎という**人名**が抽出されました。

### 出力例の説明

この出力は、NERモデルによって自動抽出された固有表現の一覧です。

各行は次の形式で表示されています：
```
[抽出された語句] : [ラベル] ([スコア])
```

出力例での、`LOC`, `EVT`,`PER`が、ラベルになります。

このラベル一覧を次に示します。

| ラベル   | 意味    |
| ----- | ----- |
| PER   | 人名    |
| LOC   | 地名    |
| ORG   | 組織名   |
| P (ORG-Pの略)| 政府組織  |
| O | その他組織 |
| INS   | 施設    |
| PRD   | 製品    |
| EVT   | イベント  |

ラベル横の数値（例：(0.99)）は、モデルがその語句をそのラベルに分類する**信頼度スコア**（confidence score）を示します。
これは0.00〜1.00の範囲で表され、1.00に近いほど高い確信を持って分類されていることを意味します。

このようにNER出力を読み解くことで、どの語句がどのカテゴリに該当するのか、
またその分類に対するモデルの自信度合いを理解することができます。

### 📝実習問題

次の文のNERを実行しましょう：

- 大阪関西万博の前の万博は、ドバイで開催された。
- 東京特許許可局
- 大阪のUSJでは、マリオの新アトラクションが人気です。
- 任天堂のスイッチ２が発売された

## 3. 実社会での応用例

## 3. 実社会の応用例

Named Entity Recognition（NER）は、単なる技術的な演習にとどまらず、  
**実社会のさまざまな分野で広く活用されている重要な自然言語処理タスク**です。  
ここでは、NERの代表的な応用シーンを紹介します。

---

### ✅ 応用例 1：履歴書・職務経歴書の自動処理

採用システムでは、応募者が提出したPDFやテキスト形式の履歴書から：

- **氏名**（PER）
- **出身地・勤務地**（LOC）
- **所属企業・学校名**（ORG）
- **参加したプロジェクトやイベント**（EVT）

などの情報をNERで抽出することにより、  
**自動マッチング** や **スキルタグ付け** を行うことができます。

---

### ✅ 応用例 2：ニュース記事の情報抽出・要約

ニュースメディアでは、記事中の重要語句（人名・地名・組織名・事件名など）をNERで抽出することで：

- 検索エンジン最適化（SEO）
- タグ自動付与
- 時系列分析・人物ネットワーク構築

などが可能となります。たとえば、「○○首相がパリで演説」という文から：

- 人名：○○首相（PER）  
- 地名：パリ（LOC）  
- 組織：国際会議（EVT）

を抽出し、構造化データベースに格納できます。

---

### ✅ 応用例 3：医療文書の要点抽出

医療記録から患者名（PER）、病院名（ORG）、疾患名や薬剤名（PRD）などを抽出することで：

- 電子カルテの自動要約
- 研究データセットの構築
- 投薬ミス防止システムの基盤

などに活用されます。

なお、医療文書専用の情報抽出モデルといのも存在します。

一例として、[sociocom/MedNERN-CR-JA](https://huggingface.co/sociocom/MedNERN-CR-JA)を挙げておきます。

---

### ✅ 応用例 4：契約書や法的文書の分析

契約書から：

- 契約当事者名（PER / ORG）
- 契約日・期限（日付）
- 対象製品・サービス（PRD）

などを自動抽出することで、  
契約リスクの検出や更新アラートを自動化することができます。

---

このように、NERは「文章を単に読む」だけでなく、  
**“構造化された情報”として抽出・整理し、実務に活かす技術**として重要な役割を担っているのです。

## 🔚 第6週のまとめ

今週は、**Named Entity Recognition（NER）＝名前付きエンティティ認識**という技術に挑戦しました。

NERは、文章の中から **人名（PER）・地名（LOC）・組織名（ORG）・イベント名（EVT）** などを自動で抽出する処理であり、  
検索・要約・構造化・ナレッジグラフ構築など、実社会での応用範囲が広い重要なタスクです。

### ✅ 今週のポイント

- NERとは何か、どのようなカテゴリ（PER, LOC, ORG, EVTなど）を抽出するのかを学びました。
- Hugging Face のモデル [`tsmatz/xlm-roberta-ner-japanese`](https://huggingface.co/tsmatz/xlm-roberta-ner-japanese) を使い、Google Colab上で日本語NERを実行しました。
- 出力された語句とラベル、およびスコアの意味を読み解く力を身につけました。
- 履歴書処理、ニュース記事のタグ付け、医療や契約書分析といった、NERの**実務的な活用例**を確認しました。

---

今後、より大規模な文書処理や検索システムを構築する際にも、NERは基盤技術として不可欠となるでしょう。  
この機会に、仕組みと実行方法をしっかり押さえておいてください。

---

## 🔭 次回予告：「おまけ　音楽の生成」

次回は、通常カリキュラムを少し離れて、「**おまけ：音楽の生成**」に挑戦します 🎵

- テキストから感情やキーワードを読み取り、  
- それをベースに **メロディを自動生成** するAI技術を体験します。

自然言語処理と音楽創作の融合という、異分野連携のユニークな応用例です。

「AIで作曲？」と思われるかもしれませんが、  
詩・歌詞・情景描写などと相性が良く、創作支援やエンタメ分野で注目されています。

どうぞお楽しみに！