🏠
OCRファインチューニング入門 — 日本語不動産契約書を読む自分のモデル作り
TrOCR + Trainer.train() — 感情分析ファインチューニングと全く同じパターン
感情分析 vs OCR — 構造は同じ
以前学んだ感情分析:
データ:テキスト+ラベル
モデル:DistilBERT
trainer.train() → 自分のモデル
OCRファインチューニング:
データ:画像+正解テキスト(契約書写真→「甲は乙に対して...」)
モデル:TrOCR
trainer.train() → 自分のモデル
inputがテキストから画像に変わっただけ。 Trainer.train()は同一。
なぜTrOCRが最も簡単か
TrOCRは標準的なVisionEncoderDecoderModel。HuggingFace Trainerとそのまま互換。
シナリオ:日本語不動産契約書OCR
一般OCRの誤認識:「甲」→「申」、「賃貸借」→「賃貸偕」、「㎡」→「m2」。ファインチューニングで契約書特有の文字・用語を教える。
ステップ
- データ準備:契約書画像+正解テキストのペア
- Dataset作成:画像→ピクセルテンソル、テキスト→トークンID
- ファインチューニング:
Seq2SeqTrainer.train() - 推論:自分のモデルで新しい契約書画像→認識テキスト
より簡単な代替:manga-ocrのファインチューニング
manga-ocrは既に日本語を理解。契約書へのファインチューニングに必要なデータが少ない(英語TrOCRの数万個 vs 数百個)。
キーコンセプト
1
データ準備 — 契約書画像を行単位クロップ+正解テキストCSV
2
Datasetクラス — 画像→pixel_values、テキスト→labels(トークンID)
3
TrOCRロード — VisionEncoderDecoderModel.from_pretrained()
4
Seq2SeqTrainer.train() — 感情分析のTrainer.train()と同じもの
5
自分のモデルで推論 — 新しい契約書画像→正確なテキスト
ユースケース
不動産契約書OCR — 甲/乙、賃貸借、㎡などの専門用語認識精度向上
医療文書OCR — 処方箋・診断書の医学用語特化
古文書デジタル化 — 特定時代/書体の文書に特化