« 地方都市で持続可能な規模は――鳥取市内にミニシアターがオープン | トップページ | 福光浅利道路の2026年度予算 »

2026年4月 9日 (木)

昔話の計量テキスト分析――竜宮女房

◆はじめに

以下はKH Coder(無償版:version 3.Beta.08e)を用いた昔話の計量テキスト分析である。昔話の類話の比較にツールを利用できないか試行してみた。

手持ちの資料が限られるため、分析の対象となる元データの文字数が少ないものの(※本来であれば5000字以上は欲しい)、分析自体は正常に処理されていると判断した。

KH Coderの操作に慣れる目的も兼ねて行った作業で、コーディングルールの記述の事例集、あるいは速習用のチュートリアルとしてでも読んで頂ければ……といったところである。

なお、KH Coderでよく用いられるのは共起ネットワークと対応分析とのことで、それ以外はおまけパートと思って頂いて構わない。操作に習熟するにはコーディングルールの記述に慣れるのが第一である。

◆ファイル

各ファイルをダウンロードしてKH Coderに読み込ませれば同様の分析が再現可能である。

ダウンロード - ca_pb_031_ryugunyobo.xlsx

ダウンロード - ca_pb_031_codingrules.txt

ダウンロード - kh_coder_startingedition_sagyotejunsho.txt (※作業手順書)

※「H5」とはHTMLでいうところのヘッダー(見出し)・レベル5で本文に相当すると考えればよい。
※[コーディング単位]は「文/段落/H5」から選べるが、状況に応じて適切と思われるものを選択する必要がある。処理が上手くいかないと感じた場合、コーディング単位を切り替えると上手く処理されるケースがままある。

※公式マニュアルでは「集計単位」という用語が使われている。共起関係について、

・「文」では一文単位での分析
・「段落」では段落単位の分析
・「H5」では表計算ソフトのセル単位とされ、改行を含めた一セルの中身全体が分析単位となる

※レファレンスでも索引で「コーディング単位」の項目は設けられていない。操作性に関わる重要項目であるものの、その仕様について不明瞭な感はある。
※当ブログの場合、表計算ソフトのフォーマットで読み込ませているからH5固定でいいだろうと思い込んでいたら、さにあらずだった。

◆あらすじ

・「竜宮女房」(未来社『石見の民話』)
孝行息子と母親が二人で暮らしていた。毎日薪をとって町に売りに行って、それで母親を養っていた。大晦日の日、息子は薪を町に売りに行ったが、誰も買う者はいなかった。日も暮れたので、この薪は竜宮にあげようと橋の上から川へ投げた。それから家へ帰ったところ、美しい女の人が来て今夜泊めてくれと頼んだ。何も食べるものがないと断ったが、きかないのでとうとう泊めてやって嫁にした。女は金を出したので三人でよい年をとった。それから何日か経って男は畑に行ったが、嫁が見たくてたまらないので、家へ帰って話すと、嫁は自分の姿を絵に描いてやった。男はその絵姿を木にかけて、それを見ながら畑仕事をしていた。その内に酷い風が吹いてきて、その絵をどこかへ持っていってしまった。男は悲しんで嫁にそのことを話した。その内に殿さまから何月何日出てこいと手紙が来た。何か悪いことをしたのかと心配して出ていくと、こんな女房を持っているかと問われた。それを見ると、嫁の絵姿だったので持っていると答えると、女房を連れてこいと言われた。連れてこられないと断ると、それなら殿さまの言うことを叶えよと難題を言われた。「けむくぞうに、これわいさに、打たん太鼓に鳴る太鼓、音なし笛のじんばらほ」を持ってこいと。心配して嫁に話すと、それはたやすいこと。私が整えてあげると言われた。明くる日、嫁はそれぞれ桐の箱に入れてこれを持っていけ。自分はこれまで隠していたが竜宮の乙姫だ。今日から別れると言った。男は悲しんだ。仕方ないので仰せの通りの物を殿さまのところへ持っていった。殿さまが箱を開けると毛虫やら二丈ある男やら蜂が出てきて殿さまを苦しめた。殿さまは痛くてたまらないので早くしまえと仰せになり、よくその品物を持ってきたと褒美をくださったので、一生安楽に暮らした。


