昔話の計量テキスト分析――嫁と姑
◆はじめに
以下はKH Coder(無償版:version 3.Beta.08e)を用いた昔話の計量テキスト分析である。昔話の類話の比較にツールを利用できないか試行してみた。
手持ちの資料が限られるため、分析の対象となる元データの文字数が少ないものの(※本来であれば5000字以上は欲しい)、分析自体は正常に処理されていると判断した。
KH Coderの操作に慣れる目的も兼ねて行った作業で、コーディングルールの記述の事例集、あるいは速習用のチュートリアルとしてでも読んで頂ければ……といったところである。
なお、KH Coderでよく用いられるのは共起ネットワークと対応分析とのことで、それ以外はおまけパートと思って頂いて構わない。操作に習熟するにはコーディングルールの記述に慣れるのが第一である。
◆ファイル
各ファイルをダウンロードしてKH Coderに読み込ませれば同様の分析が再現可能である。
ダウンロード - ca_027_yometoshutome.xlsx
ダウンロード - ca_027_codingrules.txt
ダウンロード - ca_027_codingrules_b.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 なくなる
*仲
仲
*嫁
嫁
*前
前
*後
後
*中日
中日
*喧嘩
喧嘩
*彼岸
彼岸
*針
針
*知る
知る
*見る
見る
*殺す
殺す
*蝉
蝉
*壺
壺
*田
田
*蛙
蛙
*食べる
食べる
*後悔
後悔
*医者
医者
*薬
薬
*男
男
*つける
つける
*参る
参る
*竹藪
竹藪
*鬼
鬼
*面
面
*お経
お経
*法話
法話
*取れる
取れる
*落ちる
落ちる
*暮らす
暮らす
◆共起ネットワーク
・[ツール]→[コーディング]→[共起ネットワーク]でオプション画面が表示される。
・[コーディング単位]を[H5]に設定する。
※[描画する共起関係(edge)の選択]で「係数」を「0.2」から「0.3」に修正する。
※[強い共起関係ほど濃い線に]にチェックを入れる。
Jaccard係数が0.3以上はかなり強い共起関係にあることを示しているが、分析対象となる元データの文字数が少ないため係数が高めに出てしまう傾向にあるため、こうしている。
※Jaccard係数は共起関係(※ある言葉に続いて出てくる関係)の強さを表し 0≦係数≦1 の範囲の値をとる。
【Jaccard係数】
・0.1 →関連あり
・0.2 →強い関連あり
・0.3以上 →とても強い関連あり
※ただし、あくまで目安であって絶対ではない。
ざっと確認したところ、共通するキーワードが中央のサブグラフ(バブルが島状に集まった一塊)に表示され、類話毎に異なるキーワードが上下のサブグラフに表示される形となっている。
※なお、各バブル間の距離や配置に意味はない。
◆対応分析
・[ツール]→[コーディング]→[対応分析]でオプション画面が表示される。
・[コーディング単位]を[H5]に設定する。
※[外部変数]は[タイトル]のまま続行。
※[差異が顕著なコードを分析に使用]で上位「50」とした。また[バブルプロット]にチェックを入れている。これらは文字の重なりを極力避けるためである。
※文字が重なって読みづらい場合、オプション画面の[コード選択]で不要なコードのチェックを外してもよい。
x、y軸上の原点(0.0)から点線が伸び交差した箇所が原点となる。原点から離れるほど特徴的なキーワードだと分析される。
原点直下には「嫁」「姑」といったキーワードがプロットされている。近くには「彼岸」では「ひがん」「ひいがん」「中日」、「蛙壺」では「おはぎ」「蛙」「壺」といったキーワードがプロットされている。離れた位置にプロットされているのは「みんみん蝉」より「蝉」「針」「みん」、「肉付きの面」より「鬼」「面」「落ちる」、「嫁と姑」では「毒」「医者」「薬」といった辺りである。
◆解釈
嫁と姑の不仲にまつわる類話である。和解する話が多いものの、「みんみん蝉」の様に嫁を責め殺してしまう話もある。
◆階層的クラスター分析
・[ツール]→[コーディング]→[階層的クラスター分析]でオプション画面が表示される。
・[コーディング単位]を[文]に変更、実行するとデンドログラム(樹状図)で可視化される。
※キーワード指定しても可。
概ねストーリー展開に沿った形でクラスター化されている。
◆クロス集計
・[コーディング単位]を[文]に変更、[タイトル]で[集計]する。
クロス集計をかけたところ、「毒」「ひいがん」「おはぎ」といったキーワードでカイ(χ)2乗値で相関関係を示す結果(※マーク)が得られた。
マップとして描画したところ、「蛙」「食べる」「医者」「薬」といったキーワードの残差が大きく(濃く)表示される結果となった。バブルとしては「姑」「嫁」が大きく描画された。
◆KWICコンコーダンス
現状ではテキストマイニングのツールに文脈を読む性能はないため実際に該当箇所を読んで人力で判断する他ない。KWICコンコーダンスでキーワード指定すれば指定したキーワードがどのような文脈で用いられているか一覧で抽出される。
◆関連語検索
・[集計単位]を[文]に変更、[集計]する。
・[Search Entry:]の一覧からキーワードを選択してダブルクリックすると[Result]に指定したキーワードの品詞や共起関係が表示される。
※[Result:]から行指定してダブルクリックするとKWICコンコーダンスに遷移する。
※[Result:]の一覧から範囲指定して[コピー]したものを表計算ソフトやテキストファイルにペーストすることも可能である。
[#直接入力]を指定して「南無阿弥陀仏」といったキーワードで検索すると関連語が一覧で表示される。
◆属性の転倒
・「ない」の結果上位一覧
| N | 抽出語 | 品詞 | 全体 | 共起 | Jaccard |
| 1 | 言う | 動詞 | 16 (0.302) | 4 (0.333) | 0.1667 |
| 2 | 知る | 動詞 | 2 (0.038) | 2 (0.167) | 0.1667 |
| 3 | 薬 | 名詞C | 5 (0.094) | 2 (0.167) | 0.1333 |
| 4 | つかみ合う | 動詞 | 1 (0.019) | 1 (0.083) | 0.0833 |
| 5 | 安心 | サ変名詞 | 1 (0.019) | 1 (0.083) | 0.0833 |
| 6 | 会う | 動詞 | 1 (0.019) | 1 (0.083) | 0.0833 |
| 7 | 怪しむ | 動詞 | 1 (0.019) | 1 (0.083) | 0.0833 |
| 8 | 懇ろ | 形容動詞 | 1 (0.019) | 1 (0.083) | 0.0833 |
| 9 | 取れる | 動詞 | 1 (0.019) | 1 (0.083) | 0.0833 |
| 10 | 蹴る | 動詞 | 1 (0.019) | 1 (0.083) | 0.0833 |
・「ぬ」の結果上位一覧
| N | 抽出語 | 品詞 | 全体 | 共起 | Jaccard |
| 1 | 恥ずかしい | 形容詞 | 2 (0.038) | 2 (0.500) | 0.5 |
| 2 | 下 | 名詞C | 1 (0.019) | 1 (0.250) | 0.25 |
| 3 | 会う | 動詞 | 1 (0.019) | 1 (0.250) | 0.25 |
| 4 | 怪しむ | 動詞 | 1 (0.019) | 1 (0.250) | 0.25 |
| 5 | 勘弁 | サ変名詞 | 1 (0.019) | 1 (0.250) | 0.25 |
| 6 | 起き上がれる | 動詞 | 1 (0.019) | 1 (0.250) | 0.25 |
| 7 | 経 | 名詞C | 1 (0.019) | 1 (0.250) | 0.25 |
| 8 | 寺 | 名詞C | 1 (0.019) | 1 (0.250) | 0.25 |
| 9 | 垂れる | 動詞 | 1 (0.019) | 1 (0.250) | 0.25 |
| 10 | 断る | 動詞 | 1 (0.019) | 1 (0.250) | 0.25 |
不仲な嫁と姑が色々あった挙げ句に和解する……といった粗筋となっている。
短いお話の中で属性の転倒を多用するのが昔話の特徴の一つと考えられる。
ここで「/」(スラッシュ)を「転倒」を意味する記号として用いる。スラッシュは様々な場面で用いられていて文脈依存的な記号という欠点もあるが、視覚的にはイメージしやすいと判断した。
・[和尚|嫁姑:不仲/仲裁]
・[姑|嫁:殺す/蝉]
・[嫁|壺:おはぎ/蛙]
・[医者|嫁:毒/薬]
・[姑|面:外れない/外れる]
こういった風にお話を転がしていると分析できる。全般的に嫁と姑は「不仲/和解」と転倒する。
※なお、図式化には分析対象のテキストに含まれない語句も用いているので要注意。
※関連語検索、強制抽出語を設定しないと狙い通りに処理されないケースが見られる。
◆類似度行列
・[コーディング単位]を[文]に変更して[集計]。Jaccard係数がマトリクス形式で確認できる。
・ある列を選択して画面右下の[コピー(選択列)]をクリックすると、当該のキーワードに関するJaccard係数がコピーされるので、それを表計算ソフトにペーストするといった利用が可能となる。
※当ブログでは[コーディング単位]が[段落][H5]の場合、Jacccard係数が1.0~0.5といった結果がほとんどで、意味のない結果となった。
◆多次元尺度構成法
・[ツール]→[コーディング]→[多次元尺度構成法]でオプション画面が表示される。
・[コーディング単位]を[H5]から[文]に変更。
・[クリア]ボタンをクリックしてコード選択を一旦リセット、共起関係を確認したいキーワードを指定。
・次元を「2」から「3」に変更して実行、三次元のマップとした。
嫁と姑が和解するきっかけとなるくだりに関するキーワードを指定したところ、「毒」「殺す」が離れた位置にプロットされた。
※選択するキーワードによって相対的な位置関係は変わり得る。
◆自己組織化マップ
・[ツール]→[コーディング]→[自己組織化マップ]でオプション画面が表示される。
・[コーディング単位]は[文]で固定。
記述内容が視覚的に整理され、類似性の高い内容が近くに配置される。概ねストーリーに沿った形で各クラスターが表示される。
※クラスター化の計算を繰り返すため処理に時間がかかるので要注意。
※クラスターの配置、距離に意味はない。
◆トピックの推定
・[ツール]→[文書]→[トピックモデル]→[トピックの推定]を選択。
・[集計単位]は[文]で固定。
・[OK]ボタンをクリックすると、[トピックの推定結果]画面が表示される。
・各トピックで高い確率で出現する語句がリストアップされる。
・[#1]といった欄をクリックすると、文書検索画面が表示される。
◆ベイズ学習による分類
・[ツール]→[文書]→[ベイズ学習による分類]→[外部変数から学習]を選択。
・[分類の単位]を[文]に変更。
・[学習する外部変数]は「利用不可」。
・[OK]ボタンをクリックすると、ファイルの保存画面が表示されるので、任意のファイル名を記述して保存する。
・[ツール]→[文書]→[ベイズ学習による分類]→[学習結果ファイルの内容を確認]を選択。ファイル選択画面が開くので、先ほど保存したファイルを指定して開く。すると[学習結果ファイル]画面が開くので内容の確認を行う。
※[学習結果を用いた自動分類]については割愛する。
※[トピックの推定]と[ベイズ学習による分類]は固有名詞などを強制抽出語としてあらかじめ指定しておかないと正確に分析されないケースが生じる。正式に利用したい際は有償版の購入をお勧めする。当ブログのはあくまでテストケースとしてのものである。
※[トピックの推定]と[ベイズ学習による分類]はコーディング・ルールに依らない分析手法となるが、筆者の能力的に追及はしない。
◆参考文献
・『日本の民話 34 石見篇』(大庭良美/編, 未来社, 1978)pp.71-72, 212, 213-214, 386, 460.
・『動かして学ぶ!はじめてのテキストマイニング』(樋口耕一, ナカニシヤ出版, 2022)
・『社会調査のための計量テキスト分析 【第2版】 内容分析の継承と発展を目指して』(樋口耕一, ナカニシヤ出版, 2020)
| 固定リンク
















































































































































