今回は、Neo4jとClaudeを使って文章からグラフを構築してみました。
きっかけ
Neo4jを使ってパナマ文書をグラフ化した記事を見つけたことがきっかけです。Neo4jと生成AIの力を使ってWebサイト内のテキストからグラフを構築してみたいと思いました。
準備
実行環境:Neo4j Desktop
使用ツール:Claude
ファイル:テキストファイル、CSVファイル
参考にしたサイト
手順
1.グラフ化したい文章の準備
まずはじめに、先述したWebサイト内の文章をテキストファイルにコピー&ペーストしました。
こちらが今回グラフに変換するテキストファイルの内容になります。
隕石衝突説が現在のところ最も有力です。
恐竜絶滅の時期にあたる中生代の白亜紀と新生代の古第三紀との境界(K-Pg境界)でたまった地層には、ほかの地層では見られない特徴がいくつか発見されています。例えば、地表には少量しか存在しないイリジウムという元素が多いこと、高い圧力がないとできない石英の粒や微小ダイアモンドが見られること、普通には見られないアミノ酸などが存在すること、などです。これらの存在は、隕石の衝突を示す証拠といえます。実際に、現在のメキシコのユカタン半島では、K-Pg境界の頃にできた巨大なクレーターの痕跡 こんせき が見つかっています。
大きい隕石が衝突すると、大量の塵 ちり が発生し、それが大気中に漂うことで太陽光線がさえぎられて、地球上が寒冷化し、これに適応できない生き物が死に絶えます。また、太陽光線が地表に届かなくなることで、光合成をする植物が減ってしまいます。植物が激減すると、植物を食べる草食恐竜が死に、今度はそれを食べる肉食恐竜が死に、というように食物連鎖の階段を登るように次々と恐竜が死んでいったと考えられています。
さらに、現在のインドのデカン高原にあたる場所で、この頃に大規模な噴火活動があったこともわかりました。これによる環境の変化が、恐竜などの絶滅に追い打ちをかけたのではないかと考えられています。
恐竜類はこの時にほとんどが絶滅してしまいましたが、恐竜の1グループである鳥類は生き延びて今も繁栄を続けています。
他にもアンモナイトなど白亜紀末で絶滅した生物は多く、絶滅した種と生き延びた種の違いがどこにあったのかについては、研究が続いています。
2.Claudeに指示する
Claudeに以下の質問をプロンプトで送りました。
上記のファイルを読み込み、次の操作をしてください
1.文章を解析し、エンティティとリレーションに分類してください
2.分類したエンティティとリレーションをそれぞれCSVファイルとして出力してください!
3.出力したCSVファイルをグラフに変換するためのCypherを記述してください
1~3の出力形式は箇条書きで出力してください。
作成したエンティティ用とリレーション用のCSVファイルの内容は次の通りです。
ID,エンティティ名,種別
E01,隕石,物体
E02,K-Pg境界,地質概念
E03,イリジウム,元素
E04,石英,鉱物
E05,微小ダイアモンド,鉱物
E06,アミノ酸,化学物質
E07,クレーター,地形
E08,ユカタン半島,場所
E09,デカン高原,場所
E10,太陽光線,自然現象
E11,塵,物質
E12,地球,環境
E13,寒冷化,自然現象
E14,植物,生物
E15,草食恐竜,生物
E16,肉食恐竜,生物
E17,恐竜,生物
E18,鳥類,生物
E19,アンモナイト,生物
E20,大規模噴火,自然現象
ID,起点エンティティID,起点エンティティ名,関係ラベル,終点エンティティID,終点エンティティ名
R01,E01,隕石,衝突の証拠を示す,E02,K-Pg境界
R02,E01,隕石,衝突の痕跡を残す,E07,クレーター
R03,E07,クレーター,位置する,E08,ユカタン半島
R04,E01,隕石,衝突により発生させる,E11,塵
R05,E11,塵,太陽光線を遮断する,E10,太陽光線
R06,E10,太陽光線,遮断により引き起こす,E13,寒冷化
R07,E10,太陽光線,届かなくなることで減少させる,E14,植物
R08,E14,植物,減少により死滅させる,E15,草食恐竜
R09,E15,草食恐竜,減少により死滅させる,E16,肉食恐竜
R10,E20,大規模噴火,発生した場所,E09,デカン高原
R11,E20,大規模噴火,絶滅に追い打ちをかけた,E17,恐竜
R12,E18,鳥類,に含まれるグループ,E17,恐竜
R13,E17,恐竜,白亜紀末に絶滅した,E02,K-Pg境界
R14,E19,アンモナイト,白亜紀末に絶滅した,E02,K-Pg境界
また、3のCypherの内容を次のように変更するよう指示を出して、Cypherに関する修正も行いました。
3.出力したCSVファイルをグラフに変換するためのCypherを記述してくださいについて
2で作成したCSVファイルを読み込む形のCypherに修正してください
3.実行結果
Neo4j Desktopを使って文章をグラフ化した結果は次の通りです。
恐竜が絶滅した原因や恐竜や植物の減少の流れ、隕石の証拠など文章内の情報の関係がグラフに可視化されていることが分かると思います。
最後に
今回はNeo4jとClaudeを使って文章をグラフに変換してみました。グラフにすることによって関係性がよりはっきりしますね。Neo4jを使ったグラフの構築は面白いですね。
最後までお読みいただきありがとうございました。
参考にした記事
Neo4j Desktopはこちらからダウンロードが可能です
