【要約】法令の別表をAIに読ませると行がずれる — Markdownのパイプ表を捨てた話 [Zenn_Python] | Summary by TechDistill
> Source: Zenn_Python
Execute Primary Source
// Problem
開発者が法令データをLLMに読み込ませる際、別表の構造が原因で誤った回答を得る問題に直面している。具体的には以下の課題がある。
- ・Markdownのパイプ表はrowspan/colspanを表現できず、結合セルの情報が失われる。
- ・LLMが空欄を「該当なし」と誤解したり、文脈を見失ったりする。
- ・e-Gov XML特有の「罫線による暗黙の結合」がrowspan属性なしで行われている。
// Approach
開発者は、表形式を廃止し、1行ごとに意味が完結するフラットなレコード形式への変換を採用した。
- ・結合を解き、親セルの値を各行に複製して1行完結のエントリを作成する。
- ・空文字列を「(なし)」と明示し、LLMの誤解を防ぐ。
- ・2段ヘッダを「グループ名(サブ名)」として合成し、列名だけで意味が閉じるようにする。
- ・罫線属性(BorderTop/Bottom="none")を解析し、結合セルを正確に特定する。
- ・読替え規定は「規定: A → B」の形式に構造化して出力する。
// Result
開発者は、LLMが誤読しにくいデータ構造を構築し、参照関係を維持したまま情報を渡せるようになった。
- ・トークン数は1.5〜2倍に増加するが、回答の正確性が大幅に向上した。
- ・長文コンテキストモデルへの全文投入により、条文間の参照を辿れることを確認した。
- ・変換不能な要素を明示することで、データの網羅性を担保する設計を実現した。
Senior Engineer Insight
> LLMへの入力最適化において、「人間向けの整形」が「情報の欠落」を招くという逆転現象を突いた優れた知見だ。トークンコスト増を許容してでも精度を優先する判断は、実務において妥当である。ただし、変換ロジックがヒューリスティックであるため、網羅性を保証するための検証パイプラインの構築が実運用での必須条件となるだろう。