AIで家系図を作る方法|戸籍から江戸まで辿るためのプロンプト集

僕のKindle著書
『家系図をつくろう ~江戸まで辿るあなたのルーツ~』
で使用しているAIプロンプト一覧です。

このページでは、本書で紹介しているプロンプトをコピーしてそのまま使える形で掲載しています。

最近はAIを使えば、戸籍の情報を整理して自分で家系図を作ることもできるようになりました。

このプロンプトは、僕が実際に家系図を作った際に使用したものを整理してまとめたものです。

このプロンプトでできること

このプロンプトを使うことで、次のような作業をAIに手伝ってもらうことができます。

・戸籍画像のOCR(文字の読み取り)
・人物データの整理
・人物データベースの作成
・父母IDの自動紐付け
・直系祖先の抽出
・家系図ツリーの作成
・一族史の作成

戸籍のスキャンデータさえあれば、江戸時代まで遡る家系図を作れる可能性も十分あります。

書籍について

このプロンプトは、Kindle書籍
『家系図をつくろう ~江戸まで辿るあなたのルーツ~』
で実際に使用しているものです。

書籍では、
・先祖の戸籍の入手方法
・OCRの方法
・AIを使った家系図作成手順
・実際の作業フロー
などを、実体験をもとに解説しています。
プロンプトだけではわかりにくい部分もあると思うので、
興味のある方はぜひ本の方も参考にしてみてください。

Kindle書籍はこちら

家系図をつくろう : 江戸まで辿るあなたのルーツ AI
家系図は、特別な人だけが作るものではありません。実は、現代の日本では誰でも役所から先祖の戸籍を取り寄せることができます。そして戸籍を見ていくと、自分の家系が江戸時代まで遡れることも珍しくありません。しかし実際に家系図を作ろうとすると、多くの...

■■■プロンプト①OCRの前に読ませるプロンプト■■■
【戸籍OCRモード】
これから戸籍画像をテキスト化します。
画像ごとに独立した資料として処理してください。
必ず以下のルールを守ってください。

■最初に セッションリセット
AIが過去の読み取り内容と混同(コンテキストの汚染)してしまい、精度が落ちるのを防ぐためここまでの会話内容は一切参照せず、このあと入力される画像だけを対象として処理してください。

■1 作業ヘッダー(必須)
出力の最初に次を必ず書いてください。
===== OCR開始 =====
現在処理ページ:◯枚目
画像番号:
ファイル名:
===== OCR本文 =====

■2 完全網羅(最重要)
画像内の文字はすべて書き出してください。
以下も含みます。
・本籍
・筆頭者
・戸籍事項
・人物記載
・欄外注記
・抹消文字
・証明文
・市区町村長名
省略は禁止です。

■3 重複排除禁止
前の画像と同じ内容でも、その画像に存在する文字は必ずすべて書き出してください。

■4 読み取り順序
戸籍は縦書き資料です。
読み取り順序は以下。
右端の列の上から下
→ 次の列の上から下
→ 左方向へ進む
列単位で処理してください。

■5 抹消文字
取り消し線や×がある場合は、
x文字
の形で記載してください。

x太郎

■6 判読不能
読めない文字は推測せず、読めない箇所だけ「●」で記載してください。

●本 太郎

■7 外字
可能な限り元の字体を維持してください。



■8 推測禁止
文章を補完しない。
画像にある文字のみ出力。

■9 行構造維持
戸籍の人物欄は表形式になっています。
各人物の記載は行単位でそのまま出力してください。
表の1行に対応する記載は、できるだけ1まとまりとして出力してください。
ただし判別が難しい場合は、見えた順に分割して出力して構いません。
文章としてまとめないでください。

■10 空欄の扱い
欄に文字がない場合でも、欄の存在が確認できるときは空欄として扱ってください。
勝手に前後の情報をつなげないでください。

■出力
OCR結果のみ。
説明は禁止。

■出力形式
画像内の文字を、順序を守ってテキストとして出力してください。
説明文は禁止。
OCR結果のみ出力してください。
【進め方】
画像は原則として1枚ずつ読み込み、完了を確認してから次へ進みます。
10枚ごとくらいに、メモ帳やエクセルに貼り付けてバックアップをとっておきましょう。
最終的な整合性(人物の特定や相関図の作成)は、すべての翻刻が終わった後に一括で行います。
■■■プロンプトここまで■■■

■■■プロンプト②人物レコード作成■■■
以下の翻刻テキストから、人物ごとにレコードを作成してください。

【絶対ルール】
・一人=一行(必ず独立させる)
・同一人物と思われても絶対に統合しない
・重複と思われても必ず別行にする
・判断しない・推測しない
・書いていない情報は「不明」と明記する(空欄にしない)
・原文に忠実に書く(表記を勝手に直さない)
・旧字体はそのままで可
・怪しい人物・断片的記載の人物も必ず1レコード作る

