世界民話AIアトラスWorld Folktale Atlas AI | 33 冊 1225 話 | 出典と権利を一件ずつ確かめた

測ったこと

このアトラスは「似ている民話が見つかる」ことを売りにしている。 その機能は、機械が物語ではなく言語や本の文体を見ているだけでも、まったく同じように動く。 画面も変わらず、テストも緑のままになる。 だから作る前に「何が測れたら成立と言えるか」を決め、閾値を先に登録した。結果は、落ちたものも含めてここに全部出す。

測定日 2026-09-22 / モデル intfloat/multilingual-e5-small / Embedding 版 1.0 / 対象 1225 話

この頁の並び —— H-01 言語か物語か / G-07 本の効果 / H-03 地理と意味 / H-06 ブラウザ内の意味検索(公開している) / H-09 和訳対から学ぶ写像(採らず) / H-05 話を刻んで比べる(採用) / H-04 出来事の NLI 推定(外した) / 群のまとまり。 深層以前の道具(TF-IDF・Burrows の Delta・対応分析・LDA・HMM)は古い道具で測るにある。通らなかったものも、数字のまま置いてある。

✓ 通過 — H-01 多言語 Embedding は言語ではなく物語を見ているか

同じ物語のドイツ語版と英語版を 26 組つくり、片方から相手を探させた。対応づけの根拠はそれぞれの本の目次の題名であって、 モデルの出力ではない。だからこの検査は循環しない。

探す先候補数P@1P@5MRR中央順位偶然の水準
英語版グリム 64 話の中から6473.1%100.0%0.83811.56%
コーパスの英語全 1163 話の中から116346.2%73.1%0.60220.09%

閾値は測る前に P@1 ≥ 50% と決めてあった。 実測 73.1%(偶然の水準の 47 倍)。

ただし、言語の効果は確かにある

組平均類似度
独語内 平均類似度0.9391
英語内 平均類似度0.9325
独英間 平均類似度0.8842

言語をまたぐと平均類似度が系統的に下がる。類似度の絶対値は言語を測り、順位は物語を測る。だからこのアトラスは、類似度の数字そのものではなく順位で見せている。 テーマ推定も、この効果のせいで全話まとめて標準化するとドイツ語 62 話すべてが 空になった。いまは言語ごとに標準化している。

! G-07 — 「似ている」の正体の大半は本である

本内ペア数33039.0000
本間ペア数716661.0000
本内 平均0.9157
本間 平均0.8975
差0.0182
効果量 Cohen d0.7262

同じ本の話どうしは、違う本の話どうしより似ている。効果量は「大」。 本アトラスは一冊が一地域に対応するので、これを放置すると 「同じ地域の話は似ている」が構成上の必然として出てしまう。 よって地理に関する主張は、本をまたぐ組だけで行っている。 画面の近傍一覧にも「同じ本/別の本」の札を付けてある。

✓ H-03 — 地理と意味に相関がある(ただし本とは分離できていない)

設計書が価値として掲げていた前提「地理的に近い文化圏の民話は意味的にも近い」を、 本をまたぐ英語ペア 616105 組で測った。

地理距離と意味距離の相関 r0.282
置換検定 p(5000 回)0.0000
帰無分布の標準偏差0.084
検定の有効標本31 冊
一冊抜きの r の範囲0.210 〜 0.301
判定地理と意味に相関がある

検定の単位はペアではなく本である。616,105 ペアを標本数として扱うと水増しになり、ほぼ必ず有意になる。有効な標本は 31 冊である。帰無分布の標準偏差は 0.084 で、観測 r=0.282 はその 3.4 倍にあたる。一冊抜きでも r は 0.210〜0.301 に収まり、特定の一冊が作っている相関ではない。それでも地理は本(翻訳者・時代・編集方針)と交絡しており、「地理が近いから似ている」と「たまたまこの本たちが似ている」は分離できていない。

判定の履歴 ── 帯は一度も動かしていない

時点有効標本rp判定
L111 冊—0.0496判定できない
L421 冊0.2460.012判定できない
L827 冊0.2310.001地理と意味に相関がある
現在31 冊0.2820.0000地理と意味に相関がある

