Technology

解析パイプライン

解析は単一の処理ではなく、段階ごとに壊れ方が異なる処理の連なりです。段階を分けているのは、どこで判断を誤ったかを特定できるようにするためです。

提供状況: 開発中

段階の分け方

各段階は前段の出力だけを入力とし、途中結果を保存します。これにより、判定結果が変わったときに、取得内容が変わったのか判定ロジックが変わったのかを区別できます。

  1. 取得 (fetch)

    HTTPステータス、ヘッダー、初期HTMLを保存します。レンダリングはこの段階では行いません。

  2. 描画 (render)

    必要なページのみJavaScript実行後のDOMを取得し、初期HTMLとの差分を記録します。

  3. 抽出 (extract)

    タイトル、見出し階層、本文、リンク、構造化データを構造として取り出します。

  4. 正規化 (normalize)

    抽出結果を、判定ロジックから独立したスキーマへ変換します。

  5. 判定 (evaluate)

    正規化データに対して規則を適用し、検出根拠つきの結果を出します。

  6. 比較 (compare)

    内部期待値および前回結果と突合し、回帰を検出します。

決定性の確保

同じ入力から常に同じ結果が出ることを前提にしています。現在時刻、乱数、地域判定、外部ネットワークに依存する処理は判定段階に入れません。

検証対象サイト(このサイト自体を含む)も同じ制約で作られています。ビルドのたびに文言が揺れるページは、回帰テストの基準になりません。

状況AI APIによる評価は現在の判定段階には含まれていません。外部AIの応答は非決定的な観測として、別枠で扱う計画です。

検査点

段階の境界には、通過してはいけない条件を置いています。

  • 抽出失敗を「問題なし」として扱わない
  • 判定不能と判定合格を区別して記録する
  • 内部期待値を判定ロジック側から参照しない
  • 公開成果物に内部期待値を含めない

Explore next

検証方法論を見る

検証方法論を見る

最終更新: