
2026/01/17 3:49
Claudeコードで書籍を横断的に読む (「クロスリーディング」や「横断読み」を意味します。)
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
記事は、OpenAI の Claude と Google Gemini モデルを中心に構築された知識ナビゲーションシステムについて詳細に説明している。
対象は Hacker News のお気に入りから選ばれた 100 冗説書である。
テキストはまず selectolax で解析され、wtpsplit によって文が分割された後、段落境界を保った約 500 語のブロックへチャンク化される。各ブロックには Gemini 2.5 Flash Lite を用いて 3–5 件のトピックが抽出され、結果として 10 万件以上のトピックが生成される。これらは埋め込みと PMI スコアからなるグラフに Leiden パーティショニングを適用し、約 1,000 のトップレベルカテゴリへ階層的にまとめられる。
すべてのチャンク、そのトピックメタデータ、および埋め込み(sqlite‑vec に保存)は高速検索のために SQLite 内に保管される。Claude はトピックで検索し、書籍間で共起するトピックを見つけ、近隣チャンクを特定し、ツリー内の兄弟トピックへナビゲートできる。
トレイルはライブラリ全体をスキャンして生成され、新しいトレイルアイデアを提案し、抜粋を抽出・順序付けて一貫した洞察を形成し、ハイライトと連続するスニペット間のエッジを追加する。新規性スコアは各トピックに対して k 近傍から計算された平均距離として求められ、書籍の新規性はそのユニークトピックの新規性スコアの平均となる。このスコアで検索結果がランク付けされる。
CLI ツールは重いモデルを一度サーバプロセスにロードし、呼び出し間で再利用できるようにすることで計算量を節約する。システムは 100 本の書籍から約 6,000 万トークンを処理し、概ね £10 のコストで、近似重複トピックペアをマージして冗長性を削減した。
Claude の役割は単なるパイプラインオーケストレーションから、新しいコマンドの提案、プロンプトの洗練、および更新されたユーザー設定に基づくトレイル編集を行う自律エージェントへと進化した。CLI の出力は半 XML ネスティングで提示され、コンテキスト制限を超えずにナビゲーションが可能となる。また Gemini は必要な場合のみ EPUB アーティファクトを除去して抜粋をクリーンアップする。
結論:
元の概要はほとんどの主要ポイントを捉えているが、特定のパースツール、ストレージ詳細(sqlite‑vec)、CLI 出力形式、およびクリーニングプロセスを省略している。また、書籍以外への拡張についてわずかな推測も含んでいた。改善版はすべての重要要素を組み込み、推測された主張を除去した。
本文
LLMは要約に過度に使われ、深い読解には十分活用されていない
私は Claude Code を設定し、100冊のノンフィクション本から情報を抽出して、LLMが理解を減らすのではなく豊かにする方法を探りました。システムは興味深いアイデアで結びつけられた抜粋の連続(私が トレイル と呼ぶもの)を見つけます。
仕組み
- 本は Hacker News の「お気に入り」から選ばれ、以前にスクレイピングと可視化を行いました。
- Claude は各本を チャンク(可能なら段落に合わせて約500語)で閲覧します。
この長さはトークン節約とアイデアが呼吸できる十分な文脈のバランスです。 - チャンクはトピック別にインデックス化され、トピック自体が検索可能な索引となります。
例えば「deception(欺瞞)」に関する全ての抜粋を取得できます。
100,000 を超える抽出済みトピックは直接閲覧できないため、階層的ツリーでまとめます:
– Ev Williams がフラストレーションを感じた事象 – 「Da」で始まる名前 – 1971〜1974 年の出来事
このタクソノミーは Claude が本の内容を把握するには十分粗いです。Claude はトピックツリーと数個の CLI ツールを使って:
- クエリに似たトピックに関連する全チャンクを検索
- 指定したトピックに近接するトピックを探す
- 複数本で共起するトピックを特定
- 隣接トピックとチャンクを閲覧
トレイル生成
- ライブラリと既存トレイルをスキャン
未探索領域のトピックツリーを探りながら、全チャンクを深く読むことなく新しいトレイル案を提案。 - 特定トレイルを構築
Claude が種となるトピックを受け取り、多数チャンクを閲覧し、関連抜粋を抽出。洞察のために順序付け、連続する抜粋間にハイライトとエッジを追加。
学んだこと
- Claude Code は非コーディングタスクで優秀
最初は手作業で構築したパイプラインでしたが、デバッグツールと「面白いものを探して」という最小限のプロンプトだけで、より良い結果を少ないオーケストレーションで得られました。 - エージェントが野心を広げる
定型作業を任せれば、面倒な部分に怯む必要はありません。改訂コストが低いため、失敗を恐れず迅速に反復できます。 - AI モデルの再考
入力から出力への関数マッピングではなく、協働相手として扱い、エージェント用ツール設計が自然になりました。
Claude のログはギャップを明らかにし、推測ではなく「必要な機能」をリスト化させました。新しいコマンドと改善案を提案・実装させたものの、トークン費用は今は私が負担します。
新規性を指標に
「面白さ」を定量化することは難しいため、「新規性」がよい結果を生むという考え方(Why Greatness Cannot Be Planned 参照)を採用。2つのアプローチ:
- アルゴリズム的バイアス
未探索トピックや本に重きを置く。 - Claude のプロンプティング
概念上の重複を避けるよう指示。
トピックの新規性スコア=埋め込みベクトルから k 最近傍との平均距離。
本の新規性=含まれるユニークトピックの平均新規性。
これらで検索結果をランク付けし、関連性と新規性の両方が高い抜粋を優先表示。
実装詳細
- EPUB を selectolax でパース(高速・簡潔)
- データは SQLite に保存;埋め込みは sqlite‑vec
- 文分割は wtpsplit (
モデル)を使用し、段落を壊さずに500語チャンクへsat‑6l‑sm - DSPy で構造化抽出とモデル切替を実行
Gemini 2.5 Flash Lite は各チャンクから3〜5トピックを抽出し、有用か否か(例:謝辞)も判定 - 約 60M 入力トークン を処理、100冊で総費用約 £10
距離閾値以下のトピックペアは統合して重複排除(例:「Startup founder」 vs 「Founder of startups」)。CLI 出力はセミ XML 形式。検索時に他に含まれるトピックを表示。
<topics query="deception" count="1"> <topic id="47193" books="7" score="0.0173" label="Deception"> <chunk id="186" book="1"> <topic id="47192" label="Business deal"/> <topic id="47108" label="Internal conflict"/> <topic id="46623" label="Startup founders"/> </chunk> ... </topic> </topics>
トピックは
google/embeddinggemma-300m で埋め込み、BAAI/bge-reranker-v2-m3 で再ランク。トピックコレクションを igraph でグラフ化し、埋め込み類似度と共起点対情報量でエッジを追加。Leiden パーティショニングを再帰的に適用して最小サイズになるまで分割しツリーを生成。各グループは Gemini が全トピックからラベル付け。
抜粋は Gemini で EPUB のアーティファクト、解析エラー、ヘッダー、脚注等を除去してクリーン化(実際に表示される抜粋のみでトークン節約)。
TL;DR: Claude Code とトピックツリー索引、新規性バイアス検索を組み合わせれば、本から自動的に深く相互関連した洞察を掘り起こせます。これにより、人間は定型作業ではなく創造的な仕事に専念できるようになります。