L8 でロシア・アイヌ・アラスカ・スリランカ・ナイジェリア南部・ハワイの 6 冊を足して 27 冊で p = 0.001、 L9 でジャマイカを足して 28 冊で r = 0.315 になった。L39 でオーストラリア先住民・フィリピン・ ニュージーランド(マオリ)の 3 冊を足すと、有効標本は 31 冊になり r は 0.282 に下がった。 これを読むときに知っておいてほしいことが五つある。

一冊抜きの内訳を見る
抜いた本残りでの r
PG-128140.290
PG-184500.295
PG-205520.269
PG-220720.301
PG-245690.285
PG-247140.296
PG-25910.253
PG-260700.281
PG-28920.276
PG-289320.294
PG-290210.277
PG-292870.291
PG-314810.277
PG-344310.289
PG-346550.291
PG-355570.286
PG-366680.276
PG-38330.290
PG-384880.283
PG-40180.291
PG-510020.297
PG-546100.299
PG-566140.289
PG-588160.289
PG-625090.263
PG-648070.269
PG-669230.288
PG-727350.210
PG-74390.275
PG-89330.257
PG-93680.273

✓ G-06 — 二実装照合

Embedding の計算を ONNX Runtime に任せきりにすると、呼び出し方の誤りに気づけない。 ONNX ファイルから重みだけを取り出し、numpy だけで前向き計算(埋め込み → 12 層 Transformer → LayerNorm)を書き直して照合した。 最大絶対差は 1.04 × 10⁻⁶(閾値 1 × 10⁻⁴)。

照合しているのは「モデルが正しいか」ではなく「この呼び出し方が正しいか」である。 パディングを attention から外し忘れる/平均に混ぜる/長い話を切らずに入れて 後ろが捨てられる —— どれも例外にならず、静かに違う数を返す。

✓ G-03 — 分割は、その本自身の目次と一致した

民話集を一話ずつに割るとき、期待件数はその本の目次が挙げる題名の数から取った。 目次の無い本や、目次と本文の見出しの形が違う本では、著者が刷った通し番号が 1 から欠けなく続くことと、目次があればその番号付き項目の数と合うことの二つを突き合わせた。 採録した 33 冊すべてが一致している。一致しなかった本はコーパスに入れていない。取れた分だけ採ると、その本だけ話の切れ目が 違うことになり、以後の類似度がその差を測ってしまうからである。

△ 一部の帯が落ちたまま公開 — H-06 日本語の文で民話を探せるか(ブラウザの中だけで)

問いの文をブラウザの中でベクトルにして、配ってあるベクトルと比べる。サーバも API も使わず、問いの文はこの端末から出ない。 測り方は三度変えた —— 話をまるごと 1 本のベクトルにする(L-DL3)、150 語の窓 10,519 個にする(L-DL4)、 そこから問いと窓の両方でその言語の平均を引く(L-DL5)。 問いをベクトルにするモデル(Xenova/multilingual-e5-small の量子化版)は huggingface.co から実行時に読む。 外部から 5.3 MB を 89 秒で読み込み、1 問 72 ミリ秒 (Chromium 153.0.8010.12、2026-09-28)。

検索の質 ── 帯を通った

✓ G-19 日本語の問いから届くか和訳のある話の冒頭(30 件)を問いにして、その話自身が 1 位になったのは 73.3%(上位 10 で 83.3%、偶然は 0.1%)。 帯は 50.0%。 同じ問いを話まるごと 1 本のベクトルで探すと 20.0% だったので、窓にしたことと言語を差し引いたことで上がった
✓ G-21 問いの言語の偏り同じ意味の問いを日本語と英語で流し、「1 位が日本の話」になる率を比べた。 日本語 15.0%・英語 5.0%、 差 10.0%(帯 ≤ 25.0%)。 L-DL3 の経路では差 75.0%(日本語 3/20 対 英語 1/20)だった。 コーパスの日本の話は 22 話(1.8%)しかない

