昔話の計量テキスト分析――池月
◆はじめに
以下はKH Coder(無償版:version 3.Beta.08e)を用いた昔話の計量テキスト分析である。昔話の類話の比較にツールを利用できないか試行してみた。
手持ちの資料が限られるため、分析の対象となる元データの文字数が少ないものの(※本来であれば5000字以上は欲しい)、分析自体は正常に処理されていると判断した。
KH Coderの操作に慣れる目的も兼ねて行った作業で、コーディングルールの記述の事例集、あるいは速習用のチュートリアルとしてでも読んで頂ければ……といったところである。
なお、KH Coderでよく用いられるのは共起ネットワークと対応分析とのことで、それ以外はおまけパートと思って頂いて構わない。操作に習熟するにはコーディングルールの記述に慣れるのが第一である。
◆ファイル
各ファイルをダウンロードしてKH Coderに読み込ませれば同様の分析が再現可能である。
ダウンロード - ca_pb_007_ikeduki.xlsx
ダウンロード - ca_pb_007_codingrules.txt
ダウンロード - kh_coder_startingedition_sagyotejunsho.txt (※作業手順書)
※「H5」とはHTMLでいうところのヘッダー(見出し)・レベル5で本文に相当すると考えればよい。
※[コーディング単位]は「文/段落/H5」から選べるが、状況に応じて適切と思われるものを選択する必要がある。処理が上手くいかないと感じた場合、コーディング単位を切り替えると上手く処理されるケースがままある。
※公式マニュアルでは「集計単位」という用語が使われている。共起関係について、
・「文」では一文単位での分析
・「段落」では段落単位の分析
・「H5」では表計算ソフトのセル単位とされ、改行を含めた一セルの中身全体が分析単位となる
※レファレンスでも索引で「コーディング単位」の項目は設けられていない。操作性に関わる重要項目であるものの、その仕様について不明瞭な感はある。
※当ブログの場合、表計算ソフトのフォーマットで読み込ませているからH5固定でいいだろうと思い込んでいたら、さにあらずだった。
◆あらすじ
・「名馬池月」(未来社『石見の民話』)
治承三年の頃は邑智郡阿須那の牛馬市が最も盛んな時だった。出雲の国飯石郡松笠村に竜頭ヶ滝という滝があった。後に名馬として有名になった池月はこの滝の近くで生まれた。小さいとき母馬が死んだ。母馬を探して滝の辺りをさ迷っている内に自分の姿が滝壺に映るのを母馬と思って滝壺に飛び込んだ。しかし水の中には母馬はいないので上に上がってみると水の中に母馬の姿が見える。そこで飛び込むが、やはり母馬はいない。こうした事を繰り返す内に泳ぎが上手になった。治承三年四月の阿須那の市にこの馬は馬喰に連れられて都賀本郷まで来た。が、江川は雪解けで水が多く渡ることができない。しかし川向こうの都賀西では市へ行く牛や馬がひっきりなしに通っていく。これを見た馬は激しい流れに飛び込んで川を真一文字に渡って都賀西から阿須那の市場に駆け込んだ。驚いた人々が見ていると一人の商人が池月を栢の木に繋いだ。それからしばらくして雲州から馬の持ち主がやって来た。そして馬を売ろうとしたが買う人がいない。羽村長田までいったところで買い手がついた。その男は指を六本出した。持ち主は六百文だと思って手を打った。ところが買い手は六百両出したので売主は驚いた。この馬は名馬の相があり六百両でも安い位だとのことであった。この馬は後に東国に下って名馬の名が高くなり、遂に源頼朝に買い上げられた。元暦元年正月、宇治川の合戦に佐々木四郎高綱が池月に打ちまたがって先陣の名を天下にあげた。池月を繋いだ栢の木は阿須那の賀茂神社の境内に今もある。
・「名馬池月」(日本標準『島根の伝説』)
八百年ばかり昔、松笠村(飯石郡掛合町)の辺りでは仕事で馬を使っていて大事に育てていた。ある年、滝谷というところでかわいい子馬が生まれた。元気な子馬だったが、いつの頃からか母馬の姿が見えなくなってしまった。子馬を産んだあと、体調を崩し死んでしまったのである。ある日、松笠村の奥にある龍頭滝の滝口に子馬が姿を現した。子馬は滝つぼの縁を歩き回っていたが、ふと水の落ち込まない静かな水面を見た。すると、そこには日頃探していた母馬の姿が浮かんで見えた。子馬はざぶんと滝つぼに飛び込んだ。だが、そこに母馬の姿はなかった。仕方なく縁に上がって水面を見ると、やはり母馬はいる。再び飛び込んだが結果は同じだった。何度も繰り返した。こうして水面に映る自分の姿を母馬とみて毎日のように滝つぼに飛び込んでいる内に子馬はいつしか泳ぎの達者な立派な馬に成長した。この馬は赤名(飯石郡赤来町)の馬喰に買われ、石見の牛馬市に出された。赤名を通り、都賀本郷まで来たとき、雪解けの水で江川は渦を巻いて流れていた。馬喰たちはいかだに馬を載せてゆっくりと渡していた。と、この馬は何を思ったかいきなり川へ飛び込んだ。濁流をものともせず馬はぐんぐん向こう岸めがけて泳ぎ続けさっと岸に駆け上がった。この様子を阿須那(邑智郡羽須美村大字阿須那)の馬喰がじっと見つめていた。馬市でせりが始まった。この馬は最後にせられることとなった。見事な馬で申し分のない姿をしていた。せりが始まると阿須那の馬喰は早速考えられないほどの高値をつけた。競う者はなく阿須那の馬喰が競り落とした。やがてこの馬は阿須那城主に売り渡された。寿永三年(一一八四)、源義経が木曽義仲を京都の宇治川まで攻め寄せたとき、佐々木高綱と梶原景季が先陣を争った。高綱の乗った池月という馬はこの松笠で育った馬だと言われている。
・「池月」(みずうみ書房『日本伝説大系』十一巻)
源平の戦いのとき、宇治川の先陣争いで、佐々木高綱の乗った名馬池月の産地は東北とも九州とも、また県内では飯石郡とも言われているが馬路の産だという説もある。馬路村には縄手というところがあり、一つの池がある。池に臨んで厩という屋号の家がある。これが池月の生まれた厩の跡だという。駒のときから大変な駿馬で、馬喰が誤ってこれを放すと、馬は月下池を渡って遂に見えなくなった。池月という名はここから起こった。馬喰は慌てて後を追って天河内の境に出て馬の足跡を発見した。今も地名に馬の跡というのがある。これで逃げた方向が分かったので、大国から大森へと追って出た。このときまた足跡があった。今も大森に駒の足という区がある。更に追って三久須に至り馬の姿を認め「駄駄」と声をかけた。今旧道に駄駄坂というのがある。ここから馬喰は馬を引いて邑智郡阿須那の市に行き、ある寺の境内の榧の木に繋いだ。駒は暁の空に向かって一声大きくいなないた。
・「名馬池月」(白想社『随筆石見物語』)
邑智郡阿須那の牛馬市は関西有数の盛んなものであった。当時飯石郡松笠村の龍頭が滝付近に名馬池月が生まれた。幼駒の時に母馬を失い、池月は母恋しさにこの滝つぼに自分の姿が映るのを見て母と思い込み、毎日滝つぼに飛び込み母を尋ねた。しばらくする内に水泳の技に長ずるようになった。牛馬商に牽かれて頓原村を過ぎ都賀本郷まで来たが、江川は雪解けで増水して渡ることができない。対岸には市へ行く馬匹が列をなしているので、これを見た池月は江川へ飛び入り真一文字に打ち渡り、一声高くいなないて都賀西から宇津井に出て遂に阿須那市場へ飛び込んできた。恐れおののく人の内、ようやく一人の心利いたものがいて、やっと柏の木に繋ぎ留めた。しばらくして持ち主がやって来て売ろうとしたけれど買い手がない。仕方がないので馬を曳いて口羽村字長田まで来るとようやく買い手が現れた。博労は手の指を六本出してこれで買いたいと言った。持ち主は六百文と思い込み承諾した。すると買い手は六百両の大金を渡したので持ち主は呆れて訳を訊くと、この馬は名馬の相があるから六百両でもまだ安いと言った。果たして博労の鑑定通り鎌倉に引き出して将軍頼朝に買い上げられ宇治川先陣の誉れを残した。馬を繋いだ柏の木は現在枯れて骨幹のみが白くなって残っている。名馬池月の伝説はこの外に邇摩郡馬路村、隠岐国などに残っているが、話の筋が大同小異でいずれが真の出生地であるかは不明である。
◆コーディングルール
※コーディングルールのキーワードは重要と判断したものを人力でピックアップしている。そのため、恣意性を伴う分析となる。
※活用形でなく基本形で入力する。
※[前処理]→[語の抽出結果を確認]でキーワードがどのように分節されているか検索すると結果の一覧[語の抽出結果]が表示される。
※[Result]から確認したい行をクリックして選択、画面下の[詳細表示]ボタンをクリックするとサブ画面が表示され、活用形や基本形が確認できる。
※昔話では「否定/肯定」「肯定/否定」と属性が変化することが多いと考え、否定詞「ない」「まい」「ぬ」「ん」、また禁止を意味する「な」を共通のコードとして設定している。
※[関連語検索]で否定詞の共起語の一覧を表示させたところ、日本の昔話のように掌編レベルのボリュームだと、物語の動因となる箇所に関する語句が上位に表示される傾向が強いのではないか……といった印象があり、検証作業中である。
※無償版では強制抽出語の指定が機能制限で事実上使用できないため以下のような手法をとっている。
*阿須那
'阿須那'
*牛馬市
'牛馬市' or '馬市' or '市' or 市場
*松笠村
'松笠村'
*池月
'池月' or 自分 or 馬 or 駒
*母馬
'母馬' or 母
*滝壺
滝壺 or 滝つぼ
*泳ぎ
泳ぎ or 水泳
*上手
上手 or 達者
*馬喰
馬喰 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]に設定する。
※[外部変数]は[書名]に変更して実行。
※[差異が顕著なコードを分析に使用]で上位「40」とした。また[バブルプロット]にチェックを入れている。これらは文字の重なりを極力避けるためである。
※文字が重なって読みづらい場合、オプション画面の[コード選択]で不要なコードのチェックを外してもよい。
x、y軸上の原点(0.0)から点線が伸び交差した箇所が原点となる。原点から離れるほど特徴的なキーワードだと分析される。
原点付近には「母馬」「滝」「飛び込む」といったキーワードが配置されている。未来社版と白想社版では「六本」「六百文」といったキーワードが特徴的とされ、みずうみ書房版では「駄駄」などが特徴的とされている。「義仲」「景季」といった敵将あるいは先陣争いのライバルの名前が最も離れた位置にプロットされている。
◆解釈
出雲の龍頭滝をはじまりの舞台とし、その後江川を渡って阿須那の牛馬市に向かう筋立ては共通している。馬路の伝説は異伝的な要素が強いと解釈されたようだ。宇治川の先陣争いは池月が真価を発揮したエピソードであるが、ここではその後の出来事として、むしろ池月がいかにして泳ぎの達者な馬となったかが語られている。
ちなみに、阿須那の賀茂神社には池月を繋いだとされる枯れ木が現存している。
◆階層的クラスター分析
・[コーディング単位]を[文]に変更、実行するとデンドログラム(樹状図)で可視化される。
※キーワード指定しても可。

