【要約】Excel読み取り、市販パーサ65%・自作の前処理89% [Zenn_Python] | Summary by TechDistill
> Source: Zenn_Python
Execute Primary Source
// Problem
開発者がRAG構築において、Excelの読み取り精度が向上しない問題に直面した。
- ・市販パーサ(markitdown等)はMarkdown変換を主目的とする。
- ・そのため、セルの値以外の情報がモデルに届かない。
- ・具体的には、グラフのタイトルやピボット構造、シートの保護状態が欠落する。
- ・また、行数が多い大きな表は、テキスト化の過程で情報が切り詰められる。
- ・結果として、モデルは「値」は読めても「構造」や「文脈」を理解できない。
// Approach
筆者は、セルの値と構造情報を分離した「中間表現(JSON)」を生成する手法を採用した。
- ・値(units)と構造(structure/xlsx)を明確に分けて保持する。
- ・グラフやピボットテーブルの情報を、Excel内部のXML等から抽出して集約する。
- ・中間表現を「索引」として定義し、情報が不足する際は元ファイルへ再取得しに行く。
- ・大きな表に対しては、要約ではなくpandas等で直接集計し直す経路を構築する。
- ・これにより、モデルが「値」と「構造」を混同せず、正確に扱えるようにした。
// Result
検証の結果、自作の前処理を用いることで正答率が劇的に改善した。
- ・Claude Sonnetを用いた検証で、正答率が62.1%から89.4%へ向上した。
- ・大きな表の処理において、正答率が33%から78%へ大幅に改善した。
- ・グラフやピボットテーブル、シートの状態に関する問題で100%を達成した。
- ・「値以外の情報」が欠落していた問題が、中間表現によって解消された。
- ・これにより、市販パーサでは到達できない高度な読解が可能となった。
Senior Engineer Insight
> 精度向上の鍵はパーサの変換精度ではなく、情報の「伝達範囲」にある。RAGにおいてExcelを扱う場合、単なるテキスト化は不十分だ。特に財務分析等の現場では、グラフや書式が重要な意味を持つ。実装コストとのトレードオフを考慮し、まずは「大きな表の再集計経路」から着手すべきである。また、ベンチマークの自動採点ミスを疑う、実務的な検証姿勢も忘れてはならない。