« 昔話の計量テキスト分析――えんこうの恩返し | トップページ | 昔話の計量テキスト分析――蜘蛛の糸 »

2026年4月15日 (水)

昔話の計量テキスト分析――岡田の婆

◆はじめに

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

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

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

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

◆ファイル

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

ダウンロード - ca_pb_037_okadanobaba.xlsx

ダウンロード - ca_pb_037_codingrules.txt

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

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

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

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

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

◆あらすじ

・「岡田の婆」(未来社『石見の民話』)
猟師が山へ猟に行って日が暮れた。それで夜の明けるのを待とうと思って木の上へ登っていた。すると夜中になって猫が沢山やってきた。一匹の猫が木の下へしゃがんで木に抱きついた。次の猫はその猫の背中から肩車(びんぶく)をした。それから次々に猫が肩車をして木へ登って猟師の足を捕まえようとしたが、ちょっと届かない。その猫は、自分は帰って岡田の婆さんを連れてくると言って、ばらっと崩れ落ちて皆いなくなった。猟師が岡田のばばあと言っていたが、あそこにおるばばあは猫かしらんと思っていると、大きな猫が来て、他の猫も木の下に集まった。それから前の様にして木へ登ってきて、一番終いに後から来た大きな猫があがってきた。そして猟師の足を捕まえたので、猟師はすぐ腰へ差している鉈を抜いて手を切った。猫は悲鳴をあげて下へ落ちると、どこへともなくいなくなった。夜が明けると猟師は木から下りてきて、岡田のばばあちゅうのは前から居るが、猫だったのかしらんと思って岡田の家へ行って隙間から見ると婆さんが手の傷を舐めて(ねぶって)いる。それで、これは本当に猫じゃなかろうかと思って隙間から鉄砲で撃ち殺してしまった。その家の人は大騒ぎを始めた。近所の人も来て大騒動になった。これは猫の化物だから撃ったのだ。こうしておくと、そのうち正体を現して猫になると言って、猟師は婆さんの足を縛って庭の上に下げておいた。二日ぶりに猟師が行ってみると、やはり婆さんである。三日ぶりに行ってみると、大きな古猫になっていた。それで猟師には何のこともなかった。戸へ背をすりつけるか、柱へ背をすりつけて通る猫は飼ってもよいが、部屋の真ん中を通る様になると踊りを踊る様になる。そうなると化けるから置いてはいけないと言う。

・「がいだが婆」(みずうみ書房『日本伝説大系』第十一巻)
昔々、但馬の鐘尾にがいだが婆という婆が住んでいて、夜になると蒲生峠に出てきて旅の者を殺して食っていた。ある時、旅の者が日が暮れているのに戸を叩いてこれから峠超えをしないといけないので灯りをつけさせてくださいと入って来たそうだ。それで因幡側の村の者が言うには、この峠は上り下り五十丁もある大峠で、これから山に入るのは無理な話だから、今夜はここに泊まって夜明けにたちなさいと止めたのだけど、そうしてはおられぬ急用で、ぜひ今夜のうちにこの峠を越さないといけないと言ったそうだ。それで、それならこのバイサ(太い木の枝)を持っていきなさい。もしも夜何かが出るような事があったら、このバイサで力いっぱい殴ってやりなさいと囲炉裏の端に置いてあった薪の中から太いのを一本持たせた。旅の人は闇の中の山道をようように登りつめて、いよいよ但馬の側に降りにかかったと思った頃、何か物の気配がしたと思ったら、ギラギラ青光りするものが二つ、じーっとこっちを見ていた。旅人はこれは物に聞いている狼の目に違いないと思って大バイサを構えて身構えたところ、それが二つでなく横からも後ろの方にも青い目が狙っていた。一匹ならともかく、こう大勢ではとても敵わないと思ってそこにあった大きな木によじ登った。一番高いところまで登って下を見たところが、狼が次々に肩車をして、今にも手が届くところまで上がってきていた。それで持っていたバイサで一番上にいる狼めがけて力いっぱい殴りつけた。そうしたら、ギャアと一声吠えたと思ったら、バタバタっと皆木の下に落ちて、そのまま逃げていなくなったそうだ。旅の者は木から降りるなり、一目散に走ったら灯りが見えたから戸を叩いたところ、中から若い嫁さんが出て、旅人の話を聞いて、それはまあ恐ろしい目に遭ったものだ、まあ上がって夜が明けるまであたって行きなさいと快く言ってくれたので、上がらせてもらって囲炉裏の火にあたっていた。ところが、やがて納戸の方からうーん、うーんと病人のうめき声が聞こえてきた。この家には具合の悪い人がいるようだがと訊いたら、実はうちの婆さんがこけた拍子に大石で眉間を割って痛がっているとのことだった。それで嫁さんが立った間に納戸をそっと覗いてみたら、大きな古狼が頭を括って寝てうなっていた。旅の者はびっくりして下の村まで走って逃げた。この一軒家の婆さんのことを村の衆はがいだが婆さんと言っていたが、実は狼で人を食っていたのでがいだ虫みたいな好ましくない臭いがしていたのだろうか。