差し引くのは言語ごとの平均ベクトルだけである(英独はコーパスの窓から、日本語は和訳の段落 3,000 件から取った)。 学習はしていない —— 学習に進むのは、この差し引きで足りなかったときだけと先に決めてあった。 平均をコーパスの半分ずつで別々に作っても向きはほぼ同じ(コサイン 0.9997 以上)で、 特定の話の内容ではなくその言語の向きを引いていることを確かめてある。

順位の安定性 ── 帯が落ちている

G-17 二実装照合ブラウザ(量子化)と手元(fp32)の問いベクトルのコサインは平均 0.9967(最小 0.9956)。 量子化しているので同一にはならない
✗ G-18 順位の保存上位 10 件の重なり 0.880(帯 ≥ 0.8)、 1 位の一致 0.750(帯 ≥ 0.8)
✗ G-18b 食い違いは僅差か1 位が食い違った 5 問の、手元 fp32 における 1 位と 2 位の差は 0.0062、0.0029、0.0110、0.0006、0.0028(全問の中央値 0.0114)。0.01 未満なら僅差と認めると決めてあったが、1 問が超えた。 ブラウザの 1 位は手元では 2〜5 位に入っている

検索の質の帯(G-19・G-21)は通り、順位の安定性の帯(G-18・G-18b)は落ちたまま、この機能を公開している。落ちた帯を隠して出すことはしない —— 上の数字がその記録である。 ブラウザの量子化モデルと手元の fp32 では上位数件が僅差に固まるので、1 位は入れ替わりうる。順位そのものではなく、上位の顔ぶれで見てほしい(上位 10 件の重なりは 0.880)。

対照: 民話と関係のない問い「今日の天気は晴れです」でも、いちばん高い類似度は 0.297 で、人が書いた問いの 1 位の平均 0.265 と大きくは変わらない。類似度の絶対値は「関係がある」ことを意味しない。順位で見る。

なぜ「窓の最大値」のままなのか(L-DL12)

話のスコアは「その話の窓のうち、問いにいちばん近いもの」にしている。 この作り方には二つの弱みがある —— 上位が僅差で割れることと、同じ本の中で書き出しが似ている話を取り違えることである。 集約を替えれば直るかを、和訳の冒頭 30 問と、 学習に使っていない文化圏の 60 問で測った。

集約G-19取り分けた 58 問誤りのうち同じ本言語の偏り
①窓の最大値(現行)0.7000.8330.3000.100
②上位 3 窓の平均0.6670.6000.2500.100
③最大値 + 本ごとの標準化0.6330.5500.0370.000
④上位 3 窓の平均 + 本ごとの標準化0.3670.3330.0250.050

どれも採らなかった。本ごとに標準化すると「同じ本の中の取り違え」はほぼ消える(0.300 → 0.037)が、そのぶん正解も落ちる(0.833 → 0.550)。 同じ本の中で相対化すると、正解がその本の中で一番でないときに拾えなくなるからである。弱みを消す代わりに質を落とすことはしないと、測る前に決めてあった。

この回は登録の仕方も誤った —— 順位の割れを見る帯を、 別の問い集合・別の経路で測った値の 2 倍として書いてしまい、現行でも最初から満たされていた。 帯は動かさず、比較の表をそのまま残す。実測値を別の文へ写すときは、母集団を確かめる。

✗ 採らなかった — H-09 和訳対から写像を学ぶと、差し引きを超えるか

和訳は原文と段落が一対一に対応しているので、18,435 組の対が 「同じ内容の日本語と英語」として使える。これを材料に、日本語の問いを原文の空間へ移す 384 × 384 の線形写像を学んだ。文化圏を丸ごと分け、21 文化圏で学び、 残る 11 文化圏(66 問)だけで判定した —— 同じ本の別の話は文体を共有するので、話単位で分けても漏れる。

やり方未学習の文化圏 P@1P@10独英グリム問いの言語の偏り
差し引きだけ(学習なし)81.8%95.5%88.5%10.0%
直交プロクラステス(回転だけを学ぶ)83.3%95.5%96.2%10.0%
リッジ回帰(自由な線形写像)77.3%86.4%92.3%10.0%

