« 錦織選手とノドグロ | トップページ | 昔話の計量テキスト分析――火車 »

2026年5月 5日 (火)

昔話の計量テキスト分析――牛鬼

◆はじめに

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

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

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

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

◆ファイル

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

ダウンロード - ca_003_ushioni.xlsx

ダウンロード - ca_003_codingrules.txt

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

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

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

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

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

◆あらすじ

・「うしおに」(未来社『石見の民話』)
波路浦に一人の漁師がいた。ある日の漁は大漁であった。喜んで帰りかけると、海の中から大きな牛の様な怪物が大きな声で「魚をくれ」と叫ぶので、恐ろしくなって投げてやった。ところが怪物はまたしても「魚をくれ」と叫ぶので、その度に少しずつ投げてやった。ようやく港へ着くと急いで家へ帰った。しばらくすると怪物がやってきて、どんどん戸を叩きながら「魚をくれ」と言った。漁師が「家の中へ入れ。魚をやろう」というと「お前はお仏飯を食べているから、家の中へは入られない」といって逃げていった。あくる朝戸をあけて庭へ出てみると大きな足跡が残っていた。足跡は牛の様でもあるし、牛とは違う様にもあるし、村人は不思議に思った。これは昔から言われている牛鬼だろうということになった。

波路浦の大下という家の何代も前の主人が三人の仲間と一緒に四月のある晩釣りに出た。他の舟は沖へ出ていたが、この舟は温泉津の港と福光海岸の中程のシューキの岸近くで糸を下ろした。ここは秘密の釣り場で、その日もよく釣れた。夜が更けて岸の方から「行こうか、行こうか」と声をかけるものがあった。この辺りは断崖絶壁で人のゆける所ではない。狐が悪戯をするのだと思って「おう、来たけりゃ、来い」とからかい半分に言った。ところが「おう」と返事と共に何か大きなものが海にどぶんと飛び込んだ。舟に向かって牛鬼が泳いできた。真っ青になった四人は一生懸命波路浦に向けてこぎ出した。牛鬼も舟を追って来る。ようやく一里ばかり離れた波路浦の浜に着くと、一番近い大下の家へ飛び込んで戸を閉めた。牛鬼は戸をどんどん叩きながら「開けろ、開けろ」とどなる。四人は土間にへばりこんでさっぱり動こうともしない。家の者が火箸を囲炉裏で真っ赤に焼いて、大戸の鍵穴に口を寄せて「今戸を開けてやるから静かにせい」と怒鳴った。牛鬼は声のした鍵穴から中をのぞき込んだ。その時、焼き火箸を鍵穴へ突っ込んだ。目を焼き火箸で突き刺された牛鬼はたけり狂ったが、柱の上に張ってある出雲大社のお札に気づくと身震いしてもの凄い声をあげて逃げていった。この辺りの漁師はそれから必ず出雲大社のお札を戸口に貼るようになった。

日祖の漁師に友村清市という人がいた。ある晩一人で小舟に乗って沖へ出た。すると牛鬼が一匹、追いかけてきた。力が強く胆のすわった清市は舟中の綱をまとめて牛鬼が近づくのを待った。間もなく牛鬼は船べりにきて舟に上がろうとした。清市はこれに組み付き、舟へ引き上げて、がんじがらめに縛り上げた。清市は小二町まで舟で帰り、そこから山越しに日祖まで牛鬼を担いで帰った。浜の舟小屋の前へ牛鬼を投げ出しておくと、日祖中の人がぞろぞろ見にきた。わいわい言っていると、一人の若者が櫂を持って牛鬼の頭を力任せに殴りつけた。すると変な音がして櫂は二つに折れた。近寄ってよく見ると、椿の木の古い根ががんじがらめに縛ってあった。昔から椿は化けるということで、椿の花は仏さまには絶対に供えない。