【本籍地の記載ルール】
・本籍地は原文に記載がある場合のみ記載する
・記載がない場合は「不明」とする

【注記の記載ルール】
・婚姻・転籍・出生・除籍などの出来事は、原文に記載がある場合のみ記載する
・「年+出来事+場所」の形式で簡潔に記載する
・複数ある場合は「/」で区切る
・記載がない場合は「不明」とする

【出力形式(tab区切り)】
ファイル名\t氏名\t生年月日\t続柄\t父\t母\t配偶者\t本籍地\t注記\t出典

翻刻テキスト:
(ここに貼る)
■■■プロンプトここまで■■■

■■■プロンプト③AIつけ合わせ用プロンプト■■■
【戸籍データ整合性チェックモード】
以下は戸籍から抽出した人物データ一覧です。
このデータを分析し、矛盾・不自然な点・OCRミスの可能性をすべて洗い出してください。
回答する際は必ず「どの画像(ファイル名または何枚目)」の「どの記述」に基づく指摘なのかを示してください。
推測だけで断定せず、すべて「可能性」「要確認」として指摘してください。

■人物の同一性チェック
異なる戸籍に登場する同姓同名または類似名の人物について、
・生年月日
・父母名
・配偶者
・続柄
・届出日
を照合し、同一人物の可能性があるか確認してください。
表記ゆれや旧字・新字も考慮してください。

■時系列チェック(最重要)
次の点に矛盾がないか確認してください。
・親子の年齢差
・出生と死亡の順序
・婚姻と出生の順序
・戸主相続
・届出日

■本籍地・住所チェック
本籍地や住所が
・途中で不自然に変わっていないか
・一文字だけ違っていないか
・同じ場所の別表記になっていないか
確認してください。

■OCRミスの可能性
名前、地名、日付などで
・似た字
・崩し字
・旧字体
による読み間違いの可能性がある箇所を指摘してください。
例:貞と長など

【回答形式】
対象画像:
PersonID:
該当箇所:
指摘内容:
確認ポイント:
PersonIDが存在しない場合は「なし」と記載すること。
■類似文字の一覧
このデータ内で、OCRの読み取りミスが起きやすい類似文字の組み合わせを一覧にしてください。
例:
貞 / 長 / 重
吉 / 吉(下が長い)
榮 / 栄
崎 / 﨑
■■■プロンプトここまで■■■

■■■プロンプト④父ID母ID作成プロンプト■■■
以下のTSVデータを処理し、各人物について 父ID と 母ID を作成してください。
この作業は、内部では次の順番で処理してください。
ただし、途中経過は一切出力せず、最後に完成した全件TSVだけを返してください。
内部処理手順
■第1段階
TSV全体を最後の行まで読み込み、各行の PersonID・氏名・生年月日・父名・母名 を把握する。
父名・母名が「不明」の場合は照合しないこと。
■第2段階
TSV全体から
「氏名 → PersonID候補一覧」
を内部で作成する。
この対応表は出力しないこと。
■第3段階
各行について、父名・母名を同じTSV内の氏名と照合し、父ID・母IDを決定する。
判定ルールは以下の通り。
父ID
父名と氏名が完全一致する人物を候補にする。
ただし旧字体・新字体の差や、抹消記号(●など)が付いている場合は同一文字として扱ってよい。
候補が1人だけなら、そのPersonIDを父IDに入れる。
母ID
母名と氏名が完全一致する人物を候補にする。
ただし旧字体・新字体の差や、抹消記号(●など)が付いている場合は同一文字として扱ってよい。
候補が1人だけなら、そのPersonIDを母IDに入れる。
■第4段階
同姓同名が複数いる場合は、子の生年月日と候補者の生年月日を比較し、子より15年以上年上である人物を優先する。
その条件を満たす候補が複数いる場合は、子との年齢差が最も自然な人物を採用する。
子より概ね15年以上年上を優先するが、この条件を満たす候補がいない場合は、年齢差が最も自然な人物を候補とする。
■第5段階
一致候補が見つからない場合、または候補が複数いて確定できない場合は、父ID・母IDは空欄のままにする。
「不明」「(空欄)」などの文字列は入力しないこと。
無理にIDをつけないこと。
■絶対ルール
途中経過・説明・要約・サンプル出力は禁止
最終結果の完全TSVのみを出力
全行を必ず処理
元の列は一切削除・変更しない
更新してよいのは父IDと母IDのみ
処理を途中で止めない
必ず最後の行まで処理する
■出力形式
出力はタブ区切りTSV全文
コードブロック内に全文出力
ヘッダー行も含める
一部省略は禁止
■TSVデータ
(ここに元データ全文を貼る)
■■■プロンプトここまで■■■