・「竜宮のよめさん」(偕成社『島根県の民話』)
昔、若い男がいて畑で野菜を作っては町に売りに行っていた。町へ出る道には大きな川があって橋がかかっていた。男は橋を渡る度に竜宮さん、どうか野菜がよくできるようにいい天気にしてくださいと言って橋の上からナスやら大根やら川の中へ投げてあげた。そうしたら、本当に天気がよくなった。あるとき、男のところへ綺麗な娘がやって来て男の女房にして欲しいと言った。自分は貧乏で嫁など養えないと断ったが、大して養ってもらわなくてもいいから嫁にしてくれと言うので、そう言うなら嫁にしようと男は娘を嫁にした。ところが、この嫁があまりに綺麗なものだから、男はいつも顔を見ていないと気が済まなくなった。そこで畑へ行くときは紙に嫁の絵を描いてこれを見ながら仕事をしていた。そうしたら、ある日大風が吹いて絵に描いた嫁がぱあっと吹かれて逃げてしまった。どこへ行ったか分からなかったが、お城の殿さまのところへ飛んでいっていた。殿さまは嫁の絵を見てこんなに綺麗な女がいるとは知らなかった。自分の妃にするから探してこいと言って家来に探させたら、男の嫁だということが分かった。殿さまは早速男を呼びつけてお前の女房を妃にするからすぐに差し出せ。嫌なら「はいで あんだ なわ」を三束持ってこい」と命じた。それは難しいことだと困った男は家に戻って嫁に話した。嫁はそんなことは容易いことだ。縄を三束にがりに漬けてそれを干して焼けば固い灰の縄ができると答えた。嫁の言う通りにしたら、灰の縄が三束できた。男は早速殿さまのところへ持っていった。殿さまはいや、これではまだ許さない。今度は「たたかぬたいこの なるたいこ、ふえをふいてまう男」を出せ。女房を出すかどちらか選べと命じた。それは難しいと男がまた嫁に相談すると、そんなことは容易い。山に行って蜂の巣をとってきて、太鼓の中に入れて持っていったらいいと答えた。不思議なことを言うものだと思ったが、嫁に言われた通りにして殿さまのところへ持っていった。殿さまが太鼓を手にとると、蜂が外に出たがって太鼓の皮にぶつかってはポンポコ、ポンポコ鳴りだした。感心した殿さまは中を見たくなって太鼓の皮を剥いだ。そうしたら蜂がいっぱい飛び出してきて殿さまの顔やら尻やらを刺した。こいつはたまらない。殿さまは蜂を追い払うつもりで口笛を吹き吹き、手足をばたばたした。「ふえをふいてまう男」とはこのことだった。殿さまは痛いやら悔しいやらで、こいつは何でもする奴だ。今度は「大もっけ、小もっけ」という者がいるから連れてこいと言った。それはどんなものかと問うと、どんなものでもいい。女房を出すか大もっけ、小もっけを連れてくるか選べと命じられたので、これは難しいことだと男はまた嫁に相談した。そんなことは容易いことだ。だけど、大もっけ、小もっけを連れていったらお城が潰れるがそれでもいいかと嫁が答えたので、男が殿さまに訊くと、それでもいい。連れてきたらいいと言った。男が嫁に言ったら、嫁は今まで隠していたが実は自分は竜宮の乙姫だ。男が毎日野菜をくれたので男の嫁になったと言ったので男はびっくりしてしまった。嫁はじきにどこかへ出かけたが、やがて天をつくような大きな大きな男を二人連れて戻ってきた。この者たちは竜宮に仕えている大もっけ、小もっけだ。今度は私が城へ連れていこうと嫁は大もっけ、小もっけを引き連れてお城へ出かけた。ところが、大もっけがお城の石垣に足をかけたら石垣がガラガラっと壊れてしまった。小もっけがくしゃみをしたら、お城の天守閣が吹き飛んでしまった。殿さまはもうびっくりして自分が悪かった。許してくれと謝った。それからは男と嫁は二人仲良く暮らした。


・「絵姿女房」(みずうみ書房『日本伝説大系』十一巻)
下意東字五輪の墓地で意東川の東方、旧国道の側にある。大江の美人塚と言われている。その夫は上意東古畑の人で、常に愛妻の姿を描き、これを持って外出していたが、田んぼで仕事の折に竹竿の頭に挿して牛が耕す行き返りにこれを眺めて悦に入っていた。ところがたまたま大旋風が吹いて、その画像が遠く京都の内裏の中に落ちた。内裏ではその絵を見て絶世の美人なのに驚き、諸国に命じてあまねく探索し、美人を徴発して内裏の中に置いた。夫は悶々として耐えかね、端午の節句に限り菖蒲売りが内裏に出入りを許されると聞き、大江の菖蒲を切りとってはるばる京都に上がったけれども時期を逃し五月六日になって到着し、内裏の周囲を「菖蒲々々」と売り歩いた。六日の菖蒲はさても珍しいとて、美人が窓の障子を細目に開いてみると夢にも忘れぬ夫であったので大いに喜び、窓の下に招いてその夜内裏から逃れ出て昼は野山に隠れ、夜は道なき道を歩んでようやく美人塚前に辿りついた。そして遥かに山奥の我が家の辺りより立ち上る煙を見て喜びのあまり俄かに気が緩んで死んでしまった。夫は悲痛のあまり号泣してねんごろにこの地に葬ったという。今なお夫の出身地古畑では五月六日に菖蒲を飾り、また大江には美人の屋敷跡があって陶器の破片が出るし、美人が朝夕に沐浴したと伝えられる稚児が池もまた現存している。