日祖である晩いわしの地引き網を入れた。ところがどうしたことか一尾もかからない。気をくさらせて皆は酒を飲んでさっさと引き上げた。そのとき小舟にいた一人の老人が家に帰ってから煙草入れを忘れたのに気がついて取りにいこうとした。家内は不吉な予感がすると言って行くのを止めたが、老人は振り切って行こうとする。そこで家内は仏壇に供えてあったお仏飯を食べさせて出した。煙草入れを探すのに夢中になっていた老人が騒がしい波の音に気がついてふとその方を見ると一匹の牛鬼が側まで来ていた。舟の中であり、もう逃げられないと思ったが、思わず櫂で殴ってやろうと身構えた。すると牛鬼は「お前はお仏飯を食っているから近づけない」と言って逃げていった。昔から子供が海や山へ行くときには怪我の無いようにといってお仏飯を食べさせる。

※「うしおに」は便宜上、abcdと区別した。


・「怪力尾車」(未来社『石見の民話』)
福光川の下流に岩根屋敷というところがある。昔ここに岩根という大金持ちが住んでいた。その家に尾車という力士がいた。大男ではなかったが力が強く、近辺には尾車に勝つものはいなかった。この話を聞いた上方の相撲とりが、ひとつ勝負をしてみようと思って、はるばる岩根屋敷へやってきた。尾車はその時下男の様な身なりで庭の掃除をしていた。尾車は不在だが、弟子の自分が力だめししましょうと言って大黒柱を一尺ばかり持ち上げた。これを見た上方の相撲とりは胆をつぶした。弟子でこれほどなら師匠の尾車とは勝負にならないと逃げ帰った。ある日、尾車が波打ち際にいると、沖の方から牛鬼がやって来て尾車を海へ引き込もうとした。尾車は逆に陸に引き上げてやろうと思って波打ち際で大相撲になった。どちらも力が強くて勝負がつかない。一晩中相撲をとったので、尾車も段々疲れてきた。海の方に引かれそうになった尾車だが、そのとき、一番鶏が鳴いた。牛鬼は夜が明けると力がなくなるので、お前の様な力の強い人間に出会ったのは始めてだ。この勝負はおあずけにしようと言って沖へ姿を隠してしまった。

※「怪力尾車」は牛鬼関連の箇所のみ抜き出した。


・「狼と牛鬼」(未来社『石見の民話』)
狼は人間が牛鬼や狐に危害を加えられようとするときは、その人間の眉毛を一本抜いて目に当ててその人が良い人か悪い人かをみる。その人が悪い人であったら体は人間であっても頭は畜生の類いになって見えるが、良い人であったら頭も人間に見えるということである。狼は悪い人だったら決して助けないが、良い人は助けてくれて、その人の家まで送り届けてくれる。これを送り狼といって、送り狼に送ってもらったときは足を洗ったたらいの水を捨ててたらいを逆さにして伏せ「ご苦労だったのう」と礼をいうと狼は安心して帰る。もしそうしないと狼は立ち去らないでいつまでもそこにいるそうだ。昔、川戸の小田の桜屋の爺さんが田野へズク(銑鉄)を負って行っての帰りに日が暮れて七日渕の向こうまで行ったとき、狼が袖をくわえて竹藪の中へ連れ込んだ。狼に喰われるのかとビクビクしていると、狼は爺さんをそこへ座らせて腰を下ろした。すると人臭いと言って牛鬼が出てきた。川向こうの住郷の平からも牛鬼が「よい肴があるではないか」と言った。こっちの牛鬼は「肴はあっても守りがついていてつまらんから、これから波子の浜へ出よう」と言った。両方の牛鬼は江川を挟んで話し合っていたが、そのまま行ってしまった。しばらくして狼は爺さんの袖をくわえて道へ連れ出した。「ようこそ助けてくれたのう」と礼を言うと、狼はなおも袖をくわえて小田の家まで送ってきた。爺さんは足を洗ってその水を移して「ご苦労だったのう」と言ってたらいを伏せると、狼は安心したように山へ帰っていった。


