宋本廣韻の音韻データをAIエージェントで整備する
May 26, 2026
宋本廣韻の音韻データをAIエージェントで整備する #
AIへの依頼 #
Claude を利用して、宋本廣韻の音韻データを整備した。AIとのやりとりの詳細は割愛して、 およその流れをまとめてもらった。
Claudeへの最後の依頼文は次のとおりです。
今回の宋本広韻データの整備をブログ記事にしたいですが、
ここまでのやり取りの詳細を、コピペしてもあまりメリットが
ないと感じます。
そこで大まかな作業方針を示し、最後に課題を提供する記事としようと思います。
まずは、現在、誰でも入手可能な次の三つのファイルがあったとして、Claude CodeやCodexのような
AIエージェントに今回の作業を再現してもらうにはどのような命令を出せばいいですか。
- sbgy.xml
- 廣韻.csv
- 宋本廣韻データ.html
次に、SGY_fanqie.csvのような研究者が自作した手元のデータを追加して、精度を高めるには、どのようなことが要件となりますか。
以上の内容をデータ処理にあまり詳しくない人文系研究者向けにまとめてください。
はじめに #
漢字の音韻情報を扱う研究では、複数の資料を突き合わせて照合する作業が欠かせません。しかし、そのためには XML の解析、CSV の照合、文字コードの処理など、専門的なプログラミング知識が必要になることが多く、人文系の研究者にとっては大きな障壁でした。
近年登場した Claude Code や OpenAI Codex のような AI コーディングエージェントは、こうした作業を「日本語で指示を与えるだけ」で相当程度自動化できるようになっています。本稿では、公開データのみを使ってどこまでできるかを整理し、さらに研究者が自作した手元のデータを加えることで精度を高めるための要件を示します。
使用するデータ #
今回の作業の出発点として、以下の 3 ファイルを使用します。いずれも一般に公開されており、誰でも入手できます。
sbgy.xml Kanji Database Project が公開する宋本廣韻の XML データです。 https://github.com/cjkvi/cjkvi-dict
廣韻の親字 25,551 字を収録し、各反切グループ(voice_part)に IPA(国際音声記号)による再構音(例: tuŋ˥˩)と日本語音読みが付与されています。
廣韻.csv nk2028 プロジェクトが公開する廣韻音韻データベースです。 https://github.com/nk2028/tshet-uinh-data
25,336 行のデータに「音韻地位」(例: 端一東平)と釋義(字義の注文)が整備されています。
宋本廣韻データ.html sbgy.xml のデータ仕様を解説した HTML ページです。 https://kanji-database.sourceforge.net/dict/sbgy/index.html
声母・韻母・声調と IPA の対応表が掲載されており、データ処理の設計仕様書として活用します。
AIエージェントへの指示例 #
フェーズ 1:sbgy.xml から声母・韻母・声調を読み取る #
次のような指示文を与えることで、AI エージェントは自律的にスクリプトを設計・実装できます。
以下の 2 ファイルを使って、各漢字の声母・韻母・声調を出力する Python スクリプトを
作成してください。
- sbgy.xml
- 宋本廣韻データ.html
処理の要件は次のとおりです。
1. sbgy.xml の voice_part 要素が持つ @ipa 属性(例: tuŋ˥˩)を解析する。
2. 宋本廣韻データ.html の声母表・韻母表・声調表を参照し、IPA から
声母(端・知・精 等)、韻母(通攝・東韻・一等・開口 等)、
声調(平声・上声・去声・入声)を導出する対応表を構築する。
3. 各漢字(word_head)について、上記の情報に加え、反切・音読み・巻 ID・
word_id を含む JSON 辞書を生成する。
4. 同一漢字が複数の voice_part に属する場合(多音字)は配列として扱う。
5. 出力ファイル名は sbgy_dict.json とする。
6. 最後に「凍」「東」「中」の 3 字で検証結果を表示する。
このような指示 1 つで、AI エージェントは以下を自律的に実行します。
- HTML から声母・韻母の対応表を読み取る
- IPA の正規表現パターンを設計する
- 145 種の韻母パターンを網羅するテーブルを構築する
- XML を解析して全漢字エントリを処理する
実際の処理で判明したポイントとして、韻母の 145 パターンをすべて網羅するには IPA から実際に出現するパターンを全件抽出し、マッチング不明ゼロになるまで 補完を繰り返す必要があります。AI エージェントにその旨を含めて指示すると、 自動的に不明件数を確認しながら補完を続けます。
フェーズ 2:廣韻.csv との照合で情報密度を上げる #
sbgy_dict.json と廣韻.csv を照合し、各エントリに以下の情報を追加してください。
- 音韻地位(端一東平 形式の正式記法)
- 小韻號
- 釋義(廣韻の字義注文)
照合キーは「漢字 + 音韻地位」の組み合わせを基本とし、
反切が一致する場合はそちらを優先してください。
照合に先立ち、以下の表記差を補正してください。
1. sbgy の韻名と廣韻.csv の韻名の体系的な差異
(例: sbgy では入声韻「屋」と陽声韻「東」が別韻名だが、
廣韻.csv では声調で区別して同じ「東」を使う)
2. 声母の字体差(例: 群→羣、娘→孃)
照合結果に match_status フィールドを付与し、
"matched" / "unmatched" で区別してください。
この指示に対して AI エージェントが調査した結果、次の点が判明します。
- 韻名の体系的差異は 38 種ある
- 声母の字体差は 2 種(群→羣・娘→孃)
- これらの補正を適用すると照合率が 59% から 88.5% まで向上する
手元データを加えて精度を高める要件 #
公開データだけでは解決できない照合不一致が、上記の方法でも全体の約 11% 残ります。 研究者が自作した手元データ(SGY_fanqie.csv 等)を追加することで、この残余部分の 検証・解消が可能になります。ただし、そのためには手元データ側に以下の要件が 満たされている必要があります。
要件 1:照合キーとなる共通 ID を持つこと #
手元データと既存データを結びつける「橋渡し」となる共通 ID が最も重要です。
今回の作業では、sbgy.xml の親字 ID(例: w107b0601)を手元データの word_id 列に
格納していたため、w というプレフィックスを付加するだけで 3,872 件が自動照合できました。
逆に共通 ID がない場合は、「漢字+反切」の組み合わせによるファジー照合が 必要になります。この場合、旧字体・異体字・注記記号の差異を吸収する 正規化処理が不可欠です(後述)。
理想的な形式:
word_id(または他の共通ID列)| hanzi | fanqie | shengmu | ...
107b0601 | 東 | 徳紅 | 端 | ...
108a0402 | 同 | 徒紅 | 定 | ...
要件 2:文字コードの統一(UTF-8) #
漢字データを扱う際に最もよくある問題が文字コードの不統一です。
- ファイル全体が UTF-8 で保存されていること
- 異体字(𤣥・𢘐 等の補助漢字面の文字)が文字実体参照(&#x…;)ではなく Unicode 文字そのものとして格納されていること
要件 3:反切の表記規則が一貫していること #
反切による照合を行う場合、表記の揺れが照合精度を大きく左右します。 今回の作業で確認された主な揺れの例を示します。
旧字体の差異(全 26 文字):
徳 ↔ 德 戸 ↔ 戶 茲 ↔ 玆 縁 ↔ 緣 遥 ↔ 遙
姉 ↔ 姊 呉 ↔ 吳 虚 ↔ 虛 顔 ↔ 顏 間 ↔ 閒 など
注記記号の混入:
廣韻.csv では反切中に校勘情報が混入している場合があります。
例: 鋤(鉏)弓 → 主表記は 鋤弓
例: 姊宜〘規〙 → 主表記は 姊宜
手元データの反切がどちらの表記に統一されているか、 あるいは混在しているかを明示しておくと、照合スクリプトの作成が容易になります。
要件 4:声母体系が明示されていること #
廣韻の声母分類には複数の体系があります。
IPA ベース(sbgy.xml 採用):
端[t]・透[tʰ]・定[dʰ] 等、発音に基づく分類
三十六字母体系(宋代分類):
照三・審三・穿三・照二・牀二・喩・于・非・敷・奉・微 等の伝統的分類
音韻地位記法(廣韻.csv 採用):
端一東平 のように声母・等・韻・声調を連結した表記
手元データがどの体系を採用しているかを明示し、変換テーブルを 別途用意しておくと、AI エージェントが自動的に対応表を構築できます。
要件 5:各列の意味が記述されていること(メタデータ) #
列名だけでは意味が伝わりにくい場合、README や先頭行コメントで 各列の内容・体系・略語を説明しておくことで、 AI エージェントがデータを正しく解釈できるようになります。
例(SGY_fanqie.csv の場合):
she_kaihe_deng列: 攝・開合・等を「通中1」「山開3」形式で記述tone_volume_code列: a1=上平声、a2=下平声、b=上声、c=去声、d=入声qingzhuo列: 全清・次清・全濁・清濁の 4 分類
今回の作業で実現したもの #
上記の方針で進めた結果、以下の統合 JSON 辞書が完成しました。
総エントリ数 : 25,541 件
GY 照合成功 : 24,621 件(96.4%)
SGY 付与 : 3,872 件(首字のみ)
各漢字のエントリは次の 3 層の情報を持ちます。
漢字
├── sbgy 層: IPA・声母・韻母・声調・攝・等・開合・反切・音読み
├── sgy 層: 三十六字母声母・攝開合等・清濁・切韻諸本との校勘注(首字のみ)
└── gy 層: 音韻地位(正式記法)・小韻號・釋義・直音
残された課題 #
照合できなかった 920 件(3.6%)の内訳は次のとおりです。
廣韻.csv に漢字自体がない(553 件)は、sbgy.xml 固有の異体字や増補字であり、 異体字対応テーブルとの照合でさらに解消できる可能性があります。
韻・等の校訂差(263 件)と声母の校訂差(83 件)は、
底本の違いや校訂方針の差に起因する真の「データ差異」です。
これらは手元データの校勘注(fanqie_note 等)を根拠に
どちらが正しいかを判断する人文的な検証が必要になります。
首字の照合失敗(21 件)は照三/二系の解釈差など、 体系レベルの差異に起因しており、専門的な音韻論的検討が求められます。
まとめ #
公開データ 3 ファイルと適切な指示文があれば、AI エージェントは 廣韻の音韻情報を統合した JSON 辞書を自律的に生成できます。
さらに研究者が自作した手元データを加える場合、 最も重要な要件は「共通 ID」「UTF-8」「表記規則の一貫性」「声母体系の明示」 の 4 点です。これらが整備されていれば、AI エージェントは 照合スクリプトを自動的に設計・実装し、統合精度を大幅に向上させることができます。
人文系の研究者が蓄積してきた精緻な手作業データは、 このような形でデジタル統合の「精度向上エンジン」として機能します。 AI エージェントはその入口を劇的に低くしますが、 最後の判断は依然として研究者の専門知識に委ねられます。
参照リソース #
- Kanji Database Project: https://kanji-database.sourceforge.net/
- cjkvi-dict(sbgy.xml): https://github.com/cjkvi/cjkvi-dict
- tshet-uinh-data(廣韻.csv): https://github.com/nk2028/tshet-uinh-data
- HDIC プロジェクト: https://viewer.hdic.jp/