・「ばけネコばば」(偕成社『島根県の民話』)
昔、商人が山越えをしている内に日が暮れた。見ると山のてっぺんに高い松の木が一本生えている。商人はこの木に登って寝ることにした。夜中になると、下の方で何やら声がする。覗いてみると、山猫が十匹ばかり集まって商人を睨んで騒いでいた。あの商人、今夜の肴にもってこいだ。なんとか食う手立てはないかと。親分らしい大猫が、自分が登って落とすから、お前たちは押さえつけて噛み殺してやれ、そう言って大きな爪を松の木に立てながらざくりざくりと登ってきて、商人に飛びつこうとした。商人は懐の小刀を引き抜いて大猫のどてっ腹にズバリと突き立てた。猫はガクッとして、ニャーオ、今夜の肴は自分の手に合わんと地面に落ちてしまった。それを見た大勢の猫は我がちに登ってきたが、どいつもこいつも商人に斬られたり突かれたり、無傷の猫は一匹もいなくなった。猫たちはどうしたらよかろうと相談をはじめた。こんな手ごわい奴は庄屋婆の手にかけないと上手くいくまい。そうだそうだと相談がまとまるなり、大勢の猫は連れ立って山を下りていった。やがて麓の方からえっさえっさという駕籠かきの声が聞こえてきた。商人はこいつは油断がならないと松の木の上で待っていた。山猫どもは一丁の駕籠を担いでくると、松の木の根元に下した。庄屋婆、ここでございます。早いこと、あの人間を退治してくださいと頭の猫が言うと、駕籠の戸が開いて、中から袖の無い羽織を着た大きな白猫が手拭いを肩にかけて現れた。まん丸な目をぎょろりとさせて、お前ら、あんな人間もよく捕まえないとは役立たずばかりじゃな。待っておれ。自分が落としてやるからと白猫が言った。婆さま、どうぞ頼むと猫たちが答えた。庄屋婆と呼ばれた白猫はゆっくり松の木に登ってきた。下にいる猫らは舌なめずりしながら見上げている。商人はまたも小刀を抜いて白猫の額めがけて一突きに突いた。額を突かれてはさすがの大猫も堪らない。痛た、いくら自分でもこいつばかりは手に合わないと木の上からまくれ落ちていった。庄屋婆がやられたもので、大勢の山猫はがっかりしてしまった。放っておく訳にもいかないから婆を抱き起すと駕籠に乗せて看病しながら山から逃げ出していった。やれ助かった、ホッとした商人は早はや夜の明けるのを待って里に下りるなり庄屋の家に駆けこんだ。そうして夕べのことを残らず話した。庄屋はびっくりしたけれども、自分のところの婆さまは長いこと患っていて、そんなところへなど行くものかと笑って取りあわない。商人は心外に思って、それなら近頃婆さまの食い物は何ですかと訊くと、飯が嫌いで魚ばかり食っていると庄屋が答えると、商人はははあ、やっぱりとつぶやき、魚屋にひとっ走りして大きなブリを買ってくると庄屋に差し出した。それではこれを婆さまに差し上げてくださいと言うと、庄屋はブリを平鉢に載せて婆さまの寝ている部屋に持っていった。婆さまは鼻をくんくんさせて喜んだ。お前はいい婿だな。そこへ置いておけ。自分が後からゆっくり食べるからと言った。庄屋が唐紙を閉めて部屋を出ると、商人が婆さまの様子をちょっと覗いて見なさいというので唐紙を細めに開いて中を窺うと、今まで我が母親と思っていた婆さまが恐ろし気な白猫になってブリを頭からわじわじ噛んでいた。庄屋は驚いて刀を抜くや、唐紙を蹴って飛び込み、化け猫を斬り殺した。本当の婆さまはどうしたかと思って探したら、床の下に骨ばかり残っていた。猫が婆さまを噛み殺して自分が婆さまに化けていたのを庄屋は知らなかったのだと。