どちらの写像も採らなかった。採る条件は測る前に「未学習の文化圏で P@1 を 5.0% 以上上回ること」と決めてあり、 回転は 1.5% 下がり、自由な線形写像は 4.5% 下がった。 自由な写像が大きく崩れたのは、18,435 組では 384 × 384 の自由度を支えられないからだと読める。

ただし回転は、上位 10 件に入る率(95.5% → 95.5%)と 問いの言語の偏り(10.0% → 10.0%)は良くしている。 それでも採否の物差しを後から取り替えることはしない。測った値はここに残す。

なぜ効かなかったのか ── 三つに分けて測った

「線形では足りない」と決めつける前に、材料・目的・容量のどれが効いていないのかを分けた。 取り分けた文化圏は同じ 11 個のままである。

✓ 材料取り分けた文化圏の段落 8,530 対で、 日本語とその原文が互いに最も近い割合は 78.4%。材料は強い信号である
✗ 目的の不一致段落 → 段落 で測ると、差し引きだけで 85.3% 当たる。 非線形でも 89.3%(+4.1%)。 段落どうしの突き合わせでは登録した帯 5.0% に届かない
✓ 容量2 層の非線形(隠れ 512・InfoNCE)を同じ材料で学び、段落 → 話 で 81.8% → 89.4%(+7.6%)。登録した帯 5.0% を超えた —— 線形では足りていない
✗ 目的に合わせた学習学習の対を「日本語の段落 → その話の窓」に替えると 80.3%(-1.5%)。目的に寄せた学習のほうがむしろ悪い

登録した条件では、e5 本体の微調整(Colab)に進む材料がそろった。進む条件は「容量が足りないと示せたとき」と先に決めてあり、 2 層の非線形が段落 → 話で差し引きを 7.6% 上回った(帯 5.0%)。ただし、これは 2026-09-28 に測り直して初めて出た結論である。2026-09-18 の測定では同じ帯で +1.7% にとどまり「進まない」と判定していた。 変わった理由は本や和訳が増えたことではなく、そのときの測定が壊れた材料の上で行われていたことである —— 段落対のキャッシュが古く、ノルウェーは 2,457 対のうち 33 対しか読まれていなかった。帯は一度も動かしていない。動いたのは材料のほうである。

残った誤り 12 件のうち 8.3% は、 1 位が同じ本の別の話だった (例:「The Red Ettin」を探して「The Pots of Oil」が出る)。材料を直す前の測定ではこれが 36.4% あり、 「誤りの正体は同じ本の中の似た書き出しだ」と書いていた。 材料を直すとその割合は下がった —— 当時の読みは、 壊れた材料の上での読みだったことになる。

最初の測定(和訳 620 話・9,212 対)では、独英グリムが三通りとも 88.5% と同じ値になった。 検査が動いていないことを疑って対ごとに数えたところ、回転では 26 組中 4 組で当たり外れが入れ替わっており、 合計だけがたまたま一致していた。和訳を増やして測り直したいまは 88.5% / 96.2% / 92.3% と分かれている。同じ数が出たときは、まず検査が動いていないことを疑って数え直す。和訳は AI が作ったものなので、この材料で学ぶことは「AI の訳文に寄る」危険を含む。 独英グリムは訳を一度も通していないため、その危険の外にある物差しとして置いてある。

✓ 成立 — H-05a 話を刻んで比べると、言語が違っても同じ話を見つけられるか

話を 150 語ずつの窓に切って窓ごとに Embedding を取り、話の平均を引いて(訳者の文体や話全体の話題のように、話の中で一定の成分を落として) 相対位置で 8 点に均したものを「筋の形」と呼ぶことにして測った。 窓が 4 個に満たない短い話(341 話)は形を持たないものとして外してある。

やり方候補数P@1MRR偶然の水準
形だけ(英語版グリムの中から)58100.0%1.0001.7%
形だけ(英語全話の中から)830100.0%1.0000.1%
話全体の Embedding(いまの近傍・同じ相手の中から)5872.0%0.8311.7%