・「牛鬼」(未来社『石見の民話』)
昔、那賀郡の浅利村に神主がいた。ある晩一人で海へ夜釣りに行ったが、とてもよく釣れるので一生懸命に釣っていた。すると髪も着物もびしょ濡れになった女が赤児を抱いて出てきた。神主がびっくりしていると、この子に食べさせるから魚を一尾くれと言った。神主が一尾やると赤児はむしゃむしゃと頭から尻尾まで骨ごとみんな食べてしまった。そうしてもう一尾、もう一尾というのでやる内に籠の中の魚は一尾もなくなった。すると女は今度は、お腰のものをと言った。この女に言われるとどうしても嫌ということが出来ない。神主は仕方がないので腰の脇差しを抜いてやると赤児はそれもパリパリと食べてしまった。びっくりしていると、女はちょっとこの児を抱いてとってくれといって赤児を神主に渡すと海に入っていった。神主はその間に釣り道具を投げ捨てて駆けだしたが、抱かされた赤児は石になってどうしても離れない。その内に女が後ろから追いかけてきた。神主は一生懸命走ったが女はだんだん間を縮めてくる。そして既に手が届きそうになったとき、前の方から何か光るものが矢の様に飛んできて女の頭へグサリと突き刺さった。女はそれで足を止めたので、神主はようやくのことで自分の家の前まで逃げてくると、そこには心配そうに妻が待っていた。神主の妻は夫が釣りに出た後で縫い物をしていた。すると神主の居間にある二本の刀の中で、どれか一本シャンシャンと音を立ててしきりに鳴るものがある。不思議なことなので、もしか夫の身の上に何か変わったことがあるのではないかと心配して外へ出てみた。その時表の戸を開けると一本の脇差しがひとりでに鞘を抜け出して戸の間を飛鳥のように通り抜け、海の上の方へ飛んでいった。不思議なこともあるものだと妻はますます心配になって、そのまま戸の外へ立っていたところだった。明くる朝神主は村の人たちと昨夜女の出てきたところへ行ってみた。すると磯のほとりに血の流れた跡があったが、女も脇差しも見えなかった。多分女は頭に刀を突き刺したまま海の中へ入っていったものだろうと皆は話した。


◆コーディングルール

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

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

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

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

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

※「できる」「やる」「られる」「せる」といった動詞も共通のコードとして追加してみた。

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

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


*牛鬼
'牛鬼'
*波路浦
'波路浦'
*お仏飯
'お仏飯'
*舟
舟 or 小舟
*日祖
'日祖'
*老人
老人 or 爺さん
*縛る
縛り上げる or 縛る
*煙草入れ
'煙草入れ'
*家内
家内 or 妻
*尾車
'尾車'
*人間
人間 or 人
*みる
みる or 見る
*送り狼
'送り狼'
*川戸
'川戸'
*喰う
喰う or 食う
*浅利
'浅利'
*赤児
'赤児'
*出雲大社
'出雲大社'

*ない
ない
*ぬ

*ん

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

*できる
できる
*やる
やる
*られる
られる
*せる
せる

*漁師
漁師
*漁

*大漁
大漁
*海

*牛

*怪物
怪物
*魚

*くれる
くれる
*投げる
投げる
*港

*家

*帰る
帰る
*戸

*食べる
食べる
*入る
入る
*主人
主人
*仲間
仲間
*釣り
釣り
*岸

*釣れる
釣れる
*声

*狐

*返事
返事
*泳ぐ
泳ぐ
*こぐ
こぐ
*追う
追う
*浜

*閉める
閉める
*開ける
開ける
*火箸
火箸
*焼く
焼く
*鍵穴
鍵穴
*目

*突き刺す
突き刺す
*たける
たける
*お札
お札
*逃げる
逃げる
*貼る
貼る
*若者
若者
*櫂

*殴る
殴る
*椿
椿
*古い
古い
*根

*網

*忘れる
忘れる
*止める
止める
*近づく
近づく
*福光
福光
*力士
力士
*力

*強い
強い
*波打ち際
波打ち際
*引き込む
引き込む
*相撲
相撲
*一番鶏
一番鶏
*夜

*明ける
明ける
*なくなる
なくなる
*勝負
勝負
*おあずけ
おあずけ
*姿
姿
*隠す
隠す
*狼

*眉毛
眉毛
*抜く
抜く
*良い
良い
*悪い
悪い
*見える
見える
*助ける
助ける
*送る
送る
*足

*洗う
洗う
*たらい
たらい
*伏せる
伏せる
*礼

