構造化テキスト解析における正規表現 vs LLM
構造化テキスト(クイズ、フォーム、請求書、ドキュメント)を解析するための実用的な意思決定フレームワーク。核心的な洞察:正規表現は低コストかつ決定論的に95〜98%のケースを処理できる。コストのかかるLLM呼び出しは残りのエッジケースに留める。
使用場面
- 繰り返しパターンを持つ構造化テキスト(設問、フォーム、表)の解析
- テキスト抽出に正規表現とLLMのどちらを使うかの判断
- 両方のアプローチを組み合わせたハイブリッドパイプラインの構築
- テキスト処理におけるコスト/精度のトレードオフの最適化
意思決定フレームワーク
アーキテクチャパターン
実装
1. 正規表現パーサー(大半のケースを処理)
2. 信頼度スコアリング
LLMによるレビューが必要かもしれない項目にフラグを立てる:
3. LLM バリデーター(エッジケースのみ)
4. ハイブリッドパイプライン
実際のメトリクス
本番のクイズ解析パイプライン(410項目)より:
ベストプラクティス
- 正規表現から始める — 不完全な正規表現でも改善のベースラインになる
- 信頼度スコアリングを使用して、LLMの助けが必要なものをプログラムで特定する
- 最も安価なLLMを使用して検証する(Haikuクラスのモデルで十分)
- 解析済み項目を変更しない — クリーニング/検証ステップから新しいインスタンスを返す
- TDDは解析器に効果的 — まず既知のパターンのテストを書き、次にエッジケースを書く
- メトリクスを記録(正規表現の成功率、LLM呼び出し回数)してパイプラインの健全性を追跡する
避けるべきアンチパターン
- 正規表現が95%以上を処理できる場合に全テキストをLLMに送る(コスト高・低速)
- 自由形式で高度に可変なテキストに正規表現を使用する(LLMの方が適切)
- 信頼度スコアリングをスキップして正規表現が「うまくいく」ことを期待する
- クリーニング/検証ステップで解析済みオブジェクトを変更する
- エッジケースをテストしない(不正な入力、欠損フィールド、エンコーディング問題)
適用場面
- クイズ/試験問題の解析
- フォームデータの抽出
- 請求書/レシートの処理
- ドキュメント構造の解析(見出し、セクション、表)
- 繰り返しパターンがあり、コストが重要なあらゆる構造化テキスト