独英グリムの同じ話 25 組(形を持たない 1 組を除く)。 順列検定 p = 0.0001、登録した閾値は P@1 ≥ 20.0%。話をまるごと 1 本のベクトルにするより、刻んで比べるほうがよく当たる。

対照 ── そして「順番が効いている」とは言えなかった

✓ 陽性対照100.0%(基準 ≥ 90.0%)。 75 語ずらして窓を切り直しても、自分自身を第 1 位で引き当てる(形が切り方で変わらない)
✓ 陰性対照4.0%(基準 ≤ 10.0%)。 窓の順番を話ごとにでたらめに並べ替えると当たらなくなる
! 事後の対照100.0%。 位置を合わせず、窓どうしを「互いに最も近い相手」で突き合わせる(順番を一切使わない)やり方でも、830 話の中から 100.0% 当たった

事前に登録した陰性対照(順番を壊す)は通った。しかし順番をまったく使わない突き合わせでも同じだけ当たるので、 効いているのは筋の順番ではなく、話を刻んで細かく比べていることだと読むのが正しい。 並べ替えで当たらなくなるのは、位置を合わせて比べる限り、中身が別の位置に移ると合わなくなるからにすぎない。 この対照は結果を見てから足した。登録した三つの主張は成立しているが、「筋の形」という呼び方はこの測定より広い。

✓ 成立 — H-05b 刻んだ比べ方は、いまの近傍に無いものを足すか

英語 830 話の中から相手を探させたときの MRR は、話全体の Embedding だけで 0.606、 窓の比較を足して 1.000(差 0.394、95% 区間 0.237〜0.559)。 重みは 1 対 1 で、測る前に決めたまま動かしていない。

✓ 成立 — H-05c 刻んだ比べ方は、本の文体の影響を受けにくいか

比べ方本内の平均本間の平均Cohen d
窓を刻んで比べる(平均を引いた形)0.02710.01640.347
話全体の Embedding(G-07 と同じ形)0.93490.91081.190

話の平均を引くと、本の効果は小さくなる(d 1.19 → 0.35)。 消えたわけではない。窓 11,154 個 / 形を持つ話 884 話で測った。

— 判定せず — H-04a 出来事・モチーフは、NLI で推定したほうが当たるか

話の画面のモチーフは、説明文との近さ(e5)と引き金語の数で出している。 これを多言語 NLI(multilingual-MiniLMv2-L6-mnli-xnli)に 「この本文から、この出来事が起きたと言えるか」を問う方式に替えたら当たるようになるかを、モデルを走らせる前に合否の帯と正解集を決めてから測った。

正解集

乱数で選んだ 45 話(各本 1 話 + 15 話)に、二人の読み手が互いの答えを見ずに 21 個のラベルを付けた。945 項目のうち一致した 905 項目 (95.8%、Cohen κ = 0.91) だけを正解に使っている。読み手は Claude のサブエージェントで、民話学の専門家ではない。

判定の仕掛けが働いているか

✗ 陽性対照63.3%(基準 ≥ 80.0%、60 組)。 「ない」話の中央に、その出来事が起きたと書いた一文を差し込むと札が立つ割合
✓ 陰性対照0.579(帯 0.4〜0.6)。 ラベルの列を入れ替えたときの macro-AUC

結果

macro-AUC(NLI)0.586
macro-AUC(既存の方式)0.686
差(NLI − 既存)と 95% 区間-0.100(-0.199 〜 -0.009)
成立の条件(測る前に登録)差 ≥ 0.05 かつ区間の下端 > 0
参考: しきい値 0.5 での macro-F1NLI 0.484 / 既存 0.328

陽性対照が落ちたので判定しない

登録どおり、話の画面の推定は差し替えていない。AUC は「ある話」と「ない話」を一つずつ取り出したとき、ある話のほうに高い点が付く確率で、0.5 が当てずっぽうにあたる。 参考の F1 は NLI のほうが高いが、ほとんどの札を付けてしまうと F1 は上がる(下の「付与の分布」)ので、 当たりの証拠には読まない。

