調査方法論 / Methodology
350万ページの海から、
日本人の名前を見つける方法
2025年12月から2026年1月にかけて、米国司法省(DOJ)は エプスタイン事件に関する文書を段階的に公開した。 約350万ページ、280GB。Data Set 1から12まで12巻にわたる。 この調査の目的はただひとつ——その中に日本人の名前があるかを確かめることだ。
350万ページを人間が1枚ずつ読むことは不可能なため、自動検出プログラムを開発した。 開発の過程で、一部の文書に施された黒塗り(リダクション)が偽装であり、 その下のテキストを復元できることも判明した。 本ページでは「なぜこの手法で得られた結果を信用できるのか」を示すことを目的とする。
データ収集——最大の難関
350万ページを解析する以前に、まず「350万ページを手に入れる」こと自体が極めて困難だった。 DOJはエプスタインファイルを公式サイトおよび Internet Archive(archive.org)で公開しているが、 その公開状態は完全ではない。
DataSet 10を例に挙げる。DOJの公式公開版に収録されているDS10のPDFは約100件に過ぎない。 しかし実際のDS10には503,154件のPDFが存在する。 公開版では99.98%が欠落している計算になる。 EFTA番号帯すら異なり、別データセットと見間違えるほどの乖離がある。
完全なデータは、世界中の有志がtorrentで保存・共有しているコピーに存在する。 本調査でもこのtorrentネットワークを通じて完全データを入手し、 DS10では約180GBのデータをローカル環境でスキャンした。
DataSet 9〜11は本来別々のセットであるにもかかわらず一括公開され、区別が困難な状態になっている。EFTA番号に説明なしの大きなジャンプが複数存在する。公開後に数千件のファイルがDOJサイトから削除された。当初「約600万ページ」と報告されていた総文書数のうち、実際に公開されたのは約350万ページであり、残り250万ページの所在は不明である。
DOJ公開プロセスに関する観察記録 / Epstein Exposure調査チーム /
これらは公開プロセスの不透明さを示す事実であり、 「公開された文書が全てではない」ことを前提に調査を進める必要がある理由でもある。 本調査は入手可能な最大限のデータを対象として実施している。
黒塗りには「本物」と「偽物」がある
PDFの黒塗りには2種類ある。 本物のリダクションはテキストデータそのものを削除し、 その上に黒い矩形を描画する。 EFTA番号が付与されたDOJ正式文書はこの方式で処理されており、 コピー&ペーストしても何も出てこない。
一方、偽装リダクションはテキストデータを残したまま、 その上に黒い矩形を重ねただけのものだ。 PDF Associationの分析によれば、DOJが本体文書に組み込んだ裁判所提出文書 (バージン諸島司法長官の2021年民事訴訟文書など)に この偽装リダクションが確認されている。
Layer 0 ——黒塗りの下を自動で読む
本プログラムではPDFを開いた瞬間に偽装リダクションの検出を行う。 PDFのページ上にある黒い矩形をすべて検出し、 その矩形が覆っている領域にテキストデータが存在するかを確認する。 テキストが存在すれば偽装リダクションと判定し、テキストを復元する。
検出にはFree Law Projectが開発した
x-rayというオープンソースライブラリを使用している。
復元されたテキストには自動的にREDACTED_RECOVEREDのフラグが付与され、
通常のテキストと区別される。
5段階の処理パイプライン
280GBのPDFに対して「日本人の名前」を直接検索するのは効率が悪い。 そこで発想を逆転させた——先に文書中の全固有名詞を抽出し、 その中から日本人を絞り込む。
全固有名詞の抽出
280GBのPDFからテキストを抽出し、大文字始まりの2〜3語の連続、メールヘッダー、 敬称付き名前、全大文字形式、メールアドレス・電話番号を網羅的に拾い上げる。 この段階では国籍を問わない。350万ページが数十万件の固有名詞リストに圧縮される。
日本人フィルタ(6層検出)
Layer 1:事前調査対象者リスト(186名)との完全一致 / Layer 2:日本人の姓185種との照合 / Layer 3:前後文脈に「Japan」「Tokyo」等の関連語 / Layer 4:.jpドメインのメールアドレス / Layer 5:+81(日本の国番号)で始まる電話番号 / Layer 6:ひらがな・カタカナ・漢字の検出。 Layer 1は確実性が高く、Layer 2〜6は「想定外の人物」を捕捉するための網だ。
分類——既知 / 未知
検出された名前を調査対象者リストと照合し「既知(Known)」と「未知(Unknown)」に分類する。 「未知」の発見こそがこのシステムの最大の価値だ。 誰も予想していなかった名前が浮上する可能性がある。
テーマ別横断捜査
確立した手順をテーマT-A(渡航・ビザ)/ T-B(Grand Hyatt Tokyo)/ T-D(マネーロンダリング)/ T-E(俵屋旅館・京都)に繰り返す。 各テーマでキーワードJSONを設計し、DS1〜12横断スキャンを実行する。
DOJ一次資料との照合・報告
検出された結果はDOJの一次資料と突き合わせて検証する。 処理進捗と結果はSQLiteデータベースに記録され後から監査可能。 280GBを1日で処理する必要はなく、毎日少しずつ数か月かけて完走する設計になっている。
発見されたバグと対応 修正済み
調査過程で2つの重大なバグが発見され、即座に修正された。 2026年3月5日付の記録を示す。
| スクリプト | バグ内容 | 修正版 |
|---|---|---|
tc_context_aggregator v1.5 |
50,000文字を超えるコンテキストを切捨て。大型文書(例:+107,954文字)の大半が失われていた | v1.6——文字数上限撤廃・全文保持 |
tc_timeline_builder v2.2 |
Markdown出力のコンテキストを先頭600文字で切捨て。捜査に使えるコンテキストが断片的だった | v2.3——600文字切捨て撤廃・全文出力 |
バグ発見後、T-Cテーマについては修正版スクリプトで再実行を実施した。 T-A / T-B / T-D / T-Eは最初からv1.6 / v2.3で実行しているため再実行は不要。 このように調査の過程で生じた問題は記録・公開し、再現可能性を担保している。
実行ログ——動いている証拠
以下は DOJ 公開文書「data-set-1」に対してスキャナを実行している際の実際の出力だ。
右端の unknown は「調査対象者リストには載っていないが、
6層フィルタで日本人の可能性があると判定された名前」を意味する。
事前に登録していなかった未知の日本人候補が文書中に見つかったことを示している。
2026-02-11 14:27:50,624 [INFO] ★ EFTA01362493.pdf: 1 known, 0 unknown
2026-02-11 14:28:20,161 [INFO] ★ EFTA01362931.pdf: 1 known, 0 unknown
2026-02-11 14:28:20,218 [INFO] ★ EFTA01362932.pdf: 1 known, 0 unknown
2026-02-11 14:28:34,316 [INFO] ★ EFTA01363137.pdf: 3 known, 0 unknown
2026-02-11 14:28:34,406 [INFO] ★ EFTA01363138.pdf: 2 known, 0 unknown
2026-02-11 14:28:44,487 [INFO] ★ EFTA01363299.pdf: 1 known, 0 unknown
2026-02-11 14:28:49,166 [INFO] ★ EFTA01363354.pdf: 0 known, 2 unknown
★マークが付いているエントリは日本人候補が1名以上検出されたPDFを意味する。
これらは次のステップでDOJ一次資料と突き合わせ、内容を検証する。
なぜ手法を公開するのか
エプスタイン文書の分析は世界中で行われている。 しかし多くは「特定のページに○○の名前があった」という断片的な報告だ。 350万ページの中から恣意的に選んだ1ページを見せても、 それが全体の中でどういう意味を持つのかはわからない。
本調査は280GBの全文書を同じアルゴリズムで機械的に処理する。 特定の名前を狙い撃ちにするのではなく、全固有名詞を抽出したうえで日本関連の名前を絞り込む。 黒塗りの下も含めて。
手法を公開する理由は、結果の信頼性を担保するためだ。
- 使用したツールはすべてオープンソースであり、誰でも検証できる
- 偽装リダクションの検出ロジックは公開されたライブラリ(
x-ray)に基づいている - 6層検出の各パラメータ(姓リスト・キーワード・正規表現パターン)は設定ファイルとして外部化されており、第三者が同じ条件で再現できる
- 処理の進捗と結果はSQLiteデータベースに記録され、後から監査可能である
Xで調査の進捗を随時報告している。 @FactCheckAomori