« 昔話の計量テキスト分析――邯鄲夢の枕 | トップページ | 昔話の計量テキスト分析――琴姫 »

2026年3月 3日 (火)

昔話の計量テキスト分析――椛谷の次郎

◆はじめに

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

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

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

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

◆ファイル

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

ダウンロード - ca_pb_004_kabatanijiro.xlsx

ダウンロード - ca_pb_004_codingrules.txt

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

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

※公式マニュアルでは「集計単位」という用語が使われている。共起関係について、「文」では一文単位での分析、「段落」では段落単位の分析、「H5」では表計算ソフトのセル単位とされ、改行を含めた一セルの中身全体が分析単位となる。

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

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

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

◆あらすじ

・椛谷の次郎(未来社『石見の民話』)
昔、吉賀の椛谷に椛谷の次郎という百姓がいた。次郎は大した力持ちで、人の大勢集まるところへ行ったときには、人が取り違えないように履き物を脱いで柱を抱え上げてその下へ入れておいた。次郎は毎年、津和野の殿さまのところへ山芋を納めることになっていた。あるとき山芋を納めに行くと山芋が折れていたので、役人はこんな折れた山芋は受け取られないと言ってどうしても受け取ってくれない。次郎は仕方ないので遠い道を帰って、掘って折らさない様に気をつけて持っていった。役人は今度は何とも言わないで受け取った。ところが次郎は納めが済んでも役所へ座り込んで、いつまでも帰ろうとしない。役人が変に思って、納めが済んだのにどうして帰らないのかと言った。すると次郎は、この前お役人さまは折れた山芋は受け取られないと言って受け取らせませんでした。殿さまは山芋をあのまま丸呑みにしなさるのだろうから、今日持ってきたのを丸呑みにしなさるのを見ねば帰らないと言った。役人は腹をたてて、大きな縄で次郎をそこの柱へ縛りつけてしまった。次郎は平気な顔をして、せられるままにしていた。役人たちはどうするかと思って見ていると、次郎はもぞもぞと動き出した。そして身体を一ゆすり、一ゆすり、ゆすりあげる度に柱がついて上がって家がぐらぐら動く。次郎はその度に、その周りに脱いであった役人たちの草履や雪駄を柱の下へかき込んだ。役人たちはそれを見ると、慌てて大騒ぎしはじめた。殿さまは次郎の力の強いのに感心して、もうよい。早く縄を解いてやれと言った。次郎はあるとき女竹のいっぱい茂った藪を畠にしようと思って女竹を片っ端から根ごと引き抜いていった。女竹は根が互いに繋がっていて、鍬で掘ってもなかなか掘り上げるのが大変なものだが、次郎は力が強いのでどんどん手で引き抜いた。そうして立派な畠が出来上がった。次郎は畠へ種子を播いたが、作物はさっぱり出来なかった。底の苦土が畠いっぱいに散らばったからであった。


・椛谷次郎の山芋納め(ハーベスト出版『夕陽を招く長者』)
昔、椛谷が津和野藩に属していた頃、津和野藩の年貢の取り立ては厳しかった。ある年も特産の山芋を年貢として納めるよう達しが来た。百姓の次郎も山芋を担いで出かけたが椛谷から津和野まで二里ほどある。山道は山芋があちこちの草木に当たって歩きにくい。どうせ食べるときは細かく切るんだからと次郎は山芋を皆半分に折って代官所へ持っていった。役人が見せろと言うので見せると皆折ってあった。これではいけないと役人が言うと、次郎はそれならば殿さまが芋を長いまま食べるのを見るまで帰らないと言い出した。怒った役人たちは次郎を捕らえて大黒柱に縛り付けた。しばらくして次郎が帰りたいと言い出したので、そのまま帰れるなら帰ってよいと答えると、次郎は脚を真っすぐ伸ばして立ちあがった。天井から瓦や木が落ち始めた。家を壊されてはたまらないと思った役人たちは次郎を解放した。次郎は婆が家を普請しなければと言うから背負って帰れたのにと言ったので、役人たちは人をからかうのもいい加減にしろと言った。

・力もちの椛谷次郎(偕成社『島根県の民話』)
百八十年ほど前、椛谷の里に次郎という力持ちの男がいた。椛谷の里は椛谷川が作ったわずかな谷あいにある。土地はあまり肥えていない。油断すると実りかけた稲は野ウサギや鹿に食べられてしまう。里人も困っていた。ある年の秋、普段よりも多くのスズメが沸いて田んぼの稲を食い荒らした。追い払ってもきりが無い。困った里人たちは次郎に相談した。二つ返事で引き受けた次郎は夜こっそり稲田に忍び寄るとぐっすり眠っているスズメめがけて大岩を片っ端から投げ込んだ。あくる朝、里人たちは稲が岩に押しつぶされているのを見て驚いた。次郎は天狗の仕業だろう、脅しになるからこのままの方がいいと笑った。椛谷の田んぼには岩があちこちにあるが、このときのものだと言われている。椛谷は津和野藩の領地だった。椛谷では米があまり取れなかったので山芋も年貢として納めることになっていた。年貢にする山芋は折ったり傷つけたりしてはいけない決まりだ。山芋は地面深く生えていて折れやすく、運ぶときも注意しなければならない。次郎も苦労して年貢分の山芋を掘り上げた。箱に入れて帰ろうとすると、二、三本が折れてしまった。しまったと思った次郎だったが、こうなればと山芋を全部折って津和野へ出かけた。次郎が持ち込んだ山芋をみて役人が全部折れているではないかと咎めると、次郎は長いままでは食べにくかろうと折ってきた。殿さまが長いまま食べるなら見せてもらいたいと答えた。怒った役人は次郎を捕らえ屋敷の大きな柱に縛り付けてしまった。次郎はそのまま高いびきで眠ってしまった。夕方、目覚めた次郎が帰りたいと言ったので役人が帰りたければそのまま帰れと答えると、次郎は立ち上がった。柱は揺れるし壁の土は落ちるしでこのままでは屋敷が壊れると役人たちは慌てて縄をほどいた。次郎はこのまま屋敷をおんぶして自分の家にしようと思ったのにと笑った。