ラベルごとの AUC を見る
ラベル正解の項目数うち「ある」AUC(NLI)AUC(既存)判定に使ったか
特殊出生4350.6470.721使った
旅立ち41220.6150.734使った
試練4270.6370.698使った
助力者42270.5630.699使った
怪物退治4460.6400.684使った
魔法の品45140.6470.689使った
変身45170.5820.630使った
禁忌の破り4450.3490.523使った
贈与42210.6050.764使った
結婚45200.4920.840使った
王位4550.6050.810使った
財宝45100.6710.777使った
復讐4140.5070.601使った
契約38170.6810.784使った
死45270.5370.671使った
再生4540.6100.671使った
争い4370.5630.722使った
逃走42230.5930.675使った
帰還43200.5720.607使った
罰44180.5340.592使った
策略41280.6650.516使った

✗ 不成立 — H-04b 言語が違っても、同じ話には同じ札が付くか

独英グリムの同じ話 26 組で、21 個の札の付き方の一致率を測った。 対の一致率は 66.8%、 組み合わせをでたらめに入れ替えたときの平均は 66.8%(順列検定 p = 0.9921、基準 p < 0.01)。

長い話ほど札が付きやすいか

話のスコアは「チャンクの中の最大値」なので、チャンクの多い長い話ほど高く出る向きに偏る。 正解で「ない」項目に札を付けてしまった割合は、短い三分の一(839 語以下)で 39.0%、長い三分の一(2078 語以上)で 92.1%(2.36 倍)。 2 倍を超えているので、長い話の札は割り引いて読んでほしい。

付与の分布 ── 札を「全部に付ける」壊れ方

全 1,113 話のうち50.9% の話で 21 個すべてに札が付いた。 言語ごとの平均付与数は ドイツ語 20.66、英語 13.93。

壊れているとみなした理由: 全ラベルに付けた話の割合 0.509 / 言語ごとの平均付与数 [13.93, 20.66]。この検査は最初「無付与率」と「最頻ラベルの占有率」の二つだけで、この壊れ方を緑のまま通した。全部に付ける分類器は、何も付けない話を作らず、一つの札に偏りもしないからである。 残りの二条件(全ラベルに付けた話の割合・言語間の付与数の差)は結果を見てから足した。

なぜ当たらなかったか(事後の診断・判定には使っていない)

チャンク 5,809 個のうち、上限 512 トークンで末尾を切り詰めたのは 282 個。 より大きな NLI モデル(mDeBERTa-v3-base)は試していない。量子化版はこの機の CPU で 1 秒に 1.5 組 (全話 12 万組で 20 時間余り)しか進まず、しかも明らかな含意の例で含意確率 0.13 と出力が壊れていた。 量子化しない版の速さは測っていない。

群のまとまり具合

PCA(50) → UMAP(8) → HDBSCAN(min_cluster_size=6, min_samples=3)。55 群 / 未分類 137 話 / シルエット係数 0.014。 この値は 1 に近いほどくっきり分かれていることを意味する。この値は「ほとんど分かれていない」。 群は探索の入口として使えるが、境目に意味を読み込んではいけない。

! 測り直していない測定

本や和訳が増えると、それを材料にした測定は古くなる。 画面には測定時の話数を併記しているので嘘にはならないが、 読み手はいまの数字だと思って読む。この節は、材料より古い成果物を機械が数えて並べたものである(監視している成果物 21 個)。 材料の最終更新はコーパス(本文) 2026-09-23/和訳 2026-09-26/問いの集合 2026-09-28。

測定いつ測ったか何より古いかなぜ測り直していないか
nli_eval.json2026-09-17コーパス(本文)1,113 話(30 冊)のときの測定。全話に 21 ラベルを当てる推論が CPU で数時間かかるため、このループでは動かさなかった。判定は「不成立・画面に出さない」で、話を増やして通る種類の落ち方ではない(全ラベル付与率が 50.9% と飽和していた)。次にこの測定に触るときに測り直す

古いこと自体は禁じていない。黙って古いことを禁じている。理由を書かずに古い測定を置くと、検査(tests/test_freshness.py)が落ちる。

このアトラスが言わないこと

収録 1225 話 / 解析版 1.0。