昔話の計量テキスト分析――えんこう(約束)
◆はじめに
以下はKH Coder(無償版:version 3.Beta.08e)を用いた昔話の計量テキスト分析である。昔話の類話の比較にツールを利用できないか試行してみた。
手持ちの資料が限られるため、分析の対象となる元データの文字数が少ないものの(※本来であれば5000字以上は欲しい)、分析自体は正常に処理されていると判断した。
KH Coderの操作に慣れる目的も兼ねて行った作業で、コーディングルールの記述の事例集、あるいは速習用のチュートリアルとしてでも読んで頂ければ……といったところである。
なお、KH Coderでよく用いられるのは共起ネットワークと対応分析とのことで、それ以外はおまけパートと思って頂いて構わない。操作に習熟するにはコーディングルールの記述に慣れるのが第一である。
◆ファイル
各ファイルをダウンロードしてKH Coderに読み込ませれば同様の分析が再現可能である。
ダウンロード - ca_018_enkoyakusoku.xlsx
ダウンロード - ca_018_codingrules.txt
ダウンロード - ca_018_codingrules_b.txt (※否定詞の比較検討用)
ダウンロード - kh_coder_startingedition_sagyotejunsho.txt (※作業手順書)
※「H5」とはHTMLでいうところのヘッダー(見出し)・レベル5で本文に相当すると考えればよい。
※[コーディング単位]は「文/段落/H5」から選べるが、状況に応じて適切と思われるものを選択する必要がある。処理が上手くいかないと感じた場合、コーディング単位を切り替えると上手く処理されるケースがままある。
※公式マニュアルでは「集計単位」という用語が使われている。共起関係について、
・「文」では一文単位での分析
・「段落」では段落単位の分析
・「H5」では表計算ソフトのセル単位とされ、改行を含めた一セルの中身全体が分析単位となる
※レファレンスでも索引で「コーディング単位」の項目は設けられていない。操作性に関わる重要項目であるものの、その仕様について不明瞭な感はある。
※当ブログの場合、表計算ソフトのフォーマットで読み込ませているからH5固定でいいだろうと思い込んでいたら、さにあらずだった。
◆あらすじ
・「えんこう塚」(未来社『石見の民話』)
河内町を流れる浜田川のほとりにえんこう塚という石碑がひっそりと立っている。昔、ある日のこと一人の百姓が仕事を済ませて近くの川で馬の体を洗ってやった。そして日はまだ沈まないし、このまま家へ帰るには早いので、馬を川端に繋いで、もう一仕事しようと畑へ引き返していった。ところがこの様子を川の中からえんこう(河童)が見ていた。よし、今日はあの馬を川の中へ引きずり込んで捕ってやろう。えんこうは百姓がいなくなるのを待っていた。えんこうは百姓が畑へ行ったのを見澄ますと、そろりと馬に近づいて綱を杭からほどき、自分の身体に巻き付けて思い切り引っ張った。びっくりした馬は飛び上がると一目散に走り出した。慌てたえんこうは綱をほどこうとしたが、あまり強い力で引っ張られるのでほどくことができない。とうとう馬に引きずられて陸の上に放り出されてしまい、石にぶつかってやっと止まった。その騒ぎに頭の皿の水が飛び出してしまったので、えんこうは力がなくなりどうすることもできない。その時騒ぎを聞きつけた百姓が急いで川端へ引き返してみると、馬はおらずえんこうがぼんやり座っている。様子が分かった百姓は今日こそは承知しないぞと怒鳴りつけた。引っ張っていこうとすると、えんこうは涙を流して何度も何度も謝るので、それならこれからは子供を捕ったり馬にいたずらをしたりしないと約束をするなら許してやろうと言った。えんこうがこれからは絶対にそういうことはしないと言うので許してやった。そして石碑に「南無阿弥陀仏」と彫って、この字が消えない内は絶対にいたずらをしないと約束させ、河岸に立てて、この辺りでえんこうに捕られた子供たちを弔ってやった。その日から、えんこうのいたずらは全く無くなった。しかし、えんこうは早くこの字を消そうと毎日やって来て石碑の字をなでるので、反対に字はだんだん深くなったという。
・「えんこうの石」(未来社『石見の民話』)
那賀郡今福村宇津井の河上家に仁右衛門という人がいた。中原と宇津井の田を開いた人であった。仁右衛門が中原の田を開拓している頃、川岸に馬を繋いでおいたところ、えんこうが来て川の中へそろりそろりと引いていった。だいぶ深いところへ行ってもう少しというところで馬が気づき、いきなり岸へ駆け上がると一散に家へ帰った。えんこうは不意のことなのでどうすることもできない。綱を身体へ巻きつけていたので、そのまま駄屋まで引きずっていかれた。その際頭の皿の水がこぼれてしまったので、ようやく綱をほどくと馬のたらいの中へ隠れていた。仁右衛門はしばらくして馬を連れて帰ろうと思って川岸へ来てみると馬がいない。不思議に思って家へ帰ってみると、馬は主人より早く駄屋に帰っている。変に思って辺りをよく見ると、餌をやる馬のたらいの中に変なものがしゃがんでいる。仁右衛門はこの野郎と思って引っ張り出すと散々にぶん殴った。それからしばらく経って仁右衛門は病気になった。中々よくならない。ある日病床に臥していると外から仁右衛門、仁右衛門と呼ぶ声がする。仁右衛門は枕元の刀をさげて障子を開け、縁に出てみたが誰もいない。そういうことが何回もあった。それから四五日経って仁右衛門が寝ていると、また仁右衛門、仁右衛門と呼ぶ声がする。何の気もなしに刀を持たずに外へ出てふらふらと夢中で歩いていると、ざあざあと川瀬の音がする。我に返って辺りを見ると、いつの間にか宇津井の橋床まで来ていた。言うまでもなく、えんこうの為に夢中におびき出されたのだった。仁右衛門は気づくと辺りを見回した。するとすぐ傍に、この前酷くこらしめたえんこうが歯をむき出して今にも飛びかかろうとしている。剛胆な仁右衛門はしばらく橋の上で格闘したが、遂に膝の下に組み伏せた。えんこうは、これからは宇津井川では人に害をなすことはしないから命だけは助けてくれと言った。そして、もしこの橋の上に四十雀が三羽遊んでいたら、他の川の同族が来て遊んでいるから注意してくれと言った。仁右衛門は十分こらしめた上でえんこうを許してやった。仁右衛門は格闘したとき、えんこうを大きな石に打ちつけたので石の角が壊れた。現在河上家にある靴ぬぎ石は、その石を運んだものと言われている。
・「大膳と治部」(未来社『石見の民話』)
昔、左鐙に大膳と治部という兄弟がいた。大膳は左鐙に、治部は川向こうに住んでいた。大膳はよく治部のところへ遊びに行った。すると治部のところでは、どんな雪の日でも雨風の日でも必ず生魚を出してご馳走した。大膳は不審に思って、いったいどうして手に入れるのかと尋ねた。治部の家の近くにえんこうわいと言って渕の底の岩に一間四角くらいな穴がある。ある晩治部が寝ていると誰か起こすものがある。目を開けて見ると美しい女が枕元へ来ていた。女は自分はえんこうわいにおるえんこうだが、この間の大水で金馬鍬が穴の口へ流れかかって通ることができない。それで子供を養うことが出来ずに困っている。どうか鍬を除けて下さらないか。ご恩は決して忘れないからと言った。治部は、それは除けてやらないことはないが、これからは左鐙の内で子供が一人でもえんこうに取られたという様なことがあったら承知しない。そういうことがあったら馬鍬を除けるどころか三尺の釜をもって塞いでやると言った。女はそういうことは決してしない。どうか除けてくださいと頼むので、それなら除けてやろうと言うと、女はたいそう喜んで、このことは誰にも言ってくださるなと言って帰った。明くる日、治部がえんこうわいへ行ってみると、女が言った通り馬鍬がかかっているので取りのけてやった。えんこうは金物に触ると身体が腐るので金物を恐れるのだった。ところがそれからと言うものは、夏は鮎、冬はいだという様に、朝起きてみると毎日の様に必ず魚が軒下へ吊ってあった。そういう訳でいつも生魚があるのだったが、えんこうに誰にも言わないという約束がしてあるので、言う訳にはいかない。それで大膳が尋ねても、それには訳があって言われないと治部は言った。大膳は兄弟の間で言われないということはない、言えと言う。治部はどういう事があっても言われぬと言う。そうして争っている内に大喧嘩になって、大膳はぷんぷんして帰っていった。大膳が家へ帰って昼寝をしていると治部が抜身を下げてやって来て、いきなり切りかかった。大膳は初めの内は扇子であしらっていたが、危なくなったので、女房に槍をとってくれと言った。女房は慌てて長押の槍をとって差し出す調子に、間違えて治部へ渡した。治部はその槍で大膳を突き殺してしまった。治部は家へ帰ると腹を切って死んだ。大膳は「大膳さま」と言って今も小さな祠に祀ってあるが、大膳さまは女というものはこのようにあさはかなもので、そのために自分は殺されたと言って、女をひどく嫌うので、女は参ってはいけないと言うことである。治部の墓は川向こうの田の中にあるが、そこに田を植えるときにはどんないい天気でも、雨の三粒でも降らないことはないと言う。
◆コーディングルール
※コーディングルールのキーワードは重要と判断したものを人力でピックアップしている。そのため、恣意性を伴う分析となる。
※活用形でなく基本形で入力する。
※[前処理]→[語の抽出結果を確認]でキーワードがどのように分節されているか検索すると結果の一覧[語の抽出結果]が表示される。
※[Result]から確認したい行をクリックして選択、画面下の[詳細表示]ボタンをクリックするとサブ画面が表示され、活用形や基本形が確認できる。
※昔話では「否定/肯定」「肯定/否定」と属性が変化することが多いと考え、否定詞「ない」「まい」「ぬ」「ん」、また禁止を意味する「な」を共通のコードとして設定している。
※「できる」「やる」「られる」「せる」といった動詞も共通のコードとして追加してみた。
※[関連語検索]で否定詞の共起語の一覧を表示させたところ、日本の昔話のように掌編レベルのボリュームだと、物語の動因となる箇所に関する語句が上位に表示される傾向が強いのではないか……といった印象があり、検証作業中である。
※無償版では強制抽出語の指定が機能制限で事実上使用できないため以下のような手法をとっている。
*河内町
'河内町'
*浜田川
'浜田川'
*石碑
石碑 or 塚
*えんこう
'えんこう'
*捕る
捕る or 取る
*字
字 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)から点線が伸び交差した箇所が原点となる。原点から離れるほど特徴的なキーワードだと分析される。
原点直下にはキーワードがプロットされていない。離れた位置にプロットされているのは「えんこう塚」では「消す」「字」「石碑」、「えんこうの石」では「開拓」「橋」「壊れる」、「大膳と治部」では「穴」「生魚」「田植え」といった辺りである。
◆解釈
川や渕での水難事故がえんこう(河童)という妖怪へと結実したのだろう。これらの類話は悪さをしようとしたら裏目に出て力を失ったえんこうに制裁を加え、二度と悪さをしないと約束させる内容となっている。なお、背景としてえんこうは金物に触れると体が腐ると信じられており、こういったお話の展開となっているものと考えられる。
◆階層的クラスター分析
・[ツール]→[コーディング]→[階層的クラスター分析]でオプション画面が表示される。
・[コーディング単位]を[文]に変更、実行するとデンドログラム(樹状図)で可視化される。
※キーワード指定しても可。
概ねストーリー展開に沿った形でクラスター化されている。
◆クロス集計
・[コーディング単位]を[文]に変更、[タイトル]で[集計]する。
クロス集計をかけたところ、「石碑」「えんこう」「捕る」といったキーワードでカイ(χ)2乗値で相関関係を示す結果(※マーク)が得られた。
マップとして描画したところ、「仁右衛門」「駄屋」「大膳」「治部」「生魚」「百姓」「馬」といったキーワードの残差が大きく(濃く)表示される結果となった。バブルとしては「えんこう」が大きく描画された。
◆KWICコンコーダンス
現状ではテキストマイニングのツールに文脈を読む性能はないため実際に該当箇所を読んで人力で判断する他ない。KWICコンコーダンスでキーワード指定すれば指定したキーワードがどのような文脈で用いられているか一覧で抽出される。
◆関連語検索
・[集計単位]を[文]に変更、[集計]する。
・[Search Entry:]の一覧からキーワードを選択してダブルクリックすると[Result]に指定したキーワードの品詞や共起関係が表示される。
※[Result:]から行指定してダブルクリックするとKWICコンコーダンスに遷移する。
※[Result:]の一覧から範囲指定して[コピー]したものを表計算ソフトやテキストファイルにペーストすることも可能である。
[#直接入力]を指定して「金物」といったキーワードで検索すると関連語が一覧で表示される。
◆属性の転倒
・「ない」の結果上位一覧
| N | 抽出語 | 品詞 | 全体 | 共起 | Jaccard |
| 1 | 言う | 動詞 | 18 (0.234) | 9 (0.375) | 0.2727 |
| 2 | 約束 | サ変名詞 | 3 (0.039) | 3 (0.125) | 0.125 |
| 3 | 子供 | 名詞 | 4 (0.052) | 3 (0.125) | 0.12 |
| 4 | 女 | 名詞C | 6 (0.078) | 3 (0.125) | 0.1111 |
| 5 | あ | 感動詞 | 2 (0.026) | 2 (0.083) | 0.0833 |
| 6 | 決して | 副詞 | 2 (0.026) | 2 (0.083) | 0.0833 |
| 7 | 出る | 動詞 | 2 (0.026) | 2 (0.083) | 0.0833 |
| 8 | 承知 | サ変名詞 | 2 (0.026) | 2 (0.083) | 0.0833 |
| 9 | 刀 | 名詞C | 2 (0.026) | 2 (0.083) | 0.0833 |
| 10 | 訳 | 名詞C | 2 (0.026) | 2 (0.083) | 0.0833 |
・「るな」の結果上位一覧
| N | 抽出語 | 品詞 | 全体 | 共起 | Jaccard |
| 1 | 喜ぶ | 動詞 | 1 (0.013) | 1 (0.500) | 0.5 |
| 2 | 謝る | 動詞 | 1 (0.013) | 1 (0.500) | 0.5 |
| 3 | 頼む | 動詞 | 1 (0.013) | 1 (0.500) | 0.5 |
| 4 | 流す | 動詞 | 1 (0.013) | 1 (0.500) | 0.5 |
| 5 | 涙 | 名詞C | 1 (0.013) | 1 (0.500) | 0.5 |
| 6 | いたずら | サ変名詞 | 3 (0.039) | 1 (0.500) | 0.25 |
| 7 | 許す | 動詞 | 3 (0.039) | 1 (0.500) | 0.25 |
| 8 | 捕る | 動詞 | 3 (0.039) | 1 (0.500) | 0.25 |
| 9 | 約束 | サ変名詞 | 3 (0.039) | 1 (0.500) | 0.25 |
| 10 | 引っ張る | 動詞 | 4 (0.052) | 1 (0.500) | 0.2 |
えんこうを懲らしめたり助けたりして約束させる……といった粗筋となっている。
短いお話の中で属性の転倒を多用するのが昔話の特徴の一つと考えられる。
ここで「/」(スラッシュ)を「転倒」を意味する記号として用いる。スラッシュは様々な場面で用いられていて文脈依存的な記号という欠点もあるが、視覚的にはイメージしやすいと判断した。
・[百姓|えんこう:懲らしめ/約束]
・[仁右衛門|えんこう:懲らしめ/約束]
・[えんこう|治部:除かせる/お礼]
こういった風にお話を転がしていると分析できる。えんこうは皿の水の「喪失/回復」によって力の「喪失/回復」といった状態の変化をみせる。
※なお、図式化には分析対象のテキストに含まれない語句も用いているので要注意。
※関連語検索、強制抽出語を設定しないと狙い通りに処理されないケースが見られる。
◆類似度行列
・[コーディング単位]を[文]に変更して[集計]。Jaccard係数がマトリクス形式で確認できる。
・ある列を選択して画面右下の[コピー(選択列)]をクリックすると、当該のキーワードに関するJaccard係数がコピーされるので、それを表計算ソフトにペーストするといった利用が可能となる。
※当ブログでは[コーディング単位]が[段落][H5]の場合、Jacccard係数が1.0~0.5といった結果がほとんどで、意味のない結果となった。
◆多次元尺度構成法
・[ツール]→[コーディング]→[多次元尺度構成法]でオプション画面が表示される。
・[コーディング単位]を[H5]から[文]に変更。
・[クリア]ボタンをクリックしてコード選択を一旦リセット、共起関係を確認したいキーワードを指定。
・次元を「2」から「3」に変更して実行、三次元のマップとした。
えんこうに子供を捕るなと約束させるくだりに関するキーワードを指定したところ、「馬」が離れた位置にプロットされた。
※選択するキーワードによって相対的な位置関係は変わり得る。
※実行すると指定したキーワードの幾つかが除外されるとメッセージが表示される。テキストのボリューム不足のためか無償版の仕様によるものか判断がつかない。
※当ブログの事例では「文」以外、「段落」「H5」では除外されるキーワードが増える傾向となった。
◆自己組織化マップ
・[ツール]→[コーディング]→[自己組織化マップ]でオプション画面が表示される。
・[コーディング単位]は[文]で固定。
記述内容が視覚的に整理され、類似性の高い内容が近くに配置される。概ねストーリーに沿った形で各クラスターが表示される。
※クラスター化の計算を繰り返すため処理に時間がかかるので要注意。
※クラスターの配置、距離に意味はない。
◆トピックの推定
・[ツール]→[文書]→[トピックモデル]→[トピックの推定]を選択。
・[集計単位]は[文]で固定。
・[OK]ボタンをクリックすると、[トピックの推定結果]画面が表示される。
・各トピックで高い確率で出現する語句がリストアップされる。
・[#1]といった欄をクリックすると、文書検索画面が表示される。
◆ベイズ学習による分類
・[ツール]→[文書]→[ベイズ学習による分類]→[外部変数から学習]を選択。
・[分類の単位]を[文]に変更。
・[学習する外部変数]は「利用不可」。
・[OK]ボタンをクリックすると、ファイルの保存画面が表示されるので、任意のファイル名を記述して保存する。
・[ツール]→[文書]→[ベイズ学習による分類]→[学習結果ファイルの内容を確認]を選択。ファイル選択画面が開くので、先ほど保存したファイルを指定して開く。すると[学習結果ファイル]画面が開くので内容の確認を行う。
※[学習結果を用いた自動分類]については割愛する。
※[トピックの推定]と[ベイズ学習による分類]は固有名詞などを強制抽出語としてあらかじめ指定しておかないと正確に分析されないケースが生じる。正式に利用したい際は有償版の購入をお勧めする。当ブログのはあくまでテストケースとしてのものである。
※[トピックの推定]と[ベイズ学習による分類]はコーディング・ルールに依らない分析手法となるが、筆者の能力的に追及はしない。
◆参考文献
・『日本の民話 34 石見篇』(大庭良美/編, 未来社, 1978)pp.259-261, 268-270, 356-358.
・『動かして学ぶ!はじめてのテキストマイニング』(樋口耕一, ナカニシヤ出版, 2022)
・『社会調査のための計量テキスト分析 【第2版】 内容分析の継承と発展を目指して』(樋口耕一, ナカニシヤ出版, 2020)
| 固定リンク
「昔話」カテゴリの記事
- 昔話の計量テキスト分析――嫁と姑(2026.06.06)
- 昔話の計量テキスト分析――木こり(2026.06.05)
- 昔話の計量テキスト分析――馬鹿息子(2026.06.04)
- 昔話の計量テキスト分析――馬鹿婿(2026.06.02)
- 昔話の計量テキスト分析――古猫(2026.06.01)















