« 昔話の計量テキスト分析――舌切雀 | トップページ | 昔話の計量テキスト分析――皿皿山 »

2026年4月 6日 (月)

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

◆はじめに

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

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

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

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

◆ファイル

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

ダウンロード - ca_pb_028_tanabe.xlsx

ダウンロード - ca_pb_028_codingrules.txt

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

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

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

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

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

◆あらすじ

・「吉田の田部」(未来社『石見の民話』)
吉田の田部の先祖は綿売りで綿屋と言っていた。ところが綿売りで失敗したので吉田には帰らず、大阪へ出た。住吉さまに参詣したが、賽銭をあげようとすると一両小判が一枚あるだけである。そこで初めてのことだからと小判を賽銭箱に投げ入れた。懐には一文もなくなった。ところが、そこに旦那が二人参っていて、田部が一両小判を投げるのを見て驚いた。商人らしいが並みの者ではないと感心した。それは鴻池の旦那が番頭を連れて来ていたのだった。鴻池の旦那は番頭に言って田部に今晩自宅に泊まって貰うよう頼んだ。田部は泊まることにした。田部は山や田畑の売り込みにくるのを見ては毎日ぶらぶらしていた。田部は旦那の碁打ちの相手もした。田部は碁が強く、旦那はやはり並みの者でないとますます田部に惚れ込んだ。ある日、七里四方の山を買う話が持ち上がった。旦那が番頭に入札に行かせた。大抵の場合なら取って戻れとの指示であった。田部は旦那があれほど欲しがっているからにはきっと儲かる。ここだと思って自分も同道することにした。入札したところ田部に落札した。番頭が雲州の客に落札したと報告した。旦那は雲州の客ならよいと答えた。帰る気になった田部は引き留められたが吉田へ帰った。帰りの旅費は旦那が出してくれた。大きな買い物をした田部は吉田へ戻ってきた。そして吉田の家々に少しずつ金を分けてやって家にも土蔵にも提灯にも綿印を入れさせた。七里四方の山を買った田部は大勢の木こりを入れて山稼ぎを始めた。月日が流れて三年経った。鴻池ではあれから三年になるが金を送ってこぬし便りもない。一つ様子を見てこいと番頭が旦那の命を受けて吉田へやって来た。見ると村中綿印なので驚いて、こんな大家に金の請求をすれば鴻池の恥になると何も言わずに帰って旦那に報告した。旦那も番頭を褒めた。それから十年稼いで田部は大金を儲け、鴻池に返した。こうして田部家は今日の様に栄えた。


・「大歳の火」(未来社『石見の民話』)
昔、出雲に長者の家があった。大歳の晩になった。この晩には昔から火を絶やしてはいけないことになっているので、下女や下男の中から一番年下の女中に火の番を命じて他の者は寝てしまった。女中は一生懸命寝ないようにして火の番をしていたが、昼間の疲れで眠たくなってうとうとしてしまった。気がつくと囲炉裏の火はすっかり消えていた。大切な大歳の火を消したことが分かったら大変だ。驚いた女中が辺りを見回すと向こうの山に火が見えた。女中は度胸がよいので夜中の真っ暗な中を独りその火のところへ歩いて行った。火を目当てに山の上へ登っていると、髪の真っ白な老人が一人で火を焚いていた。火をくれるように女中が頼むと、死んだ人と一緒ならあげると老人は言った。見ると火のほとりに亡者が横にしてあった。亡者と一緒でもいいから下さいと言って女中は火をもらい、亡者を背に引っかけて帰ってきた。そして亡者は庭先へ寝かせてむしろを掛けておいて火を焚きつけ夜が明けるまで一生懸命火の番をした。夜明けになって皆が起きてきた。番頭が女中をよく番をしたと褒めた。その内に皆が庭先にむしろの掛けてあるのを見つけて、これは何だろうという話になった。女中がそれを今めくってはいけないと言ったが、番頭が何気なしにめくると中からざあっと小判が出た。皆、びっくりした。それで女中が昨夜の話をすると旦那が出てきて、白髪の老人とは金の神さまだ。女中があまりに度胸がいいので今の通りになったのだろうと言った。そして女中を若旦那の奥さんにした。


