Fable 5 で「人文デジタルアート」を作ってみた: 手法解説つき

哲学

Claude の新モデル Fable 5 を使って、哲学テキストの計量分析をデジタルアートに仕立てる、というプロジェクトに取り組みました。7 月 7 日から高額プランに移行するらしく、その前に! ということで、土日を使って、一気に。ということで、手法まで踏み込んだ詳しい記録です。

本記事の簡易版は note で公開しています。

西田幾多郎: 概念の天球儀

最初にやったのは西田幾多郎。『善の研究』から後期著作まで、一人の哲学者の著作間で、重要概念とその共起語がどう変遷していくかを分析しました。「純粋経験」から「場所」へ、そして「絶対矛盾的自己同一」へ——概念の星座が組み変わっていくさまを、天球儀のイメージで可視化しています。概念が星、共起関係が星座線、著作が天球の層。ここで「一人の思想家の内部でも語彙布置は動き続ける」という感触を得たのが、のちの拡張につながりました。

幕間: ドビュッシー(失敗)とハイデガー

あいだにドビュッシー作品の特徴の変遷を4つの指標で比較する、というのもやったのですが、ファイルの保存にしくじって成果物が消えました。合掌。皆さんは成果物の保存先フォルダを最初に確認しましょう。

それから(順番はもう忘れましたが)、ハイデガーの複数の著作間で「存在」の語がどんな特徴を持つかの分析とプロットもやりました。一人の哲学者の内部での変遷が測れるなら、哲学史全体でも測れるはずだ——というわけで本丸へ。

西洋哲学史——存在のDNA

パルメニデスからハイデガーまで、西洋哲学史2400年の13著作で、「存在 (being / Sein)」が各時代にどんな語と共起してきたかを分析しました。ここからは手法の話です。

1. コーパス構築(いちばん泥臭かった工程)

対象はパブリックドメインの英訳12点+『存在と時間』独語原文(私蔵PDF、私的研究目的のみ・全文は外部出力しない設定)。「AIの記憶からの引用は禁止、必ず実物のテキストをダウンロードして使う」という制約をプロンプトに入れました。幻覚防止のためです。

実はここが最大の難所で、実行環境のネットワーク制限やレート制限、指定したURLの中身が別の翻訳者の訳だった(archive.org のパルメニデスが Burnet 訳ではなく Davidson 訳だった)、MIT のアーカイブの『エネアデス』全文テキストが実は第V巻の途中で切れていた——などのトラブルが続出。Fable は GitHub 上のミラー(Project Gutenberg のミラーである GITenberg、MIT Classics Archive のミラー、Standard Ebooks)に切り替えたり、下請けエージェントを並列に走らせてページ単位で回収したりして、最終的に13著作すべての全文を確保しました。この「障害だらけの長丁場を勝手にリカバリーしながら完走する」のが、今回いちばん高級モデルの意味を感じた部分です。

2. 前処理と共起統計

spaCy で言語別(英/独)にトークン化・見出し語化・ストップワード除去。ドイツ語は「文中の大文字語=名詞はストップワード除外しない」という特別規則が必要でした(spaCy の独語ストップワード表には Dasein や Zeit が入っていて、素通しすると現存在が消滅します)。In-der-Welt-sein のような複合語は分割しない、not-being のようなハイフン語は結合して救う、受動進行形の “is being…” は動詞用法として除外する、といった細かい調整も。

共起は窓幅±10語と文単位の両方で集計し、結びつきの強さは PPMI(正の自己相互情報量)で測定。低頻度語が過大評価される PPMI の癖は、saliency(PPMI×log共起数)での順位付けと動的な頻度下限で抑えました。著作ごとの「らしさ」は対数尤度比の keyness 分析、著作内の語彙のまとまりは Louvain 法のコミュニティ検出で出しています。コーパス規模は著作間で最大280倍違うので、生の頻度比較はせず、10万語あたり頻度と PPMI だけで比較しています。

3. 言語をまたぐ比較——訳語対応表と「圏論的」枠組み

独語のハイデガーと英訳12点は、語形では比較できません。そこで全526語の「語→日本語→概念ID」対応表を明示的に作り(Sein↔being、Zeitlichkeit↔temporality、Sorge↔care…)、概念レベルでのみ横断比較しました。著作間の類似度は概念ベクトルのコサイン類似度、その階層クラスタリングでデンドログラムを作成。