◆コーディングルール

※コーディングルールのキーワードは重要と判断したものを人力でピックアップしている。そのため、恣意性を伴う分析となる。

※活用形でなく基本形で入力する。

※[前処理]→[語の抽出結果を確認]でキーワードがどのように分節されているか検索すると結果の一覧[語の抽出結果]が表示される。

※[Result]から確認したい行をクリックして選択、画面下の[詳細表示]ボタンをクリックするとサブ画面が表示され、活用形や基本形が確認できる。

※昔話では「否定/肯定」「肯定/否定」と属性が変化することが多いと考え、否定詞「ない」「まい」「ぬ」「ん」、また禁止を意味する「な」を共通のコードとして設定している。

※[関連語検索]で否定詞の共起語の一覧を表示させたところ、日本の昔話のように掌編レベルのボリュームだと、物語の動因となる箇所に関する語句が上位に表示される傾向が強いのではないか……といった印象があり、検証作業中である。

※無償版では強制抽出語の指定が機能制限で事実上使用できないため以下のような手法をとっている。


*嫁
嫁 or 女房 or 愛妻
*絵姿
( 姿 and 絵 ) or 絵 or '絵姿'
*大男
男 and 二丈
*野菜
野菜 or ナス or 大根
*灰
灰 or 'はい'
*縄
縄 or 'なわ'
*太鼓
太鼓 or 'たいこ'
*笛
笛 or 'ふえ'
*もっけ
'大もっけ' or '小もっけ' or ( 天 and 大きな and 男 )
*美人塚
'美人塚'
*風
旋風 or 風 or 大風
*たやすい
たやすい or 容易い

*ない
ない
*ぬ

*ん

*るな
'るな'
*るまい
'るまい'

*孝行
孝行
*息子
息子
*母親
母親
*薪

*町

*大晦日
大晦日
*竜宮
竜宮
*橋

*川

*女

*殿さま
殿さま
*難題
難題
*箱

*乙姫
乙姫
*別れる
別れる
*毛虫
毛虫
*蜂

*褒美
褒美
*男

*天気
天気
*娘

*貧乏
貧乏
*妃

*お城
お城
*石垣
石垣
*天守閣
天守閣
*夫

*美人
美人
*内裏
内裏
*端午
端午
*節句
節句
*六日
六日
*菖蒲
菖蒲
*死ぬ
死ぬ
*気

*緩む
緩む
*葬る
葬る


◆共起ネットワーク

・[コーディング単位]を[H5]に設定する。

※[描画する共起関係(edge)の選択]で「係数」を「0.2」から「0.3」に修正する。
※[強い共起関係ほど濃い線に]にチェックを入れる。

Jaccard係数が0.3以上はかなり強い共起関係にあることを示しているが、分析対象となる元データの文字数が少ないため係数が高めに出てしまう傾向にあるため、こうしている。

※Jaccard係数は共起関係(※ある言葉に続いて出てくる関係)の強さを表し 0≦係数≦1 の範囲の値をとる。

【Jaccard係数】
・0.1 →関連あり
・0.2 →強い関連あり
・0.3以上 →とても強い関連あり
※ただし、あくまで目安であって絶対ではない。

共起ネットワーク

ざっと確認したところ、共通するキーワードが中央のサブグラフ(バブルが島状に集まった一塊)に表示され、類話によって異なるキーワードがそれぞれのサブグラフとして周辺に表示される形となっている。

※なお、各バブル間の距離や配置に意味はない。

◆対応分析

・[コーディング単位]を[H5]に設定する。

※[外部変数]は[タイトル]のまま続行。
※[差異が顕著なコードを分析に使用]で上位「40」とした。また[バブルプロット]にチェックを入れている。これらは文字の重なりを極力避けるためである。
※文字が重なって読みづらい場合、オプション画面の[コード選択]で不要なコードのチェックを外してもよい。

対応分析