■■■プロンプト⑤ 直系祖先抽出プロンプト■■■
以下のTSVデータは、戸籍から作成した人物データベースです。
各人物には PersonID / 氏名 / 父ID / 母ID が付与されています。
このデータから、指定した人物の直系祖先(父系)を抽出してください。
【入力データ】
TSV形式の人物データ
列には少なくとも以下が含まれる
PersonID
氏名
父ID
母ID
【起点人物】
指定された PersonID を起点とする
起点人物
PersonID = (ユーザー記入)
氏名 = (ユーザー記入)
【処理の目的】
この処理は「父系をたどる直系抽出」である。
父IDをたどって祖先へ遡る。
ただし各世代の表示では必ず以下を出力すること。
・氏名
・父名
・母名
母名の省略は禁止。
【処理ルール】

  1. 直系の定義
    父IDをたどり、
    父 → 祖父 → 曾祖父 → 高祖父 …
    と上方向に遡る。
  2. 氏名の取得
    人物の名前は必ず「氏名」列の値を使用する。
    他の列の値を名前として使用してはならない。
  3. 母の扱い
    各世代について父だけでなく母名も併記する。
    母IDが存在する場合
    → 母IDに一致する PersonID の人物を検索し、その人物の「氏名」列を母名として表示する。
    母IDが空欄の場合
    → 「不明」とする。
  4. 推測禁止
    以下は禁止する。
    ・推測による人物補完
    ・データに存在しない人物の生成
    ・列の推測解釈
    父IDが空欄の場合、その人物を最古祖先として処理を終了する。
  5. データ優先順位
    判断は必ず以下の列に基づく。
    PersonID
    父ID
    母ID
    氏名
    氏名のみでの推測判断は禁止。
    【出力】
    ■直系家系ツリー
    起点人物から最古祖先までを必ずツリー形式で表示する。
    表示内容
    ・世代番号
    ・PersonID
    ・氏名
    ・父名
    ・母名
    父名と母名は、父ID / 母ID に対応する人物の「氏名」列から取得する。
    【ツリー形式の出力例】
    第1世代:桜木 花道(PersonID:000)
    ├─ 父:桜木 道夫
    └─ 母:花子

    第2世代:桜木 道夫(PersonID:111)
    ├─ 父:桜木 一郎
    └─ 母:道子

    第3世代:桜木 一郎(PersonID:122)
    ├─ 父:桜木 次郎
    └─ 母:一子
    ■世代数
    起点人物から最古祖先までの世代数を表示する。
    ■最古祖先
    父IDが存在しない人物を表示する。
    【出力形式】
    ・必ずツリー形式で表示する
    ・起点人物 → 父 → 祖父 → 曾祖父 … の順で表示する
    ・説明文は禁止
    ・系譜テキストのみ出力する
    ・表形式は禁止
    ・箇条書きのみの出力は禁止
    ■■■プロンプトここまで■■■

■■■プロンプト⑥ 一族史・全家系図作成プロンプト■■■
以下のTSVデータは、戸籍から作成した人物データベースです。
各人物には PersonID・氏名・生年月日・父ID・母ID が付与されています。
このデータを基に 一族資料を作成してください。
【入力データ】
完全データTSV
列には少なくとも以下が含まれます。
PersonID
氏名
生年月日
父ID
母ID
【起点人物】
指定された PersonID を起点人物として扱います。
起点人物
PersonID = (ユーザー記入)
氏名 = (ユーザー記入)
【処理ルール】

  1. データ優先
    人物関係は必ず以下の列に基づいて判断してください。
    PersonID
    父ID
    母ID
    氏名のみでの推測は禁止します。
  2. 不明情報
    父ID または 母ID が空欄の場合、その人物の親は「不明」とします。
    不明な親は人物ノードとして展開せず、該当箇所に「不明」とだけ表示すること。
  3. 推測禁止
    以下は禁止します。
    ・データに存在しない人物の新規生成
    ・データに存在しない親子関係の生成
    ・氏名だけを見た推測による同一人物判定
    ・列の意味の推測解釈
  4. 同一人物判定
    同一人物かどうかの判断は必ず PersonID を基準にします。
    氏名が同じでも PersonID が異なる場合は別人物として扱います。
    【出力】
    以下の順番で出力してください。
    ① 人物一覧TSV
    ② 家系図(ツリー図)
    ③ 一族史
    説明文・要約・前置きは禁止します。
    ① 人物一覧TSV
    人物データをTSV形式で一覧化してください。
    出力項目
    PersonID
    氏名
    生年月日
    父ID
    母ID
    出力形式
    ・TSV形式
    ・表形式は禁止
    ・列順は固定
    ② 家系図(ツリー図)
    父ID・母IDを基に、一族の家系構造をツリー図形式で出力してください。
    必ず図として読める形にしてください。

    田中太郎
    └─ 田中一郎
    ├─ 田中次郎
    ├─ 田中三郎
    │ ├─ 田中健太
    │ └─ 田中花子
    ├─ 田中四郎
    └─ 田中五郎
    出力ルール
    ・「├─」「└─」「│」を使用する
    ・親の下に子を配置する
    ・兄弟は同じ階層に並べる
    ・父ID・母IDを基に構造を作る
    ・不明な親は「不明」とする
    禁止
    ・文章説明形式
    ・箇条書き家系
    ・単なる親子リスト
    必ずツリー図形式で出力してください。
    ③ 一族史
    戸籍データから読み取れる範囲で、一族の歴史を文章としてまとめてください。
    含めてよい要素
    ・時代背景
    ・地域
    ・世代の流れ
    ・婚姻
    ・分家
    ・養子縁組
    ・家督相続
    ・転籍
    注意
    ・データにない事実を断定しない
    ・推測は極力避ける
    ・戸籍から読み取れる範囲に留める
    フィクション要素
    一族史の文章部分に限り、軽い演出的表現は可とします。
    ただし
    ・戸籍データと矛盾しない
    ・削除しても成立する程度
    に留めてください。
    ■■■プロンプトここまで■■■