※当ブログの場合、[コーディング単位]が[段落][H5]だと、コードを全て選択するとエラーが返される結果となった。
概ねストーリーに沿った内容でクラスター化されているが、「母馬」「死ぬ」「姿」「水面」といったキーワードは異なるクラスターに分類される結果となった。
◆クロス集計
・[コーディング単位]を[文]に変更、[集計]する。
※同名のタイトルを含むため「書名」で集計をかけた。
クロス集計をかけたところ、「厩」「足跡」といったキーワードでカイ(χ)2乗値で相関関係を示す結果(※マーク)が得られた。
マップとして描画したところ、「厩」といったキーワードの残差が大きく(濃く)表示される結果となった。バブルとしては「池月」が大きく描画された。
◆KWICコンコーダンス
現状ではテキストマイニングのツールに文脈を読む性能はないため実際に該当箇所を読んで人力で判断する他ない。KWICコンコーダンスでキーワード指定すれば指定したキーワードがどのような文脈で用いられているか一覧で抽出される。
・[集計単位]を[文]に変更、[集計]する。
・[Search Entry:]の一覧からキーワードを選択してダブルクリックすると[Result]に指定したキーワードの品詞や共起関係が表示される。
※[Result:]から行指定してダブルクリックするとKWICコンコーダンスに遷移する。
※[Result:]の一覧から範囲指定して[コピー]したものを表計算ソフトやテキストファイルにペーストすることも可能である。
[#直接入力]を指定して「人」といったキーワードで検索すると関連語が一覧で表示される。
◆属性の転倒
・「ない」の結果上位一覧
| N | 抽出語 | 品詞 | 全体 | 共起 | Jaccard |
| 1 | 母 | 名詞C | 10 (0.125) | 5 (0.333) | 0.25 |
| 2 | 姿 | 名詞C | 10 (0.125) | 4 (0.267) | 0.1905 |
| 3 | 見える | 動詞 | 4 (0.050) | 3 (0.200) | 0.1875 |
| 4 | 水 | 名詞C | 4 (0.050) | 3 (0.200) | 0.1875 |
| 5 | 渡る | 動詞 | 5 (0.063) | 3 (0.200) | 0.1765 |
| 6 | 馬喰 | 名詞 | 9 (0.113) | 3 (0.200) | 0.1429 |
| 7 | 縁 | 名詞C | 2 (0.025) | 2 (0.133) | 0.1333 |
| 8 | 仕方 | ナイ形容 | 2 (0.025) | 2 (0.133) | 0.1333 |
| 9 | 売る | 動詞 | 2 (0.025) | 2 (0.133) | 0.1333 |
| 10 | 江川 | 人名 | 3 (0.038) | 2 (0.133) | 0.125 |
母馬が死んでしまったのか、いなくなってしまい、子馬は母馬の姿を追い求める。滝つぼに映った自分の姿をそこに母馬がいると思った子馬は飛び込む。そうする内に泳ぎの達者な馬となり、やがて増水してとても渡れそうにない江川を泳ぎ切ってしまう。
このように短いお話の中で属性の転倒を多用するのが昔話の特徴の一つと考えられる。
ここで「/」(スラッシュ)を「転倒」を意味する記号として用いる。スラッシュは様々な場面で用いられていて文脈依存的な記号という欠点もあるが、視覚的にはイメージしやすいと判断した。
・[子馬|母馬:いる/いない]
・[馬|増水した川:渡れない/渡る]
こういった風にお話を転がしていると分析できる。母馬が「いる/いない」と転倒した結果、子馬の成長に繋がるといった結果となっている。
※なお、図式化には分析対象のテキストに含まれない語句も用いているので要注意。
◆類似度行列
・[コーディング単位]を[文]に変更して[集計]。
Jaccard係数がマトリクス形式で確認できる。
・ある列を選択して画面右下の[コピー(選択列)]をクリックすると、当該のキーワードに関するJaccard係数がコピーされるので、それを表計算ソフトにペーストするといった利用が可能となる。
※当ブログでは[コーディング単位]が[段落][H5]の場合、Jacccard係数が1.0~0.5といった結果がほとんどで、意味のない結果となった。
◆多次元尺度構成法
・[コーディング単位]を[文]に変更して実行。
・確認したいキーワードを指定。
・次元を「2」から「3」に変更して実行、三次元のマップとした。
「死ぬ」「ない」がやや離れた位置にプロットされている。
※選択するキーワードによって相対的な位置関係は変わり得る。
※実行すると指定したキーワードの幾つかが除外されるとメッセージが表示される。テキストのボリューム不足のためか無償版の仕様によるものか判断がつかない。
※当ブログの事例では「文」以外、「段落」「H5」では除外されるキーワードが増える傾向となった。
◆自己組織化マップ
[コーディング単位]を[文]に変更して実行。
記述内容が視覚的に整理され、類似性の高い内容が近くに配置される。概ねストーリーに沿った形で各クラスターが表示される。
※当ブログの事例では「文」以外、「段落」「H5」ではエラーが返される結果となった。
※クラスター化の計算を繰り返すため処理に時間がかかるので要注意。
※クラスターの配置、距離に意味はない。
◆トピックの推定
・[ツール]→[文書]→[トピックモデル]→[トピックの推定]を選択。
・[集計単位]を[文]に変更。
・[OK]ボタンをクリックすると、[トピックの推定結果]画面が表示される。
・各トピックで高い確率で出現する語句がリストアップされる。
・[#1]といった欄をクリックすると、文書検索画面が表示される。
◆ベイズ学習による分類
・[ツール]→[文書]→[ベイズ学習による分類]→[外部変数から学習]を選択。
・[分類の単位]を[文]に変更。
・タイトルが被るため[学習する外部変数]を[書名]に変更。
・[OK]ボタンをクリックすると、ファイルの保存画面が表示されるので、任意のファイル名を記述して保存する。
・[ツール]→[文書]→[ベイズ学習による分類]→[学習結果ファイルの内容を確認]を選択。ファイル選択画面が開くので、先ほど保存したファイルを指定して開く。すると[学習結果ファイル]画面が開くので内容の確認を行う。
※[学習結果を用いた自動分類]については割愛する。
※[トピックの推定]と[ベイズ学習による分類]は固有名詞などを強制抽出語としてあらかじめ指定しておかないと正確に分析されないケースが生じる。正式に利用したい際は有償版の購入をお勧めする。当ブログのはあくまでテストケースとしてのものである。
※[トピックの推定]と[ベイズ学習による分類]はコーディング・ルールに依らない分析手法となるが、筆者の能力的に追及はしない。
◆参考文献
・『日本の民話 34 石見篇』(大庭良美/編, 未来社, 1978)pp.91-92.
・『島根の伝説』(島根県小・中学校国語教育研究会/編, 日本標準, 1978)pp.198-202.
・『日本伝説大系 第11巻 山陰(鳥取・島根)』(野村純一他, みずうみ書房, 1984)pp.187-192.
・『随筆 石見物語(復刻版)』(木村晩翠, 白想社, 1993)pp.93-94.
・『動かして学ぶ!はじめてのテキストマイニング』(樋口耕一, ナカニシヤ出版, 2022)
・『社会調査のための計量テキスト分析 【第2版】 内容分析の継承と発展を目指して』(樋口耕一, ナカニシヤ出版, 2020)
| 固定リンク
「昔話」カテゴリの記事
- 昔話の計量テキスト分析――竜宮女房(2026.04.09)
- 昔話の計量テキスト分析――姥捨て山(2026.04.08)
- 昔話の計量テキスト分析――皿皿山(2026.04.07)
- 昔話の計量テキスト分析――田部(2026.04.06)