x、y軸上の原点(0.0)から点線が伸び交差した箇所が原点となる。原点から離れるほど特徴的なキーワードだと分析される。

原点付近には「竜宮」「乙姫」「殿さま」といったキーワードがプロットされている。未来社版では「大晦日」「息子」「別れる」といったキーワードが原点から離れてプロットされている。偕成社版では「もっけ」「天守閣」「野菜」といったキーワードが特徴的とされている。みずうみ書房版では「美人」「内裏」「美人塚」といったキーワードが特徴的とされている。

◆解釈

絵姿女房型のお話である。みずうみ書房版には伝説色が認められる。

◆階層的クラスター分析

・[コーディング単位]を[文]に変更、実行するとデンドログラム(樹状図)で可視化される。

※キーワード指定しても可。

階層的クラスター分析・デンドログラム(樹状図)
階層的クラスター分析・デンドログラム(樹状図)

概ねストーリーに沿った内容でクラスター化されている。

※当ブログの場合、[コーディング単位]が[段落][H5]だと、コードを全て選択するとエラーが返される結果となった。

◆クロス集計

・[コーディング単位]を[文]に変更、[集計]する。

※「タイトル」で集計をかけた。

クロス集計

クロス集計をかけたところ、「美人塚」「薪」「菖蒲」といったキーワードでカイ(χ)2乗値で相関関係を示す結果(※マーク)が得られた。

クロス集計・バブルマップ

マップとして描画したところ、「夫」「美人」といったキーワードの残差が大きく(濃く)表示される結果となった。バブルとしては「夫」が大きく描画された。

◆KWICコンコーダンス

現状ではテキストマイニングのツールに文脈を読む性能はないため実際に該当箇所を読んで人力で判断する他ない。KWICコンコーダンスでキーワード指定すれば指定したキーワードがどのような文脈で用いられているか一覧で抽出される。

KWICコンコーダンス
KWICコンコーダンス・文書表示

◆関連語検索

・[集計単位]を[文]に変更、[集計]する。
・[Search Entry:]の一覧からキーワードを選択してダブルクリックすると[Result]に指定したキーワードの品詞や共起関係が表示される。

関連語検索

※[Result:]から行指定してダブルクリックするとKWICコンコーダンスに遷移する。
※[Result:]の一覧から範囲指定して[コピー]したものを表計算ソフトやテキストファイルにペーストすることも可能である。

