この日やったこと
会計基準条文取得の残り31件を潰しにかかった。前日Phase Eまでで223件が解決済み(87.8%)、残りは3カテゴリに分かれていた。
- ガイドライン条文 3件
- 連結財務諸表規則 4条文
- 実務指針の条文番号ずれ 2件(18-2項、36-4項)
1つずつ片付けて、最終的にresolved 235件・解決率90.0%に到達した。条文番号付き引用は100%解決。残り26件は条文番号なしの一般参照(「連結C/F作成基準では...」のような言及)だけになった。
ガイドライン条文の取得 -- e-Govに載っていない
最初にガイドライン3件に手をつけた。いつものようにe-Gov法令APIから取得しようとしたが、ガイドラインはe-Govに収録されていなかった。法令ではなく、金融庁が独自に出している文書だからだ。
金融庁のWebサイトからHTMLを直接取得する方向に切り替えた。リダイレクトが入っていたので追跡して、3件分の条文テキストを抜き出した。standards.jsonにはzaimu-guidelineとrenketsu-zaimu-guidelineが登録済みだったので、provisionsファイルの作成だけで済んだ。
正規表現のalternation順序バグ
ガイドラインのprovisionsを作ってビルドし直したところ、resolved数が思ったより伸びない。調査すると、正規表現のalternationで「連結財務諸表規則」が「連結財務諸表規則ガイドライン」より先にマッチしていた。
# NG: 短い方が先にマッチして、ガイドラインが拾えない
r'連結財務諸表規則|連結財務諸表規則ガイドライン'
# OK: 長い文字列を先に置く
r'連結財務諸表規則ガイドライン|連結財務諸表規則'
正規表現のalternationは左から順に評価されるので、部分文字列を含む選択肢は長い方を先に書く必要がある。基本的なことだが、パターンが増えると見落とす。
文字化けの一括修正
alternation順序を直す最中に、ファイル全体にU+FFFD(置換文字)が散在していることに気づいた。「連結財務諸表規則」の「規」が壊れていて、正規表現がそもそもマッチしない状態だった。
ABBREV_TO_ID辞書やパターン定義など5箇所で文字化けを発見し、一括修正した。修正後にビルドし直すと、今まで検出できなかった連結財務諸表規則への条文参照が新たに拾えるようになり、unresolved件数が一時的に増えた。隠れていた引用が表面化した形だ。
連結財務諸表規則の条文取得
文字化け修正で新たに検出されたrenketsu-zaimu-kisokuの条文(3条、14条、84条、90条)をe-Govから取得した。XMLが途中で切れるトラブルがあり、HTMLページから直接取得に切り替えた場面もあった。第3条は附則(改正経過措置)が先に引っかかり、本則の第3条を取り直す一幕もあった。
4条文を登録して再ビルド。resolved 235件(+9)に伸びた。
フォールバック再分類ロジック
残り2件の実務指針18-2項と36-4項。書籍には「実務指針18-2項」とだけ書かれているが、extractorは文脈からCF実務指針(cf-jitsumu-shishin)に振り分けてしまう。実際には持分法実務指針(jicpa-09-mochibuhou-jitsumu)の条文だった。
既存の再分類ロジックはbase_num > 49で金融商品実務指針に振り分けるルールだけだった。これでは18-2や36-4は対象外になる。
provisions_indexを使ったフォールバックを追加した。CF実務指針に該当条文が存在しない場合、他の実務指針系provisionsファイルを順番に探す方式だ。
# CF実務指針に条文が見つからない場合、他の実務指針を探す
if standard_id == 'cf-jitsumu-shishin' and num not in provisions_index.get('cf-jitsumu-shishin', {}):
for alt_id in provisions_index:
if 'jitsumu' in alt_id and num in provisions_index[alt_id]:
standard_id = alt_id
break
再ビルドで18-2と36-4の2件が解決。dedup処理で引用の重複も整理され、total 261件。
最終結果
| 指標 | Before | After |
|---|---|---|
| resolved | 223 | 235 |
| unresolved | 31 | 26 |
| 解決率 | 87.8% | 90.0% |
条文番号付き引用は全て解決済み。残り26件はcf-sakusei-kijunへの一般参照で、条文番号が付いていない「連結C/F作成基準では...」のような言及だ。これらは基準全体への参照なので、個別条文のマッチングとは性質が異なる。対応方針は次回判断する。
振り返り
e-Govで取得 → ガイドラインはFSAサイト → 文字化け発見 → 一括修正 → 正規表現バグ → 連結財規取得 → 再分類ロジック追加、と作業が連鎖的に展開した。1つ直すと次の問題が見える。文字化けを直したら隠れていた引用が出てきて、そこから連結財務諸表規則の条文取得が必要になり、さらに実務指針の再分類ロジックも書き直す流れになった。
正規表現のalternation順序は初歩的なミスだが、パターンが40件以上あると目視では見落とす。長い文字列を先に並べるソート処理を入れておくべきだった。