◆コーディングルール

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

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

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

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

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

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

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


*猫
猫 or '山猫' or '大猫'
*婆さん
婆さん or 'ばばあ' or 婆 or 婆さま
*切る
切る or 突く or 斬る
*古猫
'古猫'
*がいだが婆
'がいだが婆'
*旅人
旅 and 者
*バイサ
'バイサ' or 薪
*病人
病人 or ( 具合 and 悪い and 人 )
*小刀
'小刀'
*手ごわい
手ごわい or ( 手 and 合う and ない )
*庄屋婆
'庄屋婆' or '白猫'
*魚
魚 or ブリ
*覗く
覗く or 窺う or ( 隙間 and 見る )

*ない
ない
*ぬ

*ん

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

*猟師
猟師
*山

*日

*暮れる
暮れる
*夜中
夜中
*木

*登る
登る
*肩車
肩車
*足

*届く
届く
*岡田
岡田
*鉈

*手

*家

*傷

*舐める
舐める
*撃つ
撃つ
*殺す
殺す
*騒動
騒動
*化物
化物
*三日
三日
*化ける
化ける
*置く
置く
*但馬
但馬
*峠

*食う
食う
*灯り
灯り
*因幡
因幡
*殴る
殴る
*山道
山道
*狼

*嫁

*うめき声
うめき声
*逃げる
逃げる
*虫

*臭い
臭い
*商人
商人
*肴

*駕籠
駕籠
*額

*庄屋
庄屋
*母親
母親
*患う
患う
*骨

*部屋
部屋
*納戸
納戸


◆共起ネットワーク

・[コーディング単位]を[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 自分 名詞  8 (0.098)  4 (0.182) 0.1538
2 思う 動詞  11 (0.134)  4 (0.182) 0.1379
3 言う 動詞  12 (0.146)  4 (0.182) 0.1333
4 落ちる 動詞  4 (0.049)  3 (0.136) 0.1304
5 名詞C  14 (0.171)  4 (0.182) 0.125
6 名詞C  10 (0.122)  3 (0.136) 0.1034
7 庄屋 名詞  11 (0.134)  3 (0.136) 0.1
8 化ける 動詞  2 (0.024)  2 (0.091) 0.0909
9 入る 動詞  2 (0.024)  2 (0.091) 0.0909
10 名詞C  3 (0.037)  2 (0.091) 0.087

・「ぬ」の結果上位一覧

N 抽出語 品詞 全体 共起 Jaccard
1 まん丸 形容動詞  1 (0.012)  1 (0.333) 0.3333
2 因幡 人名  1 (0.012)  1 (0.333) 0.3333
3 越す 動詞  1 (0.012)  1 (0.333) 0.3333
4 急用 名詞  1 (0.012)  1 (0.333) 0.3333
5 止める 動詞  1 (0.012)  1 (0.333) 0.3333
6 上る 動詞  1 (0.012)  1 (0.333) 0.3333
7 大峠 固有名詞  1 (0.012)  1 (0.333) 0.3333
8 泊まる 動詞  1 (0.012)  1 (0.333) 0.3333
9 無理 形容動詞  1 (0.012)  1 (0.333) 0.3333
10 夜明け 名詞  1 (0.012)  1 (0.333) 0.3333

山中で木に登って夜を明かそうとしたところ、猫や狼に襲われたため反撃して撃退したところ、麓の家の婆さんがその親玉だった……といった粗筋となっている。

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

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

・[猟師|覗く:婆さん/猫]
・[猫|肩車:届かない/届きそう]

こういった風にお話を転がしていると分析できる。

猫たちが肩車して距離が縮まり「届かない/届きそう」と転倒したところで反撃、猫の親玉は「無傷/負傷」へと転倒する。

◆類似度行列

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

類似度行列

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

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

◆多次元尺度構成法

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

多次元尺度構成法

主人公が猫や狼に襲われるくだりに関連したキーワードを指定したところ、「木」が離れた位置にプロットされた。

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

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

◆自己組織化マップ

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

自己組織化マップ

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

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

◆トピックの推定

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

トピックの推定

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

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

◆ベイズ学習による分類

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

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

ベイズ学習による分類

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

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

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

◆参考文献

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

|

« 昔話の計量テキスト分析――えんこうの恩返し | トップページ | 昔話の計量テキスト分析――蜘蛛の糸 »

昔話」カテゴリの記事