<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>X on miyazawakai.com</title><link>https://miyazawakai.com/tags/x/</link><description>Recent content in X on miyazawakai.com</description><generator>Hugo -- gohugo.io</generator><language>ja</language><lastBuildDate>Tue, 24 Mar 2026 12:00:00 +0900</lastBuildDate><atom:link href="https://miyazawakai.com/tags/x/index.xml" rel="self" type="application/rss+xml"/><item><title>XアーカイブをCodexで分析すると、ここまで見える</title><link>https://miyazawakai.com/blog/analyzing-my-x-archive-with-codex/</link><pubDate>Tue, 24 Mar 2026 12:00:00 +0900</pubDate><guid>https://miyazawakai.com/blog/analyzing-my-x-archive-with-codex/</guid><description>&lt;h1 id="xアーカイブをcodexで分析するとここまで見える"&gt;XアーカイブをCodexで分析すると、ここまで見える
&lt;/h1&gt;&lt;p&gt;自分の X（旧Twitter）アカウントのアーカイブをダウンロードして、Codex と一緒に分析してみた。&lt;br&gt;
結論から言うと、これはかなり面白い。&lt;/p&gt;
&lt;p&gt;単なる「昔のツイートを読み返す」ではなく、&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;投稿の時系列的な変化&lt;/li&gt;
&lt;li&gt;いいね・DM・フォロー・広告ログまで含めた行動の全体像&lt;/li&gt;
&lt;li&gt;公開アカウントとしての自己ブランディング&lt;/li&gt;
&lt;li&gt;就活・身バレ・誤読リスクの棚卸し&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;のようなところまで、かなり具体的に掘れる。&lt;/p&gt;
&lt;p&gt;しかも今回は、アーカイブを展開したあとに Codex に読ませながら、&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;データ構造の把握&lt;/li&gt;
&lt;li&gt;解析スクリプトの作成&lt;/li&gt;
&lt;li&gt;レポート生成&lt;/li&gt;
&lt;li&gt;追加観点の洗い出し&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;まで一気に進められた。&lt;br&gt;
「自分の過去ログを、自分で再読する」のではなく、&lt;strong&gt;手元のアーカイブを材料に、自分専用の分析環境を立ち上げる&lt;/strong&gt;感覚に近い。&lt;/p&gt;
&lt;h2 id="このリポジトリで実際にやっていること"&gt;このリポジトリで実際にやっていること
&lt;/h2&gt;&lt;p&gt;今回の分析元は &lt;code&gt;77_twitter_archive_data&lt;/code&gt; というディレクトリ。&lt;br&gt;
ここには X からダウンロードしたアーカイブ一式を展開してある。&lt;/p&gt;
&lt;p&gt;このリポジトリを確認すると、アーカイブは単なるツイート一覧ではない。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;data/*.js&lt;/code&gt; に構造化データが 83 データセット&lt;/li&gt;
&lt;li&gt;&lt;code&gt;data/tweets.js&lt;/code&gt; に投稿本体&lt;/li&gt;
&lt;li&gt;&lt;code&gt;data/like.js&lt;/code&gt; にいいね履歴&lt;/li&gt;
&lt;li&gt;&lt;code&gt;data/direct-messages.js&lt;/code&gt; などに DM&lt;/li&gt;
&lt;li&gt;&lt;code&gt;data/follower.js&lt;/code&gt; / &lt;code&gt;data/following.js&lt;/code&gt; に関係データ&lt;/li&gt;
&lt;li&gt;&lt;code&gt;data/ad-*.js&lt;/code&gt; 系に広告インプレッションやエンゲージメント&lt;/li&gt;
&lt;li&gt;&lt;code&gt;data/*_media/&lt;/code&gt; に画像などの実体ファイル&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;という構成になっている。&lt;/p&gt;
&lt;p&gt;さらに重要なのは、&lt;code&gt;data/*.js&lt;/code&gt; が純粋な JSON ではなく、&lt;code&gt;window.YTD.* = ...&lt;/code&gt; という JavaScript 形式になっていること。&lt;br&gt;
このままだと雑に読みづらいので、今回のリポジトリではそこを Python でパースしている。&lt;/p&gt;
&lt;p&gt;実際の処理は主に次の 2 本。&lt;/p&gt;
&lt;h3 id="1-定量分析"&gt;1. 定量分析
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;scripts/analyze_archive.py&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;このスクリプトでは、アーカイブ全体を横断して以下をまとめている。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;投稿数、年別・月別・曜日別・時間帯別の推移&lt;/li&gt;
&lt;li&gt;返信率、自己返信率、URL付き投稿率、メディア率&lt;/li&gt;
&lt;li&gt;クライアント別の投稿傾向&lt;/li&gt;
&lt;li&gt;いいね件数やリンク先ドメインの傾向&lt;/li&gt;
&lt;li&gt;DM 件数や送受信比率&lt;/li&gt;
&lt;li&gt;フォロー / フォロワーのスナップショット&lt;/li&gt;
&lt;li&gt;セキュリティ系・広告系ログの存在確認&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;出力先:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;analysis/archive-analysis-summary.json&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;docs/archive-analysis-report.md&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="2-定性分析とリスク監査"&gt;2. 定性分析とリスク監査
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;scripts/analyze_qualitative.py&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;こちらでは、ツイート本文を全件スクリーニングして、&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;発信キャラの変遷&lt;/li&gt;
&lt;li&gt;コミュニティ志向、学習志向、自虐、ユーモアなどの傾向&lt;/li&gt;
&lt;li&gt;個人情報露出&lt;/li&gt;
&lt;li&gt;就活で不利になりそうな表現&lt;/li&gt;
&lt;li&gt;暴力・性的・誤読リスクのある語彙&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;をルールベースで抽出している。&lt;/p&gt;
&lt;p&gt;出力先:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;analysis/qualitative-analysis-summary.json&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;docs/qualitative-analysis-report.md&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;docs/risk-review-candidates.md&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;つまりこのリポジトリは、&lt;strong&gt;X アーカイブを置いて終わりではなく、Codex と一緒に「分析用の道具」と「読めるレポート」を作った状態&lt;/strong&gt;になっている。&lt;/p&gt;
&lt;p&gt;実行はシンプルで、たとえばこんな形で回せる。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;python3 scripts/analyze_archive.py
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;python3 scripts/analyze_qualitative.py
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="実際にどんなことが見えたか"&gt;実際にどんなことが見えたか
&lt;/h2&gt;&lt;p&gt;今回のレポジトリでは、たとえば次のようなことが見えている。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ツイート総数は &lt;code&gt;17,945&lt;/code&gt; 件&lt;/li&gt;
&lt;li&gt;いいねは &lt;code&gt;30,349&lt;/code&gt; 件&lt;/li&gt;
&lt;li&gt;返信は &lt;code&gt;10,526&lt;/code&gt; 件で、かなり会話中心の運用&lt;/li&gt;
&lt;li&gt;活動のピークは &lt;code&gt;2022年&lt;/code&gt; と &lt;code&gt;2023年&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;DM は 1対1 会話 &lt;code&gt;145&lt;/code&gt; 件、総メッセージ &lt;code&gt;3,484&lt;/code&gt; 件&lt;/li&gt;
&lt;li&gt;広告インプレッションも &lt;code&gt;2,991&lt;/code&gt; 件残っている&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ここで面白いのは、単純な「よくツイートしていた時期」が分かるだけではないこと。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;どの時期に会話中心だったか&lt;/li&gt;
&lt;li&gt;どの時期に成果報告型に変わったか&lt;/li&gt;
&lt;li&gt;どの話題や言い回しが今の自分のブランドとズレているか&lt;/li&gt;
&lt;li&gt;削除優先度の高い投稿がどこにあるか&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;のように、&lt;strong&gt;行動ログとしての過去&lt;/strong&gt;と&lt;strong&gt;公開アカウントとしての現在&lt;/strong&gt;を比較できる。&lt;/p&gt;
&lt;p&gt;特に、&lt;code&gt;docs/qualitative-analysis-report.md&lt;/code&gt; のような「人格傾向」「誤読リスク」「今後の運用提案」まで含むレポートは、人力だけでやるとかなりしんどい。&lt;br&gt;
Codex に読ませながら進めると、分析観点の設計とレポートの叩き台作成がかなり速い。&lt;/p&gt;
&lt;h2 id="こう進めるのがおすすめ"&gt;こう進めるのがおすすめ
&lt;/h2&gt;&lt;p&gt;もし同じことをやるなら、流れはこんな感じがやりやすい。&lt;/p&gt;
&lt;h3 id="1-まずは-x-アーカイブをダウンロードする"&gt;1. まずは X アーカイブをダウンロードする
&lt;/h3&gt;&lt;p&gt;X のアーカイブには、ツイート本文だけでなく、いいね、DM、プロフィール変更、広告ログなどが含まれる。&lt;br&gt;
まずはアーカイブを取得して、専用のローカルディレクトリに展開する。&lt;/p&gt;
&lt;h3 id="2-公開用の作業場所と分ける"&gt;2. 公開用の作業場所と分ける
&lt;/h3&gt;&lt;p&gt;この種のデータには個人情報や非公開寄りの情報が大量に含まれる。&lt;br&gt;
なので、分析用のディレクトリは &lt;strong&gt;必ず private 前提&lt;/strong&gt; で扱ったほうがいい。&lt;/p&gt;
&lt;p&gt;おすすめは、&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;アーカイブ展開用ディレクトリ&lt;/li&gt;
&lt;li&gt;解析スクリプト用ディレクトリ&lt;/li&gt;
&lt;li&gt;公開記事用ディレクトリ&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;を分けること。&lt;/p&gt;
&lt;h3 id="3-最初に-codex-に棚卸しをやらせる"&gt;3. 最初に Codex に「棚卸し」をやらせる
&lt;/h3&gt;&lt;p&gt;最初から「面白い分析して」と投げるより、先に全体構造を把握させるのが効く。&lt;/p&gt;
&lt;p&gt;やることの順番は、&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;どんなファイルがあるか一覧化する&lt;/li&gt;
&lt;li&gt;何が JSON で、何が JS ラッパーか確認する&lt;/li&gt;
&lt;li&gt;件数の大きいデータを特定する&lt;/li&gt;
&lt;li&gt;先に書ける定量分析レポートを作る&lt;/li&gt;
&lt;li&gt;そのあとで定性分析や削除監査に進む&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;が安定する。&lt;/p&gt;
&lt;h3 id="4-レポート生成まで自動化する"&gt;4. レポート生成まで自動化する
&lt;/h3&gt;&lt;p&gt;「分析して終わり」だと再利用しづらい。&lt;br&gt;
スクリプトを作って、&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;JSON サマリ&lt;/li&gt;
&lt;li&gt;Markdown レポート&lt;/li&gt;
&lt;li&gt;リスク候補一覧&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;まで吐けるようにしておくと、あとでプロンプトを変えて何度でも掘り直せる。&lt;/p&gt;
&lt;h2 id="codex-に投げるときのおすすめプロンプト"&gt;Codex に投げるときのおすすめプロンプト
&lt;/h2&gt;&lt;p&gt;以下は、今回の作業を踏まえて「最初に入れると進めやすい」と感じた指示。&lt;/p&gt;
&lt;h3 id="1-まず全体像を掴ませるプロンプト"&gt;1. まず全体像を掴ませるプロンプト
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;このディレクトリは X のアーカイブを展開したものです。
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;まず data 配下の構造を棚卸しして、どのデータセットが何を表しているか整理してください。
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;特に、件数の多いファイル、メディアディレクトリ、JSON ではなく JS ラッパーになっているファイル形式に注意してください。
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;そのうえで、次にやるべき分析テーマを優先順位つきで提案してください。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="2-定量分析用のプロンプト"&gt;2. 定量分析用のプロンプト
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;data/tweets.js, like.js, follower.js, following.js, direct-messages.js などを使って、
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;このアーカイブの定量分析スクリプトを作ってください。
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;出力は Markdown レポートと JSON サマリの両方にしてください。
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;知りたいのは、投稿数の推移、曜日・時間帯、返信率、クライアント、いいね傾向、DM 利用状況、フォロー関係の概要です。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="3-定性分析自己分析用のプロンプト"&gt;3. 定性分析・自己分析用のプロンプト
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;data/tweets.js を全件対象にして、発信スタイルの変遷、コミュニティ内での役回り、学習志向、ユーモア、自虐傾向などを定性的に分析してください。
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;断定的な人格診断ではなく、公開投稿から推測できる傾向としてレポートを書いてください。
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;時期ごとの差分も整理してください。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="4-リスク監査用のプロンプト"&gt;4. リスク監査用のプロンプト
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;就活リスク、個人情報露出、誤読されやすい表現、ブランド毀損につながる投稿を広めに抽出してください。
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;まずは false positive を許容して候補を広めに出し、あとで人間が絞り込める形にしてください。
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;出力は、severity、日付、URL、理由、本文要約つきの Markdown 一覧にしてください。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="5-記事化まで持っていくプロンプト"&gt;5. 記事化まで持っていくプロンプト
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;この分析結果をもとに、X アーカイブを Codex で分析すると何ができるかを紹介する技術記事を書いてください。
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;読者は、アーカイブは持っているが何から始めればいいか分からない人です。
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;記事には、できること、進め方、注意点、おすすめプロンプトを含めてください。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="やってみて分かった良さ"&gt;やってみて分かった良さ
&lt;/h2&gt;&lt;p&gt;今回いちばん良かったのは、Codex が「集計器」だけでなく「分析の相棒」になることだった。&lt;/p&gt;
&lt;p&gt;人間がやるべきなのは、&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;何を知りたいか決める&lt;/li&gt;
&lt;li&gt;どこまで公開してよいか決める&lt;/li&gt;
&lt;li&gt;最終判断をする&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;一方、Codex には、&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;データ構造の把握&lt;/li&gt;
&lt;li&gt;パーサの実装&lt;/li&gt;
&lt;li&gt;集計の自動化&lt;/li&gt;
&lt;li&gt;レポートの叩き台作成&lt;/li&gt;
&lt;li&gt;追加分析観点の提案&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;を任せられる。&lt;/p&gt;
&lt;p&gt;特に自分のログ分析は、対象への土地勘が人間側にあり、でも件数が多すぎて手で読むのはしんどい、という意味で LLM とかなり相性がいい。&lt;/p&gt;
&lt;h2 id="注意点"&gt;注意点
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;X アーカイブにはセンシティブなデータが大量に含まれる&lt;/li&gt;
&lt;li&gt;DM、位置情報、生活圏、連絡先、広告ログなどは取り扱い注意&lt;/li&gt;
&lt;li&gt;分析用のリポジトリは private 前提で扱う&lt;/li&gt;
&lt;li&gt;削除候補の抽出は自動化できても、最終判断は必ず人間が行う&lt;/li&gt;
&lt;li&gt;LLM の定性分析は「傾向の要約」として使い、断定的な人格評価にしない&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;このあたりを守れば、かなり安全に、しかもかなり面白く掘れる。&lt;/p&gt;
&lt;h2 id="おわりに"&gt;おわりに
&lt;/h2&gt;&lt;p&gt;X アーカイブのダウンロード機能って、正直かなり地味に見える。&lt;br&gt;
でも実際には、数年分の発言・反応・関心・つながりのログがまとまった、かなり強い個人データ資産になっている。&lt;/p&gt;
&lt;p&gt;そこに Codex を組み合わせると、&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;自分史の定量分析&lt;/li&gt;
&lt;li&gt;公開アカウントの棚卸し&lt;/li&gt;
&lt;li&gt;黒歴史・リスクの監査&lt;/li&gt;
&lt;li&gt;今後の発信方針の設計&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;までつなげられる。&lt;/p&gt;
&lt;p&gt;「自分のアーカイブ、落として終わり」になっているなら、かなりもったいない。&lt;br&gt;
一度、専用ディレクトリに展開して、Codex にちゃんと読ませてみると面白いです。&lt;/p&gt;</description></item></channel></rss>