昔話の計量テキスト分析――和尚と小僧
◆はじめに
以下はKH Coder(無償版:version 3.Beta.08e)を用いた昔話の計量テキスト分析である。昔話の類話の比較にツールを利用できないか試行してみた。
手持ちの資料が限られるため、分析の対象となる元データの文字数が少ないものの(※本来であれば5000字以上は欲しい)、分析自体は正常に処理されていると判断した。
KH Coderの操作に慣れる目的も兼ねて行った作業で、コーディングルールの記述の事例集、あるいは速習用のチュートリアルとしてでも読んで頂ければ……といったところである。
なお、KH Coderでよく用いられるのは共起ネットワークと対応分析とのことで、それ以外はおまけパートと思って頂いて構わない。操作に習熟するにはコーディングルールの記述に慣れるのが第一である。
◆ファイル
各ファイルをダウンロードしてKH Coderに読み込ませれば同様の分析が再現可能である。
ダウンロード - ca_005_oshotokozo.xlsx
ダウンロード - ca_005_codingrules.txt
ダウンロード - ca_005_codingrules_b.txt (※否定詞の比較検討用)
ダウンロード - kh_coder_startingedition_sagyotejunsho.txt (※作業手順書)
※「H5」とはHTMLでいうところのヘッダー(見出し)・レベル5で本文に相当すると考えればよい。
※[コーディング単位]は「文/段落/H5」から選べるが、状況に応じて適切と思われるものを選択する必要がある。処理が上手くいかないと感じた場合、コーディング単位を切り替えると上手く処理されるケースがままある。
※公式マニュアルでは「集計単位」という用語が使われている。共起関係について、
・「文」では一文単位での分析
・「段落」では段落単位の分析
・「H5」では表計算ソフトのセル単位とされ、改行を含めた一セルの中身全体が分析単位となる
※レファレンスでも索引で「コーディング単位」の項目は設けられていない。操作性に関わる重要項目であるものの、その仕様について不明瞭な感はある。
※当ブログの場合、表計算ソフトのフォーマットで読み込ませているからH5固定でいいだろうと思い込んでいたら、さにあらずだった。
◆あらすじ
・「和尚と小僧」(未来社『石見の民話』)
和尚と小僧がいた。和尚は餅が好きでよく焼いて食べたが小僧にはやらなかった。ある日、和尚は小僧がいない時にまた餅を焼いていた。そこへ小僧がひょっこり入って来たので慌てて餅を灰の中へ埋めた。小僧は何かいい匂いがすると言った。和尚は小僧に知れては大変だと思って、何でもない。枯葉がいぶっているのだと答えた。小僧は和尚がまた餅を焼いているなと思って、時に裏の屋根が壊れたから直そうと思うがと話しかけた。和尚がお前直せるかと訊くと、小僧は何でもない。こうやって太い柱を立てるのだと火箸を灰に突き立てた。すると餅が刺さった。和尚は苦い顔をして妙なところに餅がある。お前にやろうと言った。小僧はありがとうございますと言ってむしゃむしゃ食べた。それから和尚、柱をもう一本こういう風に立てると言って別のところへ火箸を突き刺した。また餅が出た。和尚はおかしい、お前が食べよと答えた。小僧はむしゃむしゃ食べた。ところで和尚、その横にもう一本こういう風に立てると火箸に餅を突き刺した。更にもう一本とやった。和尚はたまらなくなって、小僧、柱を立てるのはそれくらいでよかろうと言った。こうして小僧は和尚がせっかく食べようと思って焼いた餅をみんな食べてしまった。
・「指合図」(未来社『石見の民話』)
禅寺の小僧は昔からしごにならない(手に負えない)ものであった。小僧が今日はご飯は何升炊くか問うと和尚は黙って指で知らせる。一本は一升、二本は二升。それで小僧が考えた。あるとき便所の踏板を外れるようにしておいた。和尚はいつものように朝便所に行くと踏板が外れて落ちた。びっくりした和尚は小僧を大声で呼ぶ。何事でございますかと言ってみると、和尚は便所へ落ちて両手をあげている。小僧は承知しましたとそのまま逃げてしまった。和尚はようやく上がって庫裡に行ってみると小僧は大釜に飯を炊いている。なぜそんなに飯を炊くのかと言うと、和尚が両手をあげておられたので一斗しかけましたと言った。和尚は仕方がない、干飯にしておけと言った。それから大分経って和尚が小僧を呼んで一斗の干飯はあるのか問うと、ほしいにせえとおっしゃったので、ほしい時に食べてしまいましたと言った。
・「馬のおとしもの」(未来社『石見の民話』)
山寺の小僧はしごにならない(手に負えない)ものであった。坊さんは魚を食うことは禁じてあった。ところが和尚がいつも戸棚へ頭を突っ込んで何やらむしゃむしゃ食べている。小僧にはないしょで見せない。ある日和尚が門徒の家に仏事を務めにいった。その留守に小僧が戸棚を開けてみると鯛の煮付けがある。和尚めがこんな物を隠して食べやがる。よしいつか仏罰を与えてやるから見ておれと思った。和尚が帰ってきたので小僧は戸棚の中にあるものは何かと問うた。和尚は小僧に見られたと思ったので、そしらぬ顔であれは「にかんのてて」というものだと答えた。ある日和尚が馬に乗って門徒の家に行くので小僧が後からついて行った。川を渡るときに魚がたくさん泳いでいた。小僧が和尚さん、あそこに「にかんのてて」が沢山ありますと言った。和尚は見たことは見捨て、聞いたことは聞き捨てにするものだと言った。それからどんどんついて行ったら風が吹いて和尚の頭巾が脱げて飛んだ。小僧は見たことは見捨ててどんどん行くと、和尚が頭に頭巾のないことに気がついて、小僧、俺の頭巾が落ちはしなかったかと訊いた。小僧は頭巾はあんなあとに落ちていたと答えた。なぜ拾わなかったかと訊くと、和尚が見たことは見捨てにせよと言ったから見捨てにしたと答えた。和尚が早く拾ってこい。馬から落ちたものは何もかも拾ってこいと答えたので、小僧は後に戻って頭巾を拾い、頭巾の中に馬の糞をいっぱい拾って差しだした。和尚が、これは馬の糞ではないかと叱ると、小僧はそれでも和尚は馬から落ちたものは何でも拾ってこいと言ったではないかとやり返した。
・「和尚さんと小僧」(未来社『石見の民話』)
昔、あるお寺に和尚がいた。その弟子に「ええかん」という小僧と「こす」という小僧がいた。和尚は大変酒が好きで、毎晩ちびりちびりと飲んでいたが、小僧たちには少しも飲ませなかった。あるとき和尚は酒が無くなったので、小僧や、一寸用事に行ってくれないかと言った。そして酒と言っては小僧が知るからと思って、酒はあるまいから「ごまず」を買って来てくれと言った。「ええかん」と「こす」は樽を竿に通して担いでいった。そして酒屋へ入ると、ここに「ごまず」はあるまいから酒をいっぱいくれと言って酒樽をのぞけた。小僧さん、酒はあるまいから「ごまず」をくれというのではないかなと酒屋の主人は言った。樽にいっぱい酒を入れてもらうと、「ええかん」と「こす」は竿に通して担いで、唄を唄いながら帰った。しばらく帰ると、これは重い。しんどくていけない。一口飲んでいこうというので、二人は土手の上へ据えてぐいぐい飲んだ。そして川の水を入れて唄いながら帰った。お寺へ帰ると、もう日がとっぷり暮れていた。和尚さま、今帰りましたと言うと、大儀だった。上がって早く寝ないと、また朝うんうん言うからと和尚は言った。小僧たちは夕飯を食べると、早く床へ潜りこんだ。そして今夜は寝たふりをして、寝ないでいようと相談した。和尚は一人になると酒を沸かして、ちびりちびり飲みはじめた。酒はちょうどいい塩梅に沸いていたので、和尚は思わず、ああ、ええかんと独り言を言った。すると、「ええかん」がはあいと言って起きてきた。和尚さま、何か用事ですかと「ええかん」は言った。和尚はしまったと思ったが仕方ない。いや、お前を呼んだのではなかったがと言いながら、「ええかん」にお酒をついでやった。今度は「ええかん」が和尚についだ。「ええかん」は急に徳利を傾けたので、酒がどぶどぶ出て杯からこぼれた。ああ、こすこす(こぼれる)と和尚が言った。すると、「こす」がはあいといって起きてきた。和尚さま、何か用事ですかと「こす」は言ったので、和尚はまた仕方なしに酒をついでやった。
・「おばあさんと小僧」(未来社『石見の民話』)
昔、お婆さんがいた。毎日毎日お寺へ参っては、仏さまの前へ座って、仏さま、この世に自分のようなふ(運)の悪いものはいない。どうぞ早くあの世へ引き取ってくれと言ってお願いしていた。寺にいたずらな小僧がいた。毎日毎日お婆さんがやってきて、同じことをお願いするので、ひとつ悪戯をしてやろうと思った。ある日仏さまの後ろへ隠れて待っていると、お婆さんはいつもの様にやってきて、仏さまの前へ座ってお願いをした。すると小僧が後ろから、よし、お前は毎日きて熱心に頼むから、明日のこの頃には引き取ってやる。安心するがよいと言った。お婆さんはびっくりして、まあ、これの仏さまのような冗談(どうたん)も言えないと言って飛んで帰った。
◆コーディングルール
※コーディングルールのキーワードは重要と判断したものを人力でピックアップしている。そのため、恣意性を伴う分析となる。
※活用形でなく基本形で入力する。
※[前処理]→[語の抽出結果を確認]でキーワードがどのように分節されているか検索すると結果の一覧[語の抽出結果]が表示される。
※[Result]から確認したい行をクリックして選択、画面下の[詳細表示]ボタンをクリックするとサブ画面が表示され、活用形や基本形が確認できる。
※昔話では「否定/肯定」「肯定/否定」と属性が変化することが多いと考え、否定詞「ない」「まい」「ぬ」「ん」、また禁止を意味する「な」を共通のコードとして設定している。
※「できる」「やる」「られる」「せる」といった動詞も共通のコードとして追加してみた。
※[関連語検索]で否定詞の共起語の一覧を表示させたところ、日本の昔話のように掌編レベルのボリュームだと、物語の動因となる箇所に関する語句が上位に表示される傾向が強いのではないか……といった印象があり、検証作業中である。
※無償版では強制抽出語の指定が機能制限で事実上使用できないため以下のような手法をとっている。
*寺
寺 or '禅寺' or 山寺 or 'お寺'
*ご飯
ご飯 or 飯
*干飯
干飯 or 'ほしい'
*魚
魚 or 'にかんのてて'
*ごまず
'ごまず'
*お願い
お願い or 頼む
*手に負えない
手 and 負う and ない
*かん
'かん' or ( 酒 and 沸く )
*こす
'こす' 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)から点線が伸び交差した箇所が原点となる。原点から離れるほど特徴的なキーワードだと分析される。
原点付近には「和尚」「食べる」といったキーワードがプロットされている。離れた位置にプロットされているのは「和尚と小僧」より「餅」「火箸」「柱」、「馬のおとしもの」より「魚」「見捨てる」「糞」、「おばあさんと小僧」より「お願い」、「指合図」より「干飯」「便所」「両手」、「和尚さんと小僧」より「酒」「こす」「ごまず」といった辺りである。
◆解釈
小僧さんは腹を空かせていることが多かったようだ。食べ物に関するお話が多い。「しごにならん(手に負えない)」は「四五にならない」の意味である。
◆階層的クラスター分析
・[ツール]→[コーディング]→[階層的クラスター分析]でオプション画面が表示される。
・[コーディング単位]を[文]に変更、実行するとデンドログラム(樹状図)で可視化される。
※キーワード指定しても可。
概ねストーリー展開に沿った形でクラスター化されている。
◆クロス集計
・[コーディング単位]を[文]に変更、[タイトル]で[集計]する。
クロス集計をかけたところ、「ご飯」「魚」「かん」などでカイ(χ)2乗値で相関関係を示す結果(※マーク)が得られた。
マップとして描画したところ、「ご飯」「干飯」「お願い」といったキーワードの残差が大きく(濃く)表示される結果となった。バブルとしては「和尚」「小僧」が大きく描画された。
◆KWICコンコーダンス
現状ではテキストマイニングのツールに文脈を読む性能はないため実際に該当箇所を読んで人力で判断する他ない。KWICコンコーダンスでキーワード指定すれば指定したキーワードがどのような文脈で用いられているか一覧で抽出される。
◆関連語検索
・[集計単位]を[文]に変更、[集計]する。
・[Search Entry:]の一覧からキーワードを選択してダブルクリックすると[Result]に指定したキーワードの品詞や共起関係が表示される。
※[Result:]から行指定してダブルクリックするとKWICコンコーダンスに遷移する。
※[Result:]の一覧から範囲指定して[コピー]したものを表計算ソフトやテキストファイルにペーストすることも可能である。
[#直接入力]を指定して「仏罰」といったキーワードで検索すると関連語が一覧で表示される。
◆属性の転倒
・「ない」の結果上位一覧
| N | 抽出語 | 品詞 | 全体 | 共起 | Jaccard |
| 1 | 小僧 | 名詞 | 38 (0.404) | 12 (0.545) | 0.25 |
| 2 | 和尚 | 名詞 | 45 (0.479) | 13 (0.591) | 0.2407 |
| 3 | 言う | 動詞 | 28 (0.298) | 9 (0.409) | 0.2195 |
| 4 | 酒 | 名詞C | 10 (0.106) | 4 (0.182) | 0.1429 |
| 5 | 仕方 | ナイ形容 | 3 (0.032) | 3 (0.136) | 0.1364 |
| 6 | 訊く | 動詞 | 3 (0.032) | 3 (0.136) | 0.1364 |
| 7 | 好き | 形容動詞 | 2 (0.021) | 2 (0.091) | 0.0909 |
| 8 | 手 | 名詞C | 2 (0.021) | 2 (0.091) | 0.0909 |
| 9 | 寝る | 動詞 | 2 (0.021) | 2 (0.091) | 0.0909 |
| 10 | 大変 | 形容動詞 | 2 (0.021) | 2 (0.091) | 0.0909 |
| 11 | 負える | 動詞 | 2 (0.021) | 2 (0.091) | 0.0909 |
| 12 | 見捨てる | 動詞 | 3 (0.032) | 2 (0.091) | 0.087 |
和尚が小僧に隠れてこっそり飲み食いするが、小僧に見破られてしまう……といった粗筋となっている。
短いお話の中で属性の転倒を多用するのが昔話の特徴の一つと考えられる。
ここで「/」(スラッシュ)を「転倒」を意味する記号として用いる。スラッシュは様々な場面で用いられていて文脈依存的な記号という欠点もあるが、視覚的にはイメージしやすいと判断した。
・[和尚|餅:隠す/奪われる]
・[小僧|餅:火箸/柱]
・[和尚|魚:見る/見捨てる]
・[小僧|馬糞:見捨てる/詰める]
こういった風にお話を転がしていると分析できる。小僧は「火箸/柱」と転倒させることで屋根の修理にかこつけて餅を奪って食べてしまう。
※なお、図式化には分析対象のテキストに含まれない語句も用いているので要注意。
※関連語検索、強制抽出語を設定しないと狙い通りに処理されないケースが見られる。
◆類似度行列
・[コーディング単位]を[文]に変更して[集計]。Jaccard係数がマトリクス形式で確認できる。
・ある列を選択して画面右下の[コピー(選択列)]をクリックすると、当該のキーワードに関するJaccard係数がコピーされるので、それを表計算ソフトにペーストするといった利用が可能となる。
※当ブログでは[コーディング単位]が[段落][H5]の場合、Jacccard係数が1.0~0.5といった結果がほとんどで、意味のない結果となった。
◆多次元尺度構成法
・[ツール]→[コーディング]→[多次元尺度構成法]でオプション画面が表示される。
・[コーディング単位]を[H5]から[文]に変更。
・[クリア]ボタンをクリックしてコード選択を一旦リセット、共起関係を確認したいキーワードを指定。
・次元を「2」から「3」に変更して実行、三次元のマップとした。
小僧が和尚と食べ物を巡ってやり合うくだりに関連したキーワードを指定したところ、「やり返す」が離れた位置にプロットされた。
※選択するキーワードによって相対的な位置関係は変わり得る。
※実行すると指定したキーワードの幾つかが除外されるとメッセージが表示される。テキストのボリューム不足のためか無償版の仕様によるものか判断がつかない。
※当ブログの事例では「文」以外、「段落」「H5」では除外されるキーワードが増える傾向となった。
◆自己組織化マップ
・[ツール]→[コーディング]→[自己組織化マップ]でオプション画面が表示される。
・[コーディング単位]は[文]で固定。
記述内容が視覚的に整理され、類似性の高い内容が近くに配置される。概ねストーリーに沿った形で各クラスターが表示される。
※クラスター化の計算を繰り返すため処理に時間がかかるので要注意。
※クラスターの配置、距離に意味はない。
◆トピックの推定
・[ツール]→[文書]→[トピックモデル]→[トピックの推定]を選択。
・[集計単位]は[文]で固定。
・[OK]ボタンをクリックすると、[トピックの推定結果]画面が表示される。
・各トピックで高い確率で出現する語句がリストアップされる。
・[#1]といった欄をクリックすると、文書検索画面が表示される。
◆ベイズ学習による分類
・[ツール]→[文書]→[ベイズ学習による分類]→[外部変数から学習]を選択。
・[分類の単位]を[文]に変更。
・[学習する外部変数]は「利用不可」。
・[OK]ボタンをクリックすると、ファイルの保存画面が表示されるので、任意のファイル名を記述して保存する。
・[ツール]→[文書]→[ベイズ学習による分類]→[学習結果ファイルの内容を確認]を選択。ファイル選択画面が開くので、先ほど保存したファイルを指定して開く。すると[学習結果ファイル]画面が開くので内容の確認を行う。
※[学習結果を用いた自動分類]については割愛する。
※[トピックの推定]と[ベイズ学習による分類]は固有名詞などを強制抽出語としてあらかじめ指定しておかないと正確に分析されないケースが生じる。正式に利用したい際は有償版の購入をお勧めする。当ブログのはあくまでテストケースとしてのものである。
※[トピックの推定]と[ベイズ学習による分類]はコーディング・ルールに依らない分析手法となるが、筆者の能力的に追及はしない。
◆参考文献
・『日本の民話 34 石見篇』(大庭良美/編, 未来社, 1978)pp.221-222, 223-224, 225-226, 461-464, 465-466.
・『動かして学ぶ!はじめてのテキストマイニング』(樋口耕一, ナカニシヤ出版, 2022)
・『社会調査のための計量テキスト分析 【第2版】 内容分析の継承と発展を目指して』(樋口耕一, ナカニシヤ出版, 2020)
| 固定リンク
「昔話」カテゴリの記事
- 昔話の計量テキスト分析――嫁と姑(2026.06.06)
- 昔話の計量テキスト分析――木こり(2026.06.05)
- 昔話の計量テキスト分析――馬鹿息子(2026.06.04)
- 昔話の計量テキスト分析――馬鹿婿(2026.06.02)
- 昔話の計量テキスト分析――古猫(2026.06.01)

