[#直接入力]を指定して「川」といったキーワードで検索すると関連語が一覧で表示される。

関連語検索

◆属性の転倒

・「ない」の結果上位一覧

N 抽出語 品詞 全体 共起 Jaccard
1 断る 動詞  3 (0.036)  3 (0.273) 0.2727
2 殿さま 名詞  18 (0.217)  5 (0.455) 0.2083
3 綺麗 形容動詞  3 (0.036)  2 (0.182) 0.1667
4 名詞C  24 (0.289)  4 (0.364) 0.129
5 見る 動詞  9 (0.108)  2 (0.182) 0.1111
6 持つ 動詞  12 (0.145)  2 (0.182) 0.0952
7 隠れる 動詞  1 (0.012)  1 (0.091) 0.0909
8 名詞C  1 (0.012)  1 (0.091) 0.0909
9 名詞C  1 (0.012)  1 (0.091) 0.0909
10 開く 動詞  1 (0.012)  1 (0.091) 0.0909

・「ぬ」の結果上位一覧

N 抽出語 品詞 全体 共起 Jaccard
1 隠れる 動詞  1 (0.012)  1 (0.500) 0.5
2 名詞C  1 (0.012)  1 (0.500) 0.5
3 開く 動詞  1 (0.012)  1 (0.500) 0.5
4 喜ぶ 動詞  1 (0.012)  1 (0.500) 0.5
5 細目 名詞  1 (0.012)  1 (0.500) 0.5
6 招く 動詞  1 (0.012)  1 (0.500) 0.5
7 障子 名詞  1 (0.012)  1 (0.500) 0.5
8 副詞可能  1 (0.012)  1 (0.500) 0.5
9 名詞C  1 (0.012)  1 (0.500) 0.5
10 大いに 副詞  1 (0.012)  1 (0.500) 0.5

※「ぬ」はみずうみ書房版との関連が強いようだ。

薪や野菜を贈与した結果、竜宮から嫁がやって来るも……といった粗筋となっている。

短いお話の中で属性の転倒を多用するのが昔話の特徴の一つと考えられる。

ここで「/」(スラッシュ)を「転倒」を意味する記号として用いる。スラッシュは様々な場面で用いられていて文脈依存的な記号という欠点もあるが、視覚的にはイメージしやすいと判断した。

・[息子|贈与:薪/嫁]
・[嫁|絵姿:不知/知]
・[殿さま|謎かけ:箱/罰]
・[美人|逃亡:安堵/死]

こういった風にお話を転がしていると分析できる。嫁は絵姿が風で飛ばされることで他者にその存在を察知されてしまう結果となる。みずうみ書房版では美人は内裏からの逃亡に成功するものの、故郷をみて「生/死」と転倒してしまう。

◆類似度行列

・[コーディング単位]を[文]に変更して[集計]。Jaccard係数がマトリクス形式で確認できる。

類似度行列

・ある列を選択して画面右下の[コピー(選択列)]をクリックすると、当該のキーワードに関するJaccard係数がコピーされるので、それを表計算ソフトにペーストするといった利用が可能となる。

※当ブログでは[コーディング単位]が[段落][H5]の場合、Jacccard係数が1.0~0.5といった結果がほとんどで、意味のない結果となった。

◆多次元尺度構成法

・[コーディング単位]を[文]に変更して実行。
・共起関係を確認したいキーワードを指定。
・次元を「2」から「3」に変更して実行、三次元のマップとした。

多次元尺度構成法

絵姿が他者の手に渡るくだりに関連したキーワードを指定したところ、「難題」が離れた位置にプロットされた。

※選択するキーワードによって相対的な位置関係は変わり得る。

※実行すると指定したキーワードの幾つかが除外されるとメッセージが表示される。テキストのボリューム不足のためか無償版の仕様によるものか判断がつかない。
※当ブログの事例では「文」以外、「段落」と「H5」では除外されるキーワードが増える傾向となった。

◆自己組織化マップ

[コーディング単位]を[文]に変更して実行。

自己組織化マップ

記述内容が視覚的に整理され、類似性の高い内容が近くに配置される。概ねストーリーに沿った形で各クラスターが表示される。

※当ブログの事例では「文」以外、「段落」と「H5」ではエラーが返される結果となった。
※クラスター化の計算を繰り返すため処理に時間がかかるので要注意。
※クラスターの配置、距離に意味はない。

◆トピックの推定

・[ツール]→[文書]→[トピックモデル]→[トピックの推定]を選択。
・[集計単位]を[文]に変更。
・[OK]ボタンをクリックすると、[トピックの推定結果]画面が表示される。

トピックの推定

・各トピックで高い確率で出現する語句がリストアップされる。
・[#1]といった欄をクリックすると、文書検索画面が表示される。

トピックの推定・文書検索

◆ベイズ学習による分類

・[ツール]→[文書]→[ベイズ学習による分類]→[外部変数から学習]を選択。
・[分類の単位]を[文]に変更。
・[学習する外部変数]は[書名]に変更する。
 ※「タイトル」のままでもよし。
・[OK]ボタンをクリックすると、ファイルの保存画面が表示されるので、任意のファイル名を記述して保存する。

・[ツール]→[文書]→[ベイズ学習による分類]→[学習結果ファイルの内容を確認]を選択。ファイル選択画面が開くので、先ほど保存したファイルを指定して開く。すると[学習結果ファイル]画面が開くので内容の確認を行う。

ベイズ学習による分類

※[学習結果を用いた自動分類]については割愛する。

※[トピックの推定]と[ベイズ学習による分類]は固有名詞などを強制抽出語としてあらかじめ指定しておかないと正確に分析されないケースが生じる。正式に利用したい際は有償版の購入をお勧めする。当ブログのはあくまでテストケースとしてのものである。

※[トピックの推定]と[ベイズ学習による分類]はコーディング・ルールに依らない分析手法となるが、筆者の能力的に追及はしない。

◆参考文献
・『日本の民話 34 石見篇』(大庭良美/編, 未来社, 1978)pp.140-143.
・『島根県の民話 やまたのおろちほか』(日本児童文学者協会/編, 偕成社, 2000)pp.73-80.
・『日本伝説大系 第11巻 山陰(鳥取・島根)』(野村純一他, みずうみ書房, 1984)pp.298-299.
・『動かして学ぶ!はじめてのテキストマイニング』(樋口耕一, ナカニシヤ出版, 2022)
・『社会調査のための計量テキスト分析 【第2版】 内容分析の継承と発展を目指して』(樋口耕一, ナカニシヤ出版, 2020)

|

« 地方都市で持続可能な規模は――鳥取市内にミニシアターがオープン | トップページ | 福光浅利道路の2026年度予算 »

昔話」カテゴリの記事