*安心
安心
*立ち去る
立ち去る
*銑鉄
銑鉄
*負う
負う
*袖

*くわえる
くわえる
*竹藪
竹藪
*連れる
連れる
*肴

*守り
守り
*水

*山

*神主
神主
*晩

*びしょ濡れ
びしょ濡れ
*女

*脇差し
脇差し
*抱く
抱く
*石

*離れる
離れる
*光る
光る
*突き刺さる
突き刺さる
*音

*鳴る
鳴る
*身の上
身の上
*飛ぶ
飛ぶ
*血

*跡


◆共起ネットワーク

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

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

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

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

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

共起ネットワーク

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

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

◆対応分析

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

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

対応分析

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

原点付近には「牛鬼」「送り狼」「家」といったキーワードがプロットされている。離れた位置にプロットされているのは「うしおに」より「火箸」「出雲大社」「鍵穴」「椿」「根」、「牛鬼」より「浅利」「赤児」「釣り」といった辺りである。

◆解釈

いずれも牛鬼が主題のお話である。牛鬼からの逃走といったパターンのお話が多いが、牛鬼と取っ組み合いとなるお話もある。

◆階層的クラスター分析

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

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

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

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

◆クロス集計

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

クロス集計

クロス集計をかけたところ、「牛鬼」「お仏飯」「赤児」などでカイ(χ)2乗値で相関関係を示す結果(※マーク)が得られた。

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

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

◆KWICコンコーダンス

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

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

◆関連語検索

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

関連語検索

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

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

関連語検索

◆属性の転倒

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

N 抽出語 品詞 全体 共起 Jaccard
1 逃げる 動詞  5 (0.051)  3 (0.167) 0.15
2 地名  5 (0.051)  3 (0.167) 0.15
3 脇差し 名詞  3 (0.030)  2 (0.111) 0.1053
4 言う 動詞  15 (0.152)  3 (0.167) 0.1
5 強い 形容詞  4 (0.040)  2 (0.111) 0.1
6 名詞C  4 (0.040)  2 (0.111) 0.1
7 名詞C  4 (0.040)  2 (0.111) 0.1
8 名詞C  5 (0.051)  2 (0.111) 0.0952
9 名詞C  6 (0.061)  2 (0.111) 0.0909
10 食べる 動詞  6 (0.061)  2 (0.111) 0.0909

牛鬼に遭遇するも、何らかの助けによってかろうじて逃れる……といった粗筋となっている。

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

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

・[主人|牛鬼:遭遇/生還]
・[濡れ女|海:女/牛鬼]
・[若者|殴る:牛鬼/椿]
・[狼|牛鬼:守り/お礼]

こういった風にお話を転がしていると分析できる。捕らえられた牛鬼を若者が殴ったところ「牛鬼/椿」と転倒し、正体が明らかとなる。

※なお、図式化には分析対象のテキストに含まれない語句も用いているので要注意。

※関連語検索、強制抽出語を設定しないと狙い通りに処理されないケースが見られる。

◆類似度行列

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

類似度行列

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

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

◆多次元尺度構成法

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

多次元尺度構成法

牛鬼が苦手とするものに関連したキーワードを指定したところ、「脇差し」が離れた位置にプロットされた。

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

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

◆自己組織化マップ

[コーディング単位]は[文]で固定。

自己組織化マップ

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

※クラスター化の計算を繰り返すため処理に時間がかかるので要注意。
※クラスターの配置、距離に意味はない。

◆トピックの推定

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

トピックの推定

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

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

◆ベイズ学習による分類

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

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

ベイズ学習による分類

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

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

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

◆参考文献

・『日本の民話 34 石見篇』(大庭良美/編, 未来社, 1978)pp.32-36, 39-40, 208-209, 271-272.
・『動かして学ぶ!はじめてのテキストマイニング』(樋口耕一, ナカニシヤ出版, 2022)
・『社会調査のための計量テキスト分析 【第2版】 内容分析の継承と発展を目指して』(樋口耕一, ナカニシヤ出版, 2020)

|

« 錦織選手とノドグロ | トップページ | 昔話の計量テキスト分析――火車 »

昔話」カテゴリの記事