・「いりこ屋才助」(ハーベスト出版『夕陽を招く長者』)
昔、いりこ屋才助という貧しい男がいた。その日いりこを仕入れて売ってその日の暮らしを立てていた。ある日、いりこを売って戻っていたら、ちょうどそのときえいちょう山で弘法様の御堂が建つという寄付を募っていた。なんでもこれは弘法様に寄付しようと思って、その日に売ったいりこの代金を全部弘法様に上げてしまった。そうしたらあくる日は金が無いから借りないといけない。前の日の代金を全部寄付してしまったから一文無しで、あくる日は問屋から借りて出て売った。そして、才助が住んでいる所は家といっても小さな小屋をかけて、それに藁むしろを敷いて寝起きしていた。ところが、あの寄付が寄付頭だった。いりこ屋才助の出した寄付が一番大きかった。そこで鴻池の旦那がそのいりこ屋才助という者は余程の分限者に違いない。どうしても家の婿に貰いたいということになった。それから鴻池の旦那がお前の身代はどれくらいあるかと問うた。九文九銭もないと言った。それを鴻池の旦那が九万九千の財産と聞いた。それはいい塩梅だ。家の娘を嫁に貰ってくれと言って、その娘を貰わないといけなくなった。ところが、貰っても置く所が無い。村はずれに大きな建ち前の普請が成っていたが、幽霊が出るといって誰も入り手が無かったという。その家を借りて祝言した。祝言したが、幽霊が出るというし寂しいから女房を一人寝かせておいて才助は自分の小屋に戻ってむしろの上で寝ていた。毎晩そうするので嫁がなぜ毎晩出るのかと問うた。この集落に色々お世話になったからお礼に回るのだと答えると納得したが、それでは寝間の金の始末をしてから出なさい。素晴らしい金があって人に取られてもいけないからと嫁が言った。そうしたら、本当に寝間の中に小判が山のようにあった。九万九千あったという。幽霊ではなくて金の神だった。それで惜しまずに寄付するところへしっかり寄付した方がいい。あとたりがあると聞いている。


◆コーディングルール

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

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

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

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

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

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

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


*欲深い
欲 and 深い
*雀
雀 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コンコーダンス・文書表示

◆関連語検索

・[集計単位]を[文]に変更、[集計]する。
・[Search Entry:]の一覧からキーワードを選択してダブルクリックすると[Result]に指定したキーワードの品詞や共起関係が表示される。

関連語検索

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

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

関連語検索

◆属性の転倒

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

N 抽出語 品詞 全体 共起 Jaccard
1 名詞C  8 (0.098)  4 (0.308) 0.2353
2 言う 動詞  10 (0.122)  4 (0.308) 0.2105
3 並み 名詞  2 (0.024)  2 (0.154) 0.1538
4 女中 名詞  11 (0.134)  3 (0.231) 0.1429
5 名詞C  3 (0.037)  2 (0.154) 0.1429
6 火の番 名詞  3 (0.037)  2 (0.154) 0.1429
7 寝る 動詞  3 (0.037)  2 (0.154) 0.1429
8 未知語  1 (0.012)  1 (0.077) 0.0769
9 違い ナイ形容  1 (0.012)  1 (0.077) 0.0769
10 一文 名詞  1 (0.012)  1 (0.077) 0.0769

・「ぬ」の結果上位一覧

N 抽出語 品詞 全体 共起 Jaccard
1 帰る 動詞  4 (0.049)  2 (0.500) 0.3333
2 鴻池 地名  1 (0.012)  1 (0.250) 0.25
3 失敗 サ変名詞  1 (0.012)  1 (0.250) 0.25
4 請求 サ変名詞  1 (0.012)  1 (0.250) 0.25
5 惜しむ 動詞  1 (0.012)  1 (0.250) 0.25
6 送る 動詞  1 (0.012)  1 (0.250) 0.25
7 大家 名詞  1 (0.012)  1 (0.250) 0.25
8 大阪 地名  1 (0.012)  1 (0.250) 0.25
9 名詞C  1 (0.012)  1 (0.250) 0.25

吉田の田部は小判を賽銭とすることで一文無しとなるが、その大胆な行動が鴻池の旦那の目にとまり、開運する……といった粗筋となっている。

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

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

・[田部|金:借りた/返済]
・[女中|火:消える/灯る]
・[女中|度胸:亡者/金]
・[才助|寄付:一文無し/婿入り]

こういった風にお話を転がしていると分析できる。思い切った行動に出たところ、「難局/開運」へと転倒、置かれた状況が好転するといった形となっている。

◆類似度行列

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

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

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

◆多次元尺度構成法

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

多次元尺度構成法

田部が鴻池から借りた金を返済するくだりに関連したキーワードを指定したところ、「山」「家」が離れた位置にプロットされた。

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

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

◆自己組織化マップ

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

自己組織化マップ

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

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

◆トピックの推定

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

トピックの推定

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

トピックの推定

◆ベイズ学習による分類

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

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

ベイズ学習による分類

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

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

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

◆参考文献
・『日本の民話 34 石見篇』(大庭良美/編, 未来社, 1978)pp.65-68, pp.116-118.
・「夕陽を招く長者 山陰民話語り部シリーズ1」(民話の会「石見」/編, ハーベスト出版, 2013)pp.170-172.
・『動かして学ぶ!はじめてのテキストマイニング』(樋口耕一, ナカニシヤ出版, 2022)
・『社会調査のための計量テキスト分析 【第2版】 内容分析の継承と発展を目指して』(樋口耕一, ナカニシヤ出版, 2020)

|

« 昔話の計量テキスト分析――舌切雀 | トップページ | 昔話の計量テキスト分析――皿皿山 »

昔話」カテゴリの記事