・椛谷次郎の山芋納め(角川書店『出雲・石見の伝説』)
柿木の一角に椛谷次郎が生い立った椛谷の里がある。椛谷次郎はおどけ者で力持ちで人情味のある男だった。椛谷の大榎は椛谷次郎の墓印と言い伝えている。村には次郎が雀を追い払うときに投げたという大岩が残されている。この辺りは津和野藩に属していた。ある日、次郎は津和野の祭り見物に出かけた。次郎が帰ろうとすると空が急に曇って雨が落ちてきた。ちょうど傘屋があって「傘を差せば濡れない」と言われたので次郎は傘を買って腰に差した。土砂降りの雨は止んだが、次郎は全身ずぶ濡れとなってしまった。怒った次郎は傘屋に怒鳴り込んだ。傘屋に傘は腰に差すものではなく広げて差すものだと返された次郎は傘を広げて雨よ降れと青空を睨んだ。柿木は山村で、村人は川べりのわずかな田で米を作っていた。年貢は米だけでは足りないので山芋も課せられていた。山芋は折れやすくて検査も厳しく、折れた山芋を納めたら過料が課せられた。次郎は長いと邪魔だからと山芋を半分に切ってしまった。そして半分に切ってはいけないとは言われていないと言った。次郎が半分に切った山芋を納めると検分した役人がこの山芋は殿さまが召し上がるものだと怒ったので、次郎は殿さまは長いまま食べるのか、それなら見たいものだと答えた。無礼を働いた次郎を役人たちは柱に縛りつけてしまった。しばらくして次郎が帰りたいと言ったので、役人は帰れるなら帰れと答えた。次郎が立ち上がると、柱がみしみしといい、壁が裂けた。次郎は天井ごと持ち上げてしまった。役人たちが慌てて縄を解くと、次郎は嬶が家を普請せねばと言ったので持って帰ろうと思ったのにと言い、これで山芋は上納済みだと言って代官所を出ていった。それから椛谷には山芋納めは申しつけられなくなった。


◆コーディングルール

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

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

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

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

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

*椛谷
'椛谷'
*履き物
履き物 or 草履 or 雪駄
*柱
柱 or '大黒柱'
*納める
納める or 上納
*丸呑み
丸呑み or ( 長い and まま and 食べる )
*屋敷
屋敷 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コンコーダンスでキーワード指定すれば指定したキーワードがどのような文脈で用いられているか一覧で抽出される。

KWICコンコーダンス

KWICコンコーダンス・文書表示
◆関連語検索

・[集計単位]を[文]に変更、[集計]する。

関連語検索

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

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

関連語検索

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

◆属性の転倒

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

N 抽出語 品詞 全体 共起 Jaccard
1 言う 動詞  17 (0.202)  9 (0.429) 0.3103
2 山芋 名詞  20 (0.238)  9 (0.429) 0.2813
3 役人 名詞  21 (0.250)  7 (0.333) 0.2
4 納める 動詞  9 (0.107)  5 (0.238) 0.2
5 帰る 動詞  11 (0.131)  5 (0.238) 0.1852
6 折れる 動詞  6 (0.071)  4 (0.190) 0.1739
7 受け取る 動詞  3 (0.036)  3 (0.143) 0.1429
8 年貢 名詞  6 (0.071)  3 (0.143) 0.125

椛谷が年貢として納める山芋は折れないよう掘るのが大変だった。苦労して掘った山芋を次郎は運ぶのが面倒だと折ってしまう。折れた山芋を役人は受領しようとしない。次郎が折れてない山芋を納めるとようやく受領する。が、次郎の反抗で以後申し付けられなくなる。

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

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

・[次郎|山芋:折れていない/折れた]
・[役人|山芋:受領せず/受領]

こういった風にお話を転がしていると分析できる。「折れた/折れない」でひと悶着起こす次郎の役人をも怖れぬ胆力が示されている。

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

◆類似度行列

・[コーディング単位]を[文]に変更して[集計]。

類似度行列

Jaccard係数がマトリクス形式で確認できる。

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

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

◆多次元尺度構成法

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

多次元尺度構成法

「年貢」がやや高い位置にプロットされているか。

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

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

◆自己組織化マップ

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

自己組織化マップ

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

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

◆トピックの推定

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

トピックの推定

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

トピックの推定・文書表示

◆ベイズ学習による分類

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

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

ベイズ学習による分類

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

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

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

◆参考文献
・『日本の民話 34 石見篇』(大庭良美/編, 未来社, 1978)pp.399-401.
・『夕陽を招く長者 山陰民話語り部シリーズ1』(民話の会「石見」/編, ハーベスト出版, 2013)pp.32-34.
・『島根県の民話 やまたのおろちほか』(日本児童文学者協会/編, 偕成社, 2000)pp.181-186.
・『出雲・石見の伝説 日本の伝説48』(酒井董美, 萩坂昇, 角川書店, 1980)pp.217-224.
・『動かして学ぶ!はじめてのテキストマイニング』(樋口耕一, ナカニシヤ出版, 2022)
・『社会調査のための計量テキスト分析 【第2版】 内容分析の継承と発展を目指して』(樋口耕一, ナカニシヤ出版, 2020)

|

« 昔話の計量テキスト分析――邯鄲夢の枕 | トップページ | 昔話の計量テキスト分析――琴姫 »

昔話」カテゴリの記事