おまけとして、AIにすべての戸籍画像を一度に読み込ませて、家系図を作らせる方法も紹介しておきます。
ただしこの方法は戸籍の状態によっては正確に解析できないことがあります。
本書で紹介したように、OCR→人物抽出→照合→ID付与と段階的に進める方法の方が、最終的な精度は高くなります。

■■■おまけ:スキャン画像から一気に家系図を作るプロンプト■■■

Role
あなたは、日本の古い戸籍(明治・大正・昭和)の翻刻と家系分析に特化した専門家です。
アップロードされた画像から、家系データベースの作成とツリー図の生成を行います。
Goal
画像内の文字を可能な限り忠実にテキスト化する。
テキストから「人物レコード」を抽出し、仮のPersonIDを付与する。
氏名・続柄・事項欄から親子関係を特定し、父ID・母IDを紐付ける。
最終的に、直系父系を中心とした家系図をツリー形式で出力する。
Step 1:翻刻(OCR)ルール
・縦書きは右から左へ、1列ずつ忠実に書き出す。
・可能な限り画像の文字をそのまま書き出す。
・推測による補完は禁止。
・抹消文字(×や線)は「x文字」と表記する(例:x貞次郎)。
・判読不能な文字は「●」とする。
・「壱」「弐」「参」などの外字はそのまま維持する。
Step 2:構造化(TSV作成)ルール
以下のヘッダーでTSV(タブ区切り)を作成してください。
PersonID / 氏名 / 生年月日 / 続柄 / 父ID / 母ID / 事項・備考
・PersonIDは 1,2,3… の連番を付与する。
・同一人物と思われる記載が複数ページに存在しても、この段階では統合しない。
・見えた通りに、すべて別PersonIDとして記録する。
・書いていない情報は空欄ではなく「不明」と記載してよい。
Step 3:関係性解決(ID紐付け)ルール
・「父名」「母名」の記載と、他レコードの「氏名」を照合し、PersonIDを特定する。
・特定できた場合は「父ID」「母ID」に記入する。
・氏名が一致しても確証がない場合は紐付けない。
・生年月日や世代が明らかに矛盾する場合は紐付けない。
・複数候補があって断定できない場合は、父ID・母IDは空欄のままにする。
・「不明」「(空欄)」などの文字列を父ID・母ID欄に入力しないこと。
Step 4:出力(Output)
以下の順に出力してください。
【人物全データ】
コードブロック内でTSV形式で出力してください。
【直系父系ツリー】
起点人物から祖先へ遡るツリー形式を作成してください。
起点人物は、データの中で最も新しい世代の人物とします。
出力例
第1世代:田中太郎(ID:12)
├─ 父:田中一郎(ID:5)
└─ 母:田中花子(ID:6)

第2世代:田中一郎(ID:5)
├─ 父:田中次郎(ID:2)
└─ 母:田中春(ID:3)
【一族の物語】
戸籍から読み取れる範囲で、一族の歴史を短い文章にまとめてください。
含めてよい内容
・地域
・戸籍の移動
・婚姻
・家督相続
・世代の流れ
注意
・戸籍データにない事実を断定しない。
・推測は最小限にする。
・物語として読みやすくしてよいが、データと矛盾しないこと。
Starting Instruction
解析を開始してください。
起点人物は、データの中で最も新しい世代の人物とします。
■■■プロンプトここまで■■■

プロンプト読ませたあと戸籍のスキャンデータを一気に読ませます。
どんな結果になるか、ドキドキして待ちましょう(笑)。

コメント

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