さらに試みとして、年代順の著作列を圏、各著作の共起グラフをグラフの圏の対象とみなし、隣接著作間の「構造保存スコア」(共有概念のJaccard係数+エッジ保存率)を関手の射の忠実度に見立てました。全著作の合併ネットワークが「余極限」、全著作に共通する概念が「極限」。もちろん形式的証明ではなく構造比較のためのメタファーですが、これが思いのほか良い測定装置になりました。

4. 見つかったこと

数字で面白かったのは3つ。

まず、全13著作に共通して現れた概念は「存在」ただ一語。極限は一点に収縮しました。累積ネットワーク157概念のうち46%は一著作にしか現れない時代固有語彙で、「存在」は内容の固定した概念というより、各時代の語彙を接続するハブとして働いてきたように見えます。

次に、クラスタリングが教科書的な哲学史とよく合う。デカルト–スピノザが全ペア中最高の類似度(0.40)で合理論の連続性を示し、ヘーゲルとベルクソンが「生成・過程」の同クラスタに入り、ニーチェとハイデガーはそれぞれ孤立クラスタ。ニーチェの『ツァラトゥストラ』は「存在」の出現率が10万語あたり95回と桁違いに低く(パルメニデスは3,328回)、存在語彙の意図的放棄が数字に出ます。

そして、ハイデガーの共起グラフから、教師なしのコミュニティ検出が〈存在‐世界〉〈実存‐死‐本来性〉〈時間性‐将来‐既在〉〈気遣い‐共同存在〉という、ほぼ『存在と時間』の部立て通りの4クラスタを勝手に取り出してきました。統計が本の設計図を復元した格好です。

5. 可視化——DNAのメタファー

「存在」だけが2400年間不変で、その相方が時代ごとに交代する——無→非存在→実体→一者→本質→モナド→現実存在→生成→持続→時間性。この「一本の不変の鎖と、変異し続けるもう一本の鎖」は、どう見てもDNAです。そこで three.js で二重螺旋として3D化しました。金色の鎖が「存在」、対の鎖が各時代の相方概念、両者を結ぶ117本の塩基対が共起語(太さ=PPMI、球の大きさ=頻度)。6著作以上に残った概念は「進化を通じて保存された配列」として光る輪をまといます。下から上へ、1著作0.6回転で2400年を上っていく。タイムスライダーで「複製」を再生でき、ライブラリを埋め込んだ単一HTMLなのでブラウザで開くだけで動きます。

おまけに、同じ数値データを Sonic Pi のコードにも変換しました。「存在」は主音のドローンで音量が出現率に比例、共起語はPPMIが音高と音量、共起数が音価。古代はピュタゴラス音律、中世は純正律オルガヌム、近世にミーントーンから平均律へ「調律が合理化」されていき、ベルクソンで音律を捨ててグリッサンド、ハイデガーで倍音列に回帰して、どの平均律にも属さない第11倍音の「開かれた問い」で終わる約6分の曲です(こちらは未公開)。

西田の天球儀と存在のDNAは、どちらもウェブで公開しています(ブラウザでぐりぐり回せます)。

Fable の使い方(いまのところのおすすめ)

自分にこういうアイデアがある → これを Fable で実行する意味はあるか? Fable で実行する際のプロンプトを考えてください ← ここまで Sonnet

Sonnet「それは Opus で十分です」

私「では Fable でやる意味があるように内容を修正してください。プロンプトも考えてください」

Fable で実行 → うまい(にっこり)

安いモデルに「高いモデルを使う意味があるか」を審査させて、意味が出るまで課題を盛る方法です。今回は原文収集、独語処理、圏論的な構造比較、3D可視化、日本語レポート2本まで盛った結果、Fable が数時間ノンストップで完走しました。プロンプトのコツとしては、出力言語の指定(成果物はすべて日本語)、幻覚防止の一次データ主義、著作権上の扱い(私蔵PDFの全文は出力しない)、成果物のファイル構成までを最初に固めておくと、途中確認なしで走らせられます。

ということで、Fable でデジタルアートを作ったよ、という話でした。

今度はおカネになることをやりたいな笑

コメント

タイトルとURLをコピーしました