昔話の計量テキスト分析、中間報告
昔話の計量テキスト分析、出版社別および単話分析まで終えました。単話分析は数例で十分と判断しました。
料理でたとえると下処理、下ごしらえと言いますか、元データとコーディングルールは事前に準備しておいて執筆時に余計なことを考えずに済むようルーチンワークのレベルまで落とし込んでいたつもりだったのですが、実際に取りかかってみると単純作業でも予想外に脳の疲労感が甚だしいです。
ちょうどGWですし、しばらくインターバルをとろうかと考えています。
| 固定リンク
昔話の計量テキスト分析、出版社別および単話分析まで終えました。単話分析は数例で十分と判断しました。
料理でたとえると下処理、下ごしらえと言いますか、元データとコーディングルールは事前に準備しておいて執筆時に余計なことを考えずに済むようルーチンワークのレベルまで落とし込んでいたつもりだったのですが、実際に取りかかってみると単純作業でも予想外に脳の疲労感が甚だしいです。
ちょうどGWですし、しばらくインターバルをとろうかと考えています。
| 固定リンク
◆はじめに
以下はKH Coder(無償版:version 3.Beta.08e)を用いた昔話の計量テキスト分析である。昔話の類話の比較にツールを利用できないか試行してみた。
手持ちの資料が限られるため、分析の対象となる元データの文字数が少ないものの(※本来であれば5000字以上は欲しい)、分析自体は正常に処理されていると判断した。
KH Coderの操作に慣れる目的も兼ねて行った作業で、コーディングルールの記述の事例集、あるいは速習用のチュートリアルとしてでも読んで頂ければ……といったところである。
なお、KH Coderでよく用いられるのは共起ネットワークと対応分析とのことで、それ以外はおまけパートと思って頂いて構わない。操作に習熟するにはコーディングルールの記述に慣れるのが第一である。
◆ファイル
各ファイルをダウンロードしてKH Coderに読み込ませれば同様の分析が再現可能である。
ダウンロード - 048_enkonoichimonsen.txt
ダウンロード - kh_coder_startingedition_sagyotejunsho.txt (※作業手順書)
※「H5」とはHTMLでいうところのヘッダー(見出し)・レベル5で本文に相当すると考えればよい。
※[コーディング単位]は「文/段落/H5」から選べるが、状況に応じて適切と思われるものを選択する必要がある。処理が上手くいかないと感じた場合、コーディング単位を切り替えると上手く処理されるケースがままある。
※公式マニュアルでは「集計単位」という用語が使われている。共起関係について、
・「文」では一文単位での分析
・「段落」では段落単位の分析
・「H5」では表計算ソフトのセル単位とされ、改行を含めた一セルの中身全体が分析単位となる
※レファレンスでも索引で「コーディング単位」の項目は設けられていない。操作性に関わる重要項目であるものの、その仕様について不明瞭な感はある。
※当ブログの場合、表計算ソフトのフォーマットで読み込ませているからH5固定でいいだろうと思い込んでいたら、さにあらずだった。
◆あらすじ
・「えんこうの一文銭」(未来社『石見の民話』)
昔あるところに川の東の岸と西の岸に一軒ずつ家があって、それぞれ爺さんと婆さんが住んでいた。東岸の爺さんは正直者で一匹の猫を飼っていたが貧乏なので十分食べさせることができなかった。ところがある日、竜宮さまがえんこうの一文銭をやるから天井の裏へ下げて祀れとお告げになった。朝起きてみると果たして東岸の爺さんの枕元にえんこうの一文銭がおいてあった。その一文銭を天井の裏に吊すと、これまで貧乏だった東岸の爺さんの家は日増しに身上が良くなった。反対に欲張りな西岸の爺さんの家は次第に身上が悪くなっていった。女はとかく口さがなく東岸の爺さんがえんこうの一文銭を授かってから日ごと身上が良くなったということを西岸の婆さんに話したので、これを聞いた西岸の爺さんは早速東岸の家へ行ってえんこうの一文銭を貸してくれないかと頼んだ。正直者の東岸の爺さんは長い間は貸せられないが一時なら貸してあげようと言って貸した。西岸の爺さんはその一文銭を持って帰って天井裏に吊しておくとその日から身上が次第に盛り返してきた。東岸の家は一文銭を貸した日からまた昔のように目に見えて貧乏になっていった。そこで西岸の爺さんに貸した一文銭を返してくれと催促にいったが、何とか理由をつけてどうしても返さないので、東岸の爺さんは困って戻ってきた。東岸の婆さんは考えあぐねた末に家の飼い猫に一文銭をとって来るようにいいつけた。猫は川が渡れないので困っていると、一匹の犬が来た。犬に訳を話して川を背負って渡してくだされと頼んだので、猫は犬に負われて川を渡ることができた。猫が西岸の家に行ってみると、鼠がいたので猫はすかさずこの鼠を捕って、お前の命を助けてやるから天井裏にある一文銭を取ってこいと頼んだ。鼠は天井裏に上がって一文銭を落として持ってきた。猫はそれを貰って、また犬に川を渡してもらうように頼んだ。犬の背に負われて川の中程まで来たとき、犬がくわえた物を落とすなよと言ったので猫はハイと返事した。その調子で一文銭が水の中へ落ちた。猫は泣かんばかりになって思案した。そうしたら空から一羽の鳶が下りて来たので猫は鳶を狙って咥えた。そして命を助けてやるからこの川に落ちた一文銭を探してこいと頼んだ。鳶は川の底にあるものは見えないので、川の上を泳いでいた鵜を咥えて、お前は水の底にいる鮎でも捕るのだから水の底に落ちた一文銭を拾ってくれと頼んだ。そこで鵜は川の端を上下したがちっとも見えないので大きな鮎を咥えてお前の命をとるのではない。この川に落ちているえんこうの一文銭を取ってくれ。お前は水の底を歩いて蟹とえびでさえ餌にするくらい水の底のことは達者だからと頼んだ。鮎は水の底を泳いでいくと果たしてえんこうの一文銭があった。それを拾い上げて鵜に渡した。鵜はそれを鳶に渡して鳶はそれを猫に渡した。猫はとうとう水の底から一文銭を拾い上げることができたので、喜んで歌にうたった。「猫に鼠に空たつ鳶に 川で鵜の鳥、鮎の魚」。犬は川を渡してくれたが大切な一文銭を水の中に落とすようなことをさせたので、この歌の仲間に入れていないそうだ。猫はえんこうの一文銭を持って帰って爺さんに渡したので東岸の家はまた次第に身上がよくなった。
◆コーディングルール
※コーディングルールのキーワードは重要と判断したものを人力でピックアップしている。そのため、恣意性を伴う分析となる。
※活用形でなく基本形で入力する。
※[前処理]→[語の抽出結果を確認]でキーワードがどのように分節されているか検索すると結果の一覧[語の抽出結果]が表示される。
※[Result]から確認したい行をクリックして選択、画面下の[詳細表示]ボタンをクリックするとサブ画面が表示され、活用形や基本形が確認できる。
※昔話では「否定/肯定」「肯定/否定」と属性が変化することが多いと考え、否定詞「ない」「まい」「ぬ」「ん」、また禁止を意味する「な」を共通のコードとして設定している。
※[関連語検索]で否定詞の共起語の一覧を表示させたところ、日本の昔話のように掌編レベルのボリュームだと、物語の動因となる箇所に関する語句が上位に表示される傾向が強いのではないか……といった印象があり、検証作業中である。
※無償版では強制抽出語の指定が機能制限で事実上使用できないため以下のような手法をとっている。
*東岸一家
'東岸の爺さん' or '東岸の婆さん'
*西岸一家
'西岸の爺さん' or '西岸の婆さん'
*えんこう
'えんこう'
*猫
猫 or 飼い猫
*川
川 or 水
*一文銭
'一文銭'
*天井裏
'天井の裏' or '天井裏'
*祀る
祀る or 吊るす
*返さない
返す and ない
*とる
とる or 取る or 拾う
*捕る
捕る or 咥える
*良い
良い or 上がる
*ない
ない
*ぬ
ぬ
*ん
ん
*るな
'るな'
*なよ
'なよ'
*るまい
'るまい'
*東
東
*西
西
*岸
岸
*家
家
*正直
正直
*貧乏
貧乏
*竜宮
竜宮
*お告げ
お告げ
*身上
身上
*悪い
悪い
*女
女
*口さがない
口さがない
*話す
話す
*貸す
貸す
*催促
催促
*いいつける
いいつける
*渡る
渡る
*犬
犬
*鼠
鼠
*返事
返事
*落とす
落とす
*鳶
鳶
*鵜
鵜
*底
底
*鮎
鮎
*命
命
*渡す
渡す
*歌
歌
◆共起ネットワーク
・[コーディング単位]は[文]で固定となる。
※[強い共起関係ほど濃い線に]にチェックを入れる。
Jaccard係数が0.3以上はかなり強い共起関係にあることを示しているが、分析対象となる元データの文字数が少ないため係数が高めに出てしまう傾向にあるため、こうしている。
※Jaccard係数は共起関係(※ある言葉に続いて出てくる関係)の強さを表し 0≦係数≦1 の範囲の値をとる。
【Jaccard係数】
・0.1 →関連あり
・0.2 →強い関連あり
・0.3以上 →とても強い関連あり
※ただし、あくまで目安であって絶対ではない。
ざっと確認したところ、頻出するキーワードが中央のサブグラフ(バブルが島状に集まった一塊)に表示されている。概ねストーリーの展開に沿った形となっている。
※なお、各バブル間の距離や配置に意味はない。
◆対応分析
・[コーディング単位]を[文]に設定する。
・[コード×文書 集計単位:]を[文]に設定する。
※[バブルプロット]にチェックを入れている。これらは文字の重なりを極力避けるためである。
※文字が重なって読みづらい場合、オプション画面の[コード選択]で不要なコードのチェックを外してもよい。
x、y軸上の原点(0.0)から点線が伸び交差した箇所が原点となる。原点から離れるほど特徴的なキーワードだと分析される。
原点付近には「一文銭」「とる」「ない」といったキーワードがプロットされている。単話分析の場合、原点に近い方が頻度が高くむしろ重視すべきかもしれない。一方、「竜宮」「祀る」「お告げ」は離れた位置にプロットされており、特徴的なキーワードとされている。
◆解釈
一文銭を巡るお話なので「一文銭」が中心にプロットされる形となっている。
◆階層的クラスター分析
・[コーディング単位]は[文]で固定。実行するとデンドログラム(樹状図)で可視化される。
※キーワード指定しても可。
概ねストーリーに沿った内容でクラスター化されている。
◆クロス集計
・単話分析ではクロス集計は「利用不可」となる。
◆KWICコンコーダンス
現状ではテキストマイニングのツールに文脈を読む性能はないため実際に該当箇所を読んで人力で判断する他ない。KWICコンコーダンスでキーワード指定すれば指定したキーワードがどのような文脈で用いられているか一覧で抽出される。
◆関連語検索
・[集計単位]を[文]に変更、[集計]する。
・[Search Entry:]の一覧からキーワードを選択してダブルクリックすると[Result]に指定したキーワードの品詞や共起関係が表示される。
※[Result:]から行指定してダブルクリックするとKWICコンコーダンスに遷移する。
※[Result:]の一覧から範囲指定して[コピー]したものを表計算ソフトやテキストファイルにペーストすることも可能である。
[#直接入力]を指定して「泳ぐ」といったキーワードで検索すると関連語が一覧で表示される。
◆属性の転倒
・「ない」の結果上位一覧
| N | 抽出語 | 品詞 | 全体 | 共起 | Jaccard |
| 1 | 貸す | 動詞 | 4 (0.121) | 3 (0.375) | 0.3333 |
| 2 | 東岸 | 地名 | 9 (0.273) | 4 (0.500) | 0.3077 |
| 3 | 爺さん | 名詞 | 10 (0.303) | 4 (0.500) | 0.2857 |
| 4 | 川 | 名詞C | 11 (0.333) | 4 (0.500) | 0.2667 |
| 5 | 困る | 動詞 | 2 (0.061) | 2 (0.250) | 0.25 |
| 6 | 正直 | 形容動詞 | 2 (0.061) | 2 (0.250) | 0.25 |
| 7 | 見える | 動詞 | 3 (0.091) | 2 (0.250) | 0.2222 |
| 8 | 咥 | 未知語 | 3 (0.091) | 2 (0.250) | 0.2222 |
| 9 | 鮎 | 名詞C | 4 (0.121) | 2 (0.250) | 0.2 |
| 10 | 鵜 | 名詞C | 5 (0.152) | 2 (0.250) | 0.1818 |
| 11 | 犬 | 名詞C | 5 (0.152) | 2 (0.250) | 0.1818 |
| 12 | 西岸 | 名詞 | 5 (0.152) | 2 (0.250) | 0.1818 |
・「なよ」の結果上位一覧
| N | 抽出語 | 品詞 | 全体 | 共起 | Jaccard |
| 1 | ハイ | 名詞 | 1 (0.030) | 1 (1.000) | 1 |
| 2 | 中程 | 名詞 | 1 (0.030) | 1 (1.000) | 1 |
| 3 | 背 | 名詞C | 1 (0.030) | 1 (1.000) | 1 |
| 4 | 返事 | サ変名詞 | 1 (0.030) | 1 (1.000) | 1 |
| 5 | 言う | 動詞 | 2 (0.061) | 1 (1.000) | 0.5 |
| 6 | 負う | 動詞 | 2 (0.061) | 1 (1.000) | 0.5 |
| 7 | 来る | 動詞 | 2 (0.061) | 1 (1.000) | 0.5 |
| 8 | 落とす | 動詞 | 3 (0.091) | 1 (1.000) | 0.3333 |
| 9 | 犬 | 名詞C | 5 (0.152) | 1 (1.000) | 0.2 |
| 10 | 川 | 名詞C | 11 (0.333) | 1 (1.000) |
0.0909 |
身上の上向く一文銭を貸したところ返そうとしないため、猫を派遣する……といった粗筋となっている。
短いお話の中で属性の転倒を多用するのが昔話の特徴の一つと考えられる。
ここで「/」(スラッシュ)を「転倒」を意味する記号として用いる。スラッシュは様々な場面で用いられていて文脈依存的な記号という欠点もあるが、視覚的にはイメージしやすいと判断した。
・[東岸の爺さん|一文銭:貧乏/裕福]
・[猫|一文銭:落とす/拾う]
こういった風にお話を転がしていると分析できる。
猫が一文銭「落とす/拾う」と転倒することで動物たちのリレーがはじまる。
◆類似度行列
・[コーディング単位]は[文]は固定。[集計]をクリックするとJaccard係数がマトリクス形式で確認できる。
・ある列を選択して画面右下の[コピー(選択列)]をクリックすると、当該のキーワードに関するJaccard係数がコピーされるので、それを表計算ソフトにペーストするといった利用が可能となる。
◆多次元尺度構成法
・[コーディング単位]は[文]で固定。
・共起関係を確認したいキーワードを指定。
・次元を「2」から「3」に変更して実行、三次元のマップとした。
猫が犬の背に乗って川を渡るくだりに関連したキーワードを指定したところ、「渡る」が離れた位置にプロットされた。
※選択するキーワードによって相対的な位置関係は変わり得る。
※実行すると指定したキーワードの幾つかが除外されるとメッセージが表示される。テキストのボリューム不足のためか無償版の仕様によるものか判断がつかない。
◆自己組織化マップ
[コーディング単位]は[文]で固定。
記述内容が視覚的に整理され、類似性の高い内容が近くに配置される。概ねストーリーに沿った形で各クラスターが表示される。
※クラスター化の計算を繰り返すため処理に時間がかかるので要注意。
※クラスターの配置、距離に意味はない。
◆トピックの推定
・[ツール]→[文書]→[トピックモデル]→[トピックの推定]を選択。
・[集計単位]は[文]で固定。
・[OK]ボタンをクリックすると、[トピックの推定結果]画面が表示される。
・各トピックで高い確率で出現する語句がリストアップされる。
・[#1]といった欄をクリックすると、文書検索画面が表示される。
◆ベイズ学習による分類
・[ツール]→[文書]→[ベイズ学習による分類]→[外部変数から学習]を選択。
・[分類の単位]を[文]に変更。
・[学習する外部変数]は「利用不可」。
・[OK]ボタンをクリックすると、ファイルの保存画面が表示されるので、任意のファイル名を記述して保存する。
・[ツール]→[文書]→[ベイズ学習による分類]→[学習結果ファイルの内容を確認]を選択。ファイル選択画面が開くので、先ほど保存したファイルを指定して開く。すると[学習結果ファイル]画面が開くので内容の確認を行う。
※[学習結果を用いた自動分類]については割愛する。
※[トピックの推定]と[ベイズ学習による分類]は固有名詞などを強制抽出語としてあらかじめ指定しておかないと正確に分析されないケースが生じる。正式に利用したい際は有償版の購入をお勧めする。当ブログのはあくまでテストケースとしてのものである。
※[トピックの推定]と[ベイズ学習による分類]はコーディング・ルールに依らない分析手法となるが、筆者の能力的に追及はしない。
◆参考文献
・『日本の民話 34 石見篇』(大庭良美/編, 未来社, 1978)pp.152-155.
・『動かして学ぶ!はじめてのテキストマイニング』(樋口耕一, ナカニシヤ出版, 2022)
・『社会調査のための計量テキスト分析 【第2版】 内容分析の継承と発展を目指して』(樋口耕一, ナカニシヤ出版, 2020)
| 固定リンク
◆はじめに
以下はKH Coder(無償版:version 3.Beta.08e)を用いた昔話の計量テキスト分析である。昔話の類話の比較にツールを利用できないか試行してみた。
手持ちの資料が限られるため、分析の対象となる元データの文字数が少ないものの(※本来であれば5000字以上は欲しい)、分析自体は正常に処理されていると判断した。
KH Coderの操作に慣れる目的も兼ねて行った作業で、コーディングルールの記述の事例集、あるいは速習用のチュートリアルとしてでも読んで頂ければ……といったところである。
なお、KH Coderでよく用いられるのは共起ネットワークと対応分析とのことで、それ以外はおまけパートと思って頂いて構わない。操作に習熟するにはコーディングルールの記述に慣れるのが第一である。
◆ファイル
各ファイルをダウンロードしてKH Coderに読み込ませれば同様の分析が再現可能である。
ダウンロード - kh_coder_startingedition_sagyotejunsho.txt (※作業手順書)
※「H5」とはHTMLでいうところのヘッダー(見出し)・レベル5で本文に相当すると考えればよい。
※[コーディング単位]は「文/段落/H5」から選べるが、状況に応じて適切と思われるものを選択する必要がある。処理が上手くいかないと感じた場合、コーディング単位を切り替えると上手く処理されるケースがままある。
※公式マニュアルでは「集計単位」という用語が使われている。共起関係について、
・「文」では一文単位での分析
・「段落」では段落単位の分析
・「H5」では表計算ソフトのセル単位とされ、改行を含めた一セルの中身全体が分析単位となる
※レファレンスでも索引で「コーディング単位」の項目は設けられていない。操作性に関わる重要項目であるものの、その仕様について不明瞭な感はある。
※当ブログの場合、表計算ソフトのフォーマットで読み込ませているからH5固定でいいだろうと思い込んでいたら、さにあらずだった。
◆あらすじ
・「大きな話」(未来社『石見の民話』)
昔、ある若者が大阪へ出て、初めて宿に泊まった。女中が来てガラガラと雨戸を閉めた。若者はそれを見て、この家の雨戸は簡単でいい。自分のところでは、朝から昼まで中かかって雨戸を開け、夕方には昼から中かかって雨戸を閉めると言った。夕食の時給仕に出たさっきの女中が、明日この後ろの畠を見ろ。随分広い畠に粟が沢山播いてあると言うと、若者は自分のところには粟三斗蒔きの畠があると言った。女中がこの上へ行ってみましょう。向こうにとても長い橋ができたと言うと、若者は自分のところの前の川には十日渡りの橋があると言った。女中が何を言っても若者は大きなことを言うので、これは大した家らしいと思った。若者は女中に自分のところに来ないか。うちへ来てくれたら、米を搗くこともいらない。水を担ぐこともいらないと言った。すると、それでは明日一緒に行きましょうということになって、女中は若者について来た。行ってみると。粟三斗蒔きという畠は小さい、草のいっぱい生えた畠で、三斗蒔きというのは一度蒔いたが生えない。二度蒔いたが生えない。三度蒔いたらようやく生えた。それで三度蒔きで、昼までかかって雨戸を開け、昼から中かかって閉める雨戸というのはたった一枚で、上に引っかかり下に引っかかりガッタンピッシと中々動かない。長い橋というのはどこにあるかと訊くと、この下の谷川にかかった赤い橋で、毎月十日になると金比羅さんの祭りに皆が渡るから十日渡りの橋と言うのだ。米は搗かせないというのは、袋を下げてあっちこっちで貰って歩くから搗く必要がない。水は担がせないというのは、水はたごが一つしかないから担がれない。片手で下げてくるのだと言った。
◆コーディングルール
※コーディングルールのキーワードは重要と判断したものを人力でピックアップしている。そのため、恣意性を伴う分析となる。
※活用形でなく基本形で入力する。
※[前処理]→[語の抽出結果を確認]でキーワードがどのように分節されているか検索すると結果の一覧[語の抽出結果]が表示される。
※[Result]から確認したい行をクリックして選択、画面下の[詳細表示]ボタンをクリックするとサブ画面が表示され、活用形や基本形が確認できる。
※昔話では「否定/肯定」「肯定/否定」と属性が変化することが多いと考え、否定詞「ない」「まい」「ぬ」「ん」、また禁止を意味する「な」を共通のコードとして設定している。
※[関連語検索]で否定詞の共起語の一覧を表示させたところ、日本の昔話のように掌編レベルのボリュームだと、物語の動因となる箇所に関する語句が上位に表示される傾向が強いのではないか……といった印象があり、検証作業中である。
※無償版では強制抽出語の指定が機能制限で事実上使用できないため以下のような手法をとっている。
*若者
若者 or 自分
*播く
播く or 蒔く
*三斗
'三斗'
*十日
'十日'
*大きな
大きな or 大した
*同行
つく and 来る
*たご
'たご'
*三度
'三度'
*ない
ない
*ぬ
ぬ
*ん
ん
*るな
'るな'
*るまい
'るまい'
*かかる
かかる
*大阪
大阪
*出る
出る
*初めて
初めて
*宿
宿
*泊まる
泊まる
*女中
女中
*雨戸
雨戸
*閉める
閉める
*開ける
開ける
*朝
朝
*晩
晩
*給仕
給仕
*畠
畠
*粟
粟
*橋
橋
*長い
長い
*何
何
*言う
言う
*家
家
*来る
来る
*米
米
*搗く
憑く
*水
水
*担ぐ
担ぐ
*いる
いる
*小さい
小さい
*生える
生える
*ようやく
ようやく
*引っかかる
引っかかる
*動く
動く
*祭り
祭り
*渡る
渡る
*袋
袋
*貰う
貰う
*歩く
歩く
*必要
必要
*一つ
一つ
*片手
片手
*下げる
下げる
*一度
一度
*毎月
毎月
◆共起ネットワーク
・[コーディング単位]は[文]で固定となる。
※[強い共起関係ほど濃い線に]にチェックを入れる。
Jaccard係数が0.3以上はかなり強い共起関係にあることを示しているが、分析対象となる元データの文字数が少ないため係数が高めに出てしまう傾向にあるため、こうしている。
※Jaccard係数は共起関係(※ある言葉に続いて出てくる関係)の強さを表し 0≦係数≦1 の範囲の値をとる。
【Jaccard係数】
・0.1 →関連あり
・0.2 →強い関連あり
・0.3以上 →とても強い関連あり
※ただし、あくまで目安であって絶対ではない。
ざっと確認したところ、頻出するキーワードが中央のサブグラフ(バブルが島状に集まった一塊)に表示されている。概ねストーリーの展開に沿った形となっている。
※なお、各バブル間の距離や配置に意味はない。
◆対応分析
・[コーディング単位]を[文]に設定する。
・[コード×文書 集計単位:]を[文]に設定する。
※[バブルプロット]にチェックを入れている。これらは文字の重なりを極力避けるためである。
※文字が重なって読みづらい場合、オプション画面の[コード選択]で不要なコードのチェックを外してもよい。
x、y軸上の原点(0.0)から点線が伸び交差した箇所が原点となる。原点から離れるほど特徴的なキーワードだと分析される。
原点付近には「ない」「若者」「女中」といったキーワードがプロットされている。単話分析の場合、原点に近い方が頻度が高くむしろ重視すべきかもしれない。
◆解釈
共起ネットワークで「ない」のバブルが大きくプロットされている。これで昔話の分析においては否定詞に着目すべきではないかとの気づきを得ることとなった。
◆階層的クラスター分析
・[コーディング単位]は[文]で固定。実行するとデンドログラム(樹状図)で可視化される。
※キーワード指定しても可。
概ねストーリーに沿った内容でクラスター化されている。
◆クロス集計
・単話分析ではクロス集計は「利用不可」となる。
◆KWICコンコーダンス
現状ではテキストマイニングのツールに文脈を読む性能はないため実際に該当箇所を読んで人力で判断する他ない。KWICコンコーダンスでキーワード指定すれば指定したキーワードがどのような文脈で用いられているか一覧で抽出される。
◆関連語検索
・[集計単位]を[文]に変更、[集計]する。
・[Search Entry:]の一覧からキーワードを選択してダブルクリックすると[Result]に指定したキーワードの品詞や共起関係が表示される。
※[Result:]から行指定してダブルクリックするとKWICコンコーダンスに遷移する。
※[Result:]の一覧から範囲指定して[コピー]したものを表計算ソフトやテキストファイルにペーストすることも可能である。
[#直接入力]を指定して「大阪」といったキーワードで検索すると関連語が一覧で表示される。
◆属性の転倒
・「ない」の結果上位一覧
| N | 抽出語 | 品詞 | 全体 | 共起 | Jaccard |
| 1 | 蒔く | 動詞 | 5 (0.227) | 3 (0.375) | 0.3 |
| 2 | 水 | 名詞C | 2 (0.091) | 2 (0.250) | 0.25 |
| 3 | 担ぐ | 動詞 | 2 (0.091) | 2 (0.250) | 0.25 |
| 4 | 米 | 地名 | 2 (0.091) | 2 (0.250) | 0.25 |
| 5 | 搗く | 動詞 | 2 (0.091) | 2 (0.250) | 0.25 |
| 6 | 生える | 動詞 | 3 (0.136) | 2 (0.250) | 0.2222 |
| 7 | 来る | 動詞 | 3 (0.136) | 2 (0.250) | 0.2222 |
| 8 | ガッタンピッシ | 未知語 | 1 (0.045) | 1 (0.125) | 0.125 |
| 9 | 粟 | 地名 | 1 (0.045) | 1 (0.125) | 0.125 |
| 10 | 一つ | 名詞 | 1 (0.045) | 1 (0.125) | 0.125 |
| 11 | 一度 | 副詞 | 1 (0.045) | 1 (0.125) | 0.125 |
| 12 | 引っかかる | 動詞 | 1 (0.045) | 1 (0.125) | 0.125 |
若者の話を信じてついていったところ大きいどころか実に粗末な話だった……といった粗筋となっている。
短いお話の中で属性の転倒を多用するのが昔話の特徴の一つと考えられる。
ここで「/」(スラッシュ)を「転倒」を意味する記号として用いる。スラッシュは様々な場面で用いられていて文脈依存的な記号という欠点もあるが、視覚的にはイメージしやすいと判断した。
・[若者|自慢:大きな/粗末な]
こういった風にお話を転がしていると分析できる。
若者の自慢が「大きな/粗末な」と転倒することでおかしみを誘っている。
◆類似度行列
・[コーディング単位]は[文]は固定。[集計]をクリックするとJaccard係数がマトリクス形式で確認できる。
・ある列を選択して画面右下の[コピー(選択列)]をクリックすると、当該のキーワードに関するJaccard係数がコピーされるので、それを表計算ソフトにペーストするといった利用が可能となる。
◆多次元尺度構成法
・[コーディング単位]は[文]で固定。
・共起関係を確認したいキーワードを指定。
・次元を「2」から「3」に変更して実行、三次元のマップとした。
若者と女中の関係に関連したキーワードを指定したところ、「かかる」が離れた位置にプロットされた。
※選択するキーワードによって相対的な位置関係は変わり得る。
※実行すると指定したキーワードの幾つかが除外されるとメッセージが表示される。テキストのボリューム不足のためか無償版の仕様によるものか判断がつかない。
◆自己組織化マップ
[コーディング単位]は[文]で固定。
記述内容が視覚的に整理され、類似性の高い内容が近くに配置される。概ねストーリーに沿った形で各クラスターが表示される。
※クラスター化の計算を繰り返すため処理に時間がかかるので要注意。
※クラスターの配置、距離に意味はない。
◆トピックの推定
・[ツール]→[文書]→[トピックモデル]→[トピックの推定]を選択。
・[集計単位]は[文]で固定。
・[OK]ボタンをクリックすると、[トピックの推定結果]画面が表示される。
・各トピックで高い確率で出現する語句がリストアップされる。
・[#1]といった欄をクリックすると、文書検索画面が表示される。
◆ベイズ学習による分類
・[ツール]→[文書]→[ベイズ学習による分類]→[外部変数から学習]を選択。
・[分類の単位]を[文]に変更。
・[学習する外部変数]は「利用不可」。
・[OK]ボタンをクリックすると、ファイルの保存画面が表示されるので、任意のファイル名を記述して保存する。
・[ツール]→[文書]→[ベイズ学習による分類]→[学習結果ファイルの内容を確認]を選択。ファイル選択画面が開くので、先ほど保存したファイルを指定して開く。すると[学習結果ファイル]画面が開くので内容の確認を行う。
※[学習結果を用いた自動分類]については割愛する。
※[トピックの推定]と[ベイズ学習による分類]は固有名詞などを強制抽出語としてあらかじめ指定しておかないと正確に分析されないケースが生じる。正式に利用したい際は有償版の購入をお勧めする。当ブログのはあくまでテストケースとしてのものである。
※[トピックの推定]と[ベイズ学習による分類]はコーディング・ルールに依らない分析手法となるが、筆者の能力的に追及はしない。
◆参考文献
・『日本の民話 34 石見篇』(大庭良美/編, 未来社, 1978)pp.317-318.
・『動かして学ぶ!はじめてのテキストマイニング』(樋口耕一, ナカニシヤ出版, 2022)
・『社会調査のための計量テキスト分析 【第2版】 内容分析の継承と発展を目指して』(樋口耕一, ナカニシヤ出版, 2020)
| 固定リンク
◆はじめに
以下はKH Coder(無償版:version 3.Beta.08e)を用いた昔話の計量テキスト分析である。昔話の類話の比較にツールを利用できないか試行してみた。
手持ちの資料が限られるため、分析の対象となる元データの文字数が少ないものの(※本来であれば5000字以上は欲しい)、分析自体は正常に処理されていると判断した。
KH Coderの操作に慣れる目的も兼ねて行った作業で、コーディングルールの記述の事例集、あるいは速習用のチュートリアルとしてでも読んで頂ければ……といったところである。
なお、KH Coderでよく用いられるのは共起ネットワークと対応分析とのことで、それ以外はおまけパートと思って頂いて構わない。操作に習熟するにはコーディングルールの記述に慣れるのが第一である。
◆ファイル
各ファイルをダウンロードしてKH Coderに読み込ませれば同様の分析が再現可能である。
ダウンロード - ca_pb_047_sahime.xlsx
ダウンロード - ca_pb_047_codingrules.txt
ダウンロード - kh_coder_startingedition_sagyotejunsho.txt (※作業手順書)
※「H5」とはHTMLでいうところのヘッダー(見出し)・レベル5で本文に相当すると考えればよい。
※[コーディング単位]は「文/段落/H5」から選べるが、状況に応じて適切と思われるものを選択する必要がある。処理が上手くいかないと感じた場合、コーディング単位を切り替えると上手く処理されるケースがままある。
※公式マニュアルでは「集計単位」という用語が使われている。共起関係について、
・「文」では一文単位での分析
・「段落」では段落単位の分析
・「H5」では表計算ソフトのセル単位とされ、改行を含めた一セルの中身全体が分析単位となる
※レファレンスでも索引で「コーディング単位」の項目は設けられていない。操作性に関わる重要項目であるものの、その仕様について不明瞭な感はある。
※当ブログの場合、表計算ソフトのフォーマットで読み込ませているからH5固定でいいだろうと思い込んでいたら、さにあらずだった。
◆あらすじ
・「種姫」(未来社『石見の民話』)
昔、朝鮮のソシモリに大宜都比売命という五穀を司る神さまがいた。目や鼻、お尻などから色々な穀物を出して農作物を豊かにしていた。ある日この神さまのところへ訪れた旅の神が大宜都比売が身体のあちこちから色々な穀物を出すのをみて不思議に思い、身体の中には素晴らしい宝物が隠してあるのに違いないと思って斬り殺してしまった。大宜都比売が一番可愛がっていた末の子に乙子狭姫という可愛い姫がいた。身体が小さいのでちび姫と呼ばれていたが、息も絶え絶えになった大宜都比売は自分はとんだ災難にあって今死のうとしている。可愛いお前と別れてあの世へ行くのは悲しいが、自分の身体から出た作物の種を持って、海の向こうの東の国へ行って安らかに暮らせ。その国は平和な所だと聞いているからと言って目を閉じた。母神にとりすがって泣いていた狭姫は気がつくと、母神の頭から土地を耕す馬、目からは蚕、鼻からは大豆、腹からは稲、お尻から小豆、女陰からは麦が生まれていた。姫がぼんやりと見ていると、大切に飼っていた赤い雁が飛んできた。雁は母神さまの言われた東の国へ今すぐ参りましょうと言って羽を広げた。狭姫は母神の身体から生まれた物を持って雁の背に乗った。こうして狭姫を乗せた雁は青い海の上を日本へ向かって飛び続けた。やがて遙かに石見の海岸が見えてきた。赤雁は波にもまれる島を見つけて舞い降りた。すると地の下から自分の背中に降りたのは誰だと咎めた。びっくりした赤雁は自分はソシモリから狭姫のお供をして五穀の種を日本の土に植えようと思ってやって来た者だと言った。するとその声は、ここは国つ神、大山祇足長土に仕える鷹の住む島だ。自分は肉は食べるが五穀に用はない。早く立ち去れと言った。赤雁は空に舞い上がって、どこか休む所はないかと海原を見渡すと、また一つの島が見つかった。そこへ降りると、また自分の背におりた奴は誰だと叱られた。訳を言うと、ここは国つ神大山祇の大人のみ使いの鷲の住処だ。自分は肉食だから五穀には用なない。早く立ち去れと言った。赤雁は仕方がないのでまた大空に舞い上がり、益田市大浜の亀島に辿りついてしばらく休み、ここから本土の形のよい丘を選んで舞い降りた。この丘が天道山で、丘から降りたところを後に赤雁と言うようになった。狭姫はそれから更に住みよい土地を探し、そこに住居を定めた。ここを狭姫の名をとって狭姫山と名づけた。比礼振山と呼ばれているのがこれで、益田市北仙道にあり、佐比売山神社が祀られている。狭姫は山を下りて母神から貰った稲や麦、豆などの種を播いた。種はやがて豊かに実って一族は栄えた。赤雁が始めに降りた島は益田市の高島で、次に降りたのは那賀郡須津の大島だという。
・「ちび姫さん」(日本標準『島根の伝説』)
神さまがこの世を治めていたと言われる頃のこと。広い海の上を一羽の雁が東の方へゆっくり飛んでいた。羽の一部に赤い色が混じっているのか光の具合で体全体が赤い色に見えることがある。と、その背に小さな女の子がしっかりとしがみついている。腰の辺りには小さな袋を結びつけている。雁は一つの島を目指して大きく羽ばたいて飛んでいる。この小さな女の子は乙子狭姫という名である。母は大宜都比売命といい、姫はその末っ子であった。母の命はもともと五穀(米・麦・黍・粟・豆の五つの作物のこと)を育てる神さまだった。この母神さまは不思議な力を持っていて、体のどこかを撫でると作物の種が自由に出る。このことを知った曽茂利(今の朝鮮)に住んでいる気の荒い神が「大宜都比売の体は一体どんな仕組みになっているのか。ひとつ体の中を調べてみよう」とある日のこと、命を呼び寄せその体を無残にも斬り裂いた。ところが別段変わったこともなく命は哀れな最期を遂げた。命は自分がいつかこのようなことになると知っていたのか、ある日乙子狭姫を呼び、「私に万一のことがあったら、お前は遠い東の国に行くのだよ。そのときには、この袋を必ず持っておいき。この中に色々な作物の種がある。この種を東の国の人に分け与えるがよい。種は千年も万年も生き続けていくだろう。東の国は美しい静かな国だから、そこでお前は暮らすのだよ」と言った矢先の災難であった。乙子狭姫は母神にとりすがって泣いた。が、いつまでも悲しんでばかりおれなかった。母神が言ったように袋を持って海の上を東へ東へと飛んでいるのである。姫が乗っている赤い雁は姫が子供のときから可愛がって育てた鳥である。だから、雁は姫の言葉をよく聞き分け、姫もまた雁の顔を見るとその気持ちが分かった。長い間飛び続けた雁はやがて一つの島に舞い降りた。すると、そのとき我が背に降り立った者は何者だと荒々しい声が地の底から聞こえてきた。私は大宜都比売の子の乙子狭姫です。五穀の種を遥か西の国から持ってきたのですと姫は答えた。声は笑って、五穀の種か。ここは大山祇と足長土族の使いの鷹が住む島である。我らは肉食こそするが五穀などはいらぬ。早々に立ち去れと命じた。姫と雁は仕方なく飛び上がった。この島は今の益田市鎌手町の沖にある高島である。だから、この島では今でも畑の作物はほとんどできない。鷹の勢いに驚いて飛び立った雁は遥か彼方の島めがけて舞い降りた。ところがまた、我が背で休む者は誰かと叫ぶ者がいた。姫は先ほどのように自分の名を名乗った。ここは大山祇の使いの大鷹が住むところである。我らは肉を食べる者ゆえ五穀などに用はない。一日たりともここに留めておくことはできぬ。早く立ち去れと拒絶した。この島は今の那賀郡三隅町の沖にある大島である。こうして雁と姫は住処を求めてあちこち飛び回り、遂に安住の地を見つけた。これが今の狭姫山である。別の名を比礼振山と言う。狭姫とは小さい姫という意味である。のちの世の人はこの姫のことをちび姫と言うようになった。また、雁が降り立った地を赤雁と呼び地名となっている。姫はこの山を住処としてあちこちの里に出ては稲や麦の種を分け与えた。このため、この辺りを種(今の益田市種町)と呼ぶようになった。山に囲まれ海にも近いこの土地はそれから五穀が豊かに実り、里では和やかな暮らしが続いた。人々は乙子狭姫をちび姫さんと呼んで親しんだ。そして、姫の働きを褒めたたえ感謝するために、狭姫山の近くにお宮を建てて祀った。これが乙子の権現さんで、今もなお、この辺りの人は五穀が沢山獲れることを祈ってお参りしている。
・「乙子狭姫」(角川書店『出雲・石見の伝説』)
昔々、大食之姫という穀物の神があって、色々の食物や穀物の種の持ち主であった。姫の身体からどうして食物や種が出るのかと怪しんだ神が無謀にも姫の身体を切ってみた。しかし姫のどこにも何も出なかったから神は無益な殺生を悔いた。息絶えようとした大食之姫は末の子狭姫を呼んでお前は末子で年もゆかず人並み外れて小さい身体だから、お前に宝の種をやる。種は千年万年尽きぬ宝だから、お前はこれを持って安国へ行けと言った。狭姫は母の亡骸にすがって嘆き悲しんだが、不思議にも母の頭から馬が飛び出し、着物から蚕が這い出し、鼻から大豆、口から稲、胸から麦、腹から小豆が出た。狭姫が驚いていると、そこへ日頃から可愛がっていた赤雁が飛んできたので、雁よ、母上はこの有様となって悲しいが、形見に下さった色々の種は三つ一つはお前にやろう。三つ一つは生まれたこの地に置こう。あとの三つ一つは私が持って心安国に行こうと言った。雁はこれを食べて姫を乗せ空高く飛び立った。姫は生まれながら小さく美しい女神であったから狭姫と言われた。狭姫は赤雁に乗ってしばらく飛んでから海中の一つの島(高島)に降りて休もうとすると、一羽の鷹が出てきて、ここは国つ神大山祇足長土の使者鷹の住まいだから誰にも貸さない。ことに穀物の神には用がないと拒否した。そこでまたある島で休もうとすると、今度は鷲が出てきて、ここは国つ神大山祇巨人の使者大鷲の住まい(須津の大島)だから誰にも貸さない。ことに穀物の神は用がないと拒否した。仕方なく空の旅を続けてある山に着いた。その山を狭姫山(美濃郡比礼振山)という。狭姫は雁と共に里に出て稲・麦・豆などの種を蒔いた。そこを乙子の里という。そして生えてはでき、できては殖える種子(種村)が次々に広まって赤雁の里、種の里を作って楽しく暮らした。それで狭姫は地方の神々から穀物の神、種の神とあがめられた。姫は種の里から千振山を越して矢原を通って河内の里へ出た。ところがそこに巨人の足跡をみて驚いた。里人に尋ねると巨人は弥畝山を跨いで来たもので一晩漁山と足谷山に足をかけて踏ん張って脱糞したのが大糞山(井野村)となり、あそこの大穴がその住処である。しかし今は海辺へ行っただろうと言う。狭姫が驚いている内に地震のような響きがしてきた。里人は踏み殺されると逃げ去った。姫も急いで種の里へ帰ろうとしたが、人並み小さい女神では間に合わず姫は命からがら帰り着いた。狭姫はなおも種を蒔き広めようと赤雁に乗って出立し、とある山に降りた。山の頂は平らでその中程に大きな岩穴があった。すると、穴の中から雷のようないびきがする。狭姫は不思議に思って大声で穴の中で寝ているのは誰かと問うと、人の安眠を妨げる者こそ何者か。自ら名乗らずに人の名を聞くとは無礼であろうと返してきたので、自分は天つ神大食之姫の子で名は狭姫。色々の食物の種を持っている神である。無礼は謝ると答えた。すると、我は国つ神大山祇巨人の子、雲を呼び霧を立て雨を降らせるから諸人は我をおかみと申す。我はここに千代、出雲には八千代住み、万代は海神の国、終わりには天つ国に行く者だ。この山は大山といい我が父大山祇巨人の休み場である。父はこの大山に腰かけてあの須津の海を足をすすいだとき、爪先の土を投げたのがあの大島で、脛についた土を投げたのがあの高島である。父はまたこの山に腰かけながら放屁したからこの大穴を開けた。穴の底の岩根から水を潜って海神の国、地を通っては根の国、底の国に抜けると出雲の国に出る。今見える東の煙立つ山がそれだと言う。聞き終わった狭姫は驚きながら気を取り直し、御父は畏き大神かな、御身はまた不思議な働きを持ち給う。では直接お目にかかりたいと言うと、おかみはなお穴の中から父はただ大きいだけで人並みの姿だが、我は頭だけが人間で体は蛇のようだから人も神も驚いて気を失うことは疑いない。人を驚かすことは悪いことだから見ない方がお互いの為である。それよりも我が兄に会い給え、兄は西の麓の土田という所にいる足長土だと言った。狭姫はそれを機会に大山を去った。狭姫は土田に行ったが足長土はいない。見ると、土田と高島との間の波の穂を踏んで行く者がいる。それが海の中を一歩一歩踏んでいて余程の足長と見える。しかしこう足が長くては物を拾うのにさぞかし不便だろう。そこで姫は考えた。巨人は悪気はないが、うっかりすると踏み殺される。息子のおかみは稲に無くてはならない雨を降らせる良い神である。巨人と足長土を遠くへやらねばならない。それには巨人の為に大平原を見つけ、足長土のために嫁を探そうとすぐさま天駆けり国駆けり西は須佐の高山・青野ヶ嶽、南は弥畝山・冠山と駆け巡って東の煙立つ山(三瓶山)に来た。東を見ると巨人の居るにふさわしい原がある。狭姫は喜んでその山の麓に種を蒔いて里(種村)を開いた。この山を佐比売山と言う。姫は帰途につき大江高山を過ぎ角山(島星山)目当てに飛んでいると、小山の上に座り二本の長い手を伸ばして海の中を漁って魚介を採っている者がいる。狭姫は近づいて女か男かと尋ねると女だと答えたので、夫があるかと問うと、女は恥ずかしそうにかように手長なればと言った。狭姫はいたわって自分も人並み外れたちび姫だけど世になくてはならぬ食物の種を広める務めを持っている。御身の手長もまた務めがある。そこで御身のために足長土という夫を授けよう。助け合って仲良く暮らすがよいと言うと女は喜んで承知した。この女は手長土といい土の里(都治)に住んでいた。狭姫も喜んですぐ帰り、足長土と巨人に勧めて東に向けて出立させた。そして足長土は手長土と夫婦になり、足長土が手長土を背負って歩けば遠い道も近く、深い水も浅い。手長土は取るも拾うも働くにも夫を助けて仲良く暮らした。都治の南隣りの上津井には上畑神社があって大山祇神が祀ってある。また波積の東隣りの井田には大人という所がある。浅利富士は一名どびん山とも言われ、かの巨人がこの山を跨いだとき股間が当たって頂上を削りとったから富士山のように上が平らになった。おかみは後に八幡の神と交替してあちらへ行ったため岡見には居ないけれども、時化の前には今でも大岩を鳴らして予報してくれるのでおかみも故郷を思い出すのであろうと伝えられている。
・「狭姫と巨人」(『江津市の歴史』)
昔々、大食之姫という穀物の神があって、色々の食物や穀物の種の持ち主であった。姫の身体からどうして食物や種が出るのかと怪しんだ神が無謀にも姫の身体を切ってみた。しかし姫のどこにも何も出なかったから神は無益な殺生を悔いた。息絶えようとした大食之姫は末の子狭姫を呼んでお前は末子で年もゆかず人並み外れて小さい身体だから、お前に宝の種をやる。種は千年万年尽きぬ宝だから、お前はこれを持って安国へ行けと言った。狭姫は母の亡骸にすがって嘆き悲しんだが、不思議にも母の頭から馬が飛び出し、着物から蚕が這い出し、鼻から大豆、口から稲、胸から麦、腹から小豆が出た。狭姫が驚いていると、そこへ日頃から可愛がっていた赤雁が飛んできたので、雁よ、母上はこの有様となって悲しいが、形見に下さった色々の種は三つ一つはお前にやろう。三つ一つは生まれたこの地に置こう。あとの三つ一つは私が持って心安国に行こうと言った。雁はこれを食べて姫を乗せ空高く飛び立った。姫は生まれながら小さく美しい女神であったから狭姫と言われた。狭姫は赤雁に乗ってしばらく飛んでから海中の一つの島(高島)に降りて休もうとすると、一羽の鷹が出てきて、ここは国つ神大山祇足長土の使者鷹の住まいだから誰にも貸さない。ことに穀物の神には用がないと拒否した。そこでまたある島で休もうとすると、今度は鷲が出てきて、ここは国つ神大山祇巨人の使者大鷲の住まい(須津の大島)だから誰にも貸さない。ことに穀物の神は用がないと拒否した。仕方なく空の旅を続けてある山に着いた。その山を狭姫山(美濃郡比礼振山)という。狭姫は雁と共に里に出て稲・麦・豆などの種を蒔いた。そこを乙子の里という。そして生えてはでき、できては殖える種子(種村)が次々に広まって赤雁の里、種の里を作って楽しく暮らした。それで狭姫は地方の神々から穀物の神、種の神とあがめられた。姫は種の里から千振山を越して矢原を通って河内の里へ出た。ところがそこに巨人の足跡をみて驚いた。里人に尋ねると巨人は弥畝山を跨いで来たもので一晩漁山と足谷山に足をかけて踏ん張って脱糞したのが大糞山(井野村)となり、あそこの大穴がその住処である。しかし今は海辺へ行っただろうと言う。狭姫が驚いている内に地震のような響きがしてきた。里人は踏み殺されると逃げ去った。姫も急いで種の里へ帰ろうとしたが、人並み小さい女神では間に合わず姫は命からがら帰り着いた。狭姫はなおも種を蒔き広めようと赤雁に乗って出立し、とある山に降りた。山の頂は平らでその中程に大きな岩穴があった。すると、穴の中から雷のようないびきがする。狭姫は不思議に思って大声で穴の中で寝ているのは誰かと問うと、人の安眠を妨げる者こそ何者か。自ら名乗らずに人の名を聞くとは無礼であろうと返してきたので、自分は天つ神大食之姫の子で名は狭姫。色々の食物の種を持っている神である。無礼は謝ると答えた。すると、我は国つ神大山祇巨人の子、雲を呼び霧を立て雨を降らせるから諸人は我をおかみと申す。我はここに千代、出雲には八千代住み、万代は海神の国、終わりには天つ国に行く者だ。この山は大山といい我が父大山祇巨人の休み場である。父はこの大山に腰かけてあの須津の海を足をすすいだとき、爪先の土を投げたのがあの大島で、脛についた土を投げたのがあの高島である。父はまたこの山に腰かけながら放屁したからこの大穴を開けた。穴の底の岩根から水を潜って海神の国、地を通っては根の国、底の国に抜けると出雲の国に出る。今見える東の煙立つ山がそれだと言う。聞き終わった狭姫は驚きながら気を取り直し、御父は畏き大神かな、御身はまた不思議な働きを持ち給う。では直接お目にかかりたいと言うと、おかみはなお穴の中から父はただ大きいだけで人並みの姿だが、我は頭だけが人間で体は蛇のようだから人も神も驚いて気を失うことは疑いない。人を驚かすことは悪いことだから見ない方がお互いの為である。それよりも我が兄に会い給え、兄は西の麓の土田という所にいる足長土だと言った。狭姫はそれを機会に大山を去った。狭姫は土田に行ったが足長土はいない。見ると、土田と高島との間の波の穂を踏んで行く者がいる。それが海の中を一歩一歩踏んでいて余程の足長と見える。しかしこう足が長くては物を拾うのにさぞかし不便だろう。そこで姫は考えた。巨人は悪気はないが、うっかりすると踏み殺される。息子のおかみは稲に無くてはならない雨を降らせる良い神である。巨人と足長土を遠くへやらねばならない。それには巨人の為に大平原を見つけ、足長土のために嫁を探そうとすぐさま天駆けり国駆けり西は須佐の高山・青野ヶ嶽、南は弥畝山・冠山と駆け巡って東の煙立つ山(三瓶山)に来た。東を見ると巨人の居るにふさわしい原がある。狭姫は喜んでその山の麓に種を蒔いて里(種村)を開いた。この山を佐比売山と言う。姫は帰途につき大江高山を過ぎ角山(島星山)目当てに飛んでいると、小山の上に座り二本の長い手を伸ばして海の中を漁って魚介を採っている者がいる。狭姫は近づいて女か男かと尋ねると女だと答えたので、夫があるかと問うと、女は恥ずかしそうにかように手長なればと言った。狭姫はいたわって自分も人並み外れたちび姫だけど世になくてはならぬ食物の種を広める務めを持っている。御身の手長もまた務めがある。そこで御身のために足長土という夫を授けよう。助け合って仲良く暮らすがよいと言うと女は喜んで承知した。この女は手長土といい土の里(都治)に住んでいた。狭姫も喜んですぐ帰り、足長土と巨人に勧めて東に向けて出立させた。そして足長土は手長土と夫婦になり、足長土が手長土を背負って歩けば遠い道も近く、深い水も浅い。手長土は取るも拾うも働くにも夫を助けて仲良く暮らした。都治の南隣りの上津井には上畑神社があって大山祇神が祀ってある。また波積の東隣りの井田には大人という所がある。浅利富士は一名どびん山とも言われ、かの巨人がこの山を跨いだとき股間が当たって頂上を削りとったから富士山のように上が平らになった。おかみは後に八幡の神と交替してあちらへ行ったため岡見には居ないけれども、時化の前には今でも大岩を鳴らして予報してくれるのでおかみも故郷を思い出すのであろうと伝えられている。
・「穀物の神・矮姫」(みずうみ書房『日本伝説大系』第十一巻)
赤雁に乗って、色々の種を持ってきた姫神がいた。名を矮姫(サヒメ)という。矮姫は体が非常に小さかった。矮姫の母神は大食之姫(オオゲツヒメ)という穀物の神さまで、常に口や目鼻、尻などをこすって色々の物を出して人々にご馳走した。ところがある神さまに口から米を出してご馳走しようとしたのを見られた。その神さまは汚いと怒って斬りつけた。大食之姫は斬られたまま息絶え絶えに我が子矮姫を呼んで、人並みならぬ小さい体でお前はこれから苦労するだろう。お前が気にかかってならぬ。しかし、自分はもうこの世を去る。自分が死んだら、体に種が生える。その種を持って安国へ行け。安国へはお前が可愛がっている雁が案内すると言い残して息を引き取った。と、不思議や母の屍から稲が生え、麦が実り、小豆が出来、種という種が母の死体に生えて実った。矮姫は嘆き悲しみながらもその不思議に驚いた。まごまごしていると赤雁が来てどうしたのか訊いた。矮姫が一部始終を語ると、姫さま、諦めて行きましょう。安国へ案内申しますと言った。矮姫は母の死体を弔うと母の体に実った種をもって赤雁の背に乗った。赤雁は空に高々と舞い上がり、ただ一筋に飛んでいった。行く程に一つの島が見えた。疲れた雁は一時休みたいと思って舞い降りた。ところが、そこは大山祇の子足長土の土地、降りることはならぬと高島の守備をしている鷹が制止した。赤雁は止むことなく飛行を続けた。とまた一つの島――大島が目についた。赤雁はそこへ降りようとした。と、ここへ来ることはまかりならぬ。大山祇の御子オカミ神の使者、大鷲の住処だと拒否された。赤雁は疲れ果ててようやくほど近い本州の山へと辿り着いた。赤雁はぐったりしていたが、矮姫は降り立つとすぐ里に出た。稲麦豆など種物を次々に蒔いて歩いた。それでこの土地を種の里と人々は言った。実った種を採りながら姫は種を広めた。ある日、矮姫は種の里から千振山を越え矢原を通り河内に出た。するとそこに恐ろしい人の跡を見つけた。普通の人を見ても気のひける矮姫は驚かずにいられない。矮姫は人々に足跡について尋ねた。人々は、大山祇の神ほどではないがオカミ神も大変大きな人で、この辺の一番高い山でさえオカミ神の胸に届く者はないと答えた。矮姫はびっくり仰天した。その内に地響きがしてきた。人々は慌てふためいて安全な場所へ散っていった。矮姫があっけにとられていると、大男はもう間近に迫ってくる。大男の足に踏みつぶされまいと逃げまどい逃げ延びてようやく種の里へ帰りつくことができた。こうしたことがあってからも矮姫は種を蒔き広めることを止めなかった。矮姫は今度は土田へ出かけた。そして、ふと海の方へ目をやると、水の中をひと足ひと足歩いて高島の方へ行く男を見た。村人に尋ねると、あの神が足長土と分かった。なるほど足の長い男だった。矮姫は案じた。オカミ神や足長土がいてはこの土地に種を広めて安国にすることはとてもできない。なんとか他所へ追い出すことはできないかと。矮姫はすぐ赤雁の背に乗って空を西から東、北から南へと飛び回った。すると三瓶山の麓の原が目に留まった。この原だと大男の遊び場にちょうどよい広さだ、そう思って矮姫が喜んで帰途につくと、そこから海岸に出たところでこれまた不思議な人影が目に留まった。両手がものすごく長い人が海に手をひたして魚や貝を面白いほど採るのである。矮姫は近づいて、あなたは男か女か名前はと尋ねた。相手は女で名は手長土と答えた。夫はあるかと矮姫が問うと、こんな者だからと女は長い両手を示しながら悲しそうに言う。矮姫はいたわる様に自分もこんな者だが、種を広める役目がある。あなたには足長土という良い人をお世話しよう。二人で助け合えばきっと素晴らしい仕事ができるだろう、そう言って矮姫は急いで帰ると、大男と足長土を急かして東に出立させた。こうして矮姫はこの地方を安国に作り上げることができた。今の岡見という地名はオカミ神からきたのだと言う。
◆コーディングルール
※コーディングルールのキーワードは重要と判断したものを人力でピックアップしている。そのため、恣意性を伴う分析となる。
※活用形でなく基本形で入力する。
※[前処理]→[語の抽出結果を確認]でキーワードがどのように分節されているか検索すると結果の一覧[語の抽出結果]が表示される。
※[Result]から確認したい行をクリックして選択、画面下の[詳細表示]ボタンをクリックするとサブ画面が表示され、活用形や基本形が確認できる。
※昔話では「否定/肯定」「肯定/否定」と属性が変化することが多いと考え、否定詞「ない」「まい」「ぬ」「ん」、また禁止を意味する「な」を共通のコードとして設定している。
※[関連語検索]で否定詞の共起語の一覧を表示させたところ、日本の昔話のように掌編レベルのボリュームだと、物語の動因となる箇所に関する語句が上位に表示される傾向が強いのではないか……といった印象があり、検証作業中である。
※無償版では強制抽出語の指定が機能制限で事実上使用できないため以下のような手法をとっている。
*朝鮮
朝鮮 or ( 西 and 国 )
*ソシモリ
'ソシモリ' or '曽茂利'
*オオゲツヒメ
'大宜都比売命' or '大宜都比売' or '大食之姫' or 'オオゲツヒメ' or '母神' or 命
*五穀
五穀 or 穀物 or 作物 or 大豆 or 稲 or 小豆 or 麦 or 豆 or 黍 or 粟 or 米
*神さま
神さま or 神
*身体
身体 or 体 or 目 or 鼻 or 尻 or 頭 or 腹 or 女陰 or 胸
*宝物
宝物 or 宝
*斬る
斬る or 切る
*殺す
殺す or 殺生
*狭姫
'乙子狭姫' or '狭姫' or '矮姫' or 'サヒメ'
*ちび姫
'ちび姫'
*死ぬ
死ぬ or ( 最期 and 遂げる ) or 亡くなる or ( 息 and 絶える )
*安国
( 東 and 国 ) or '安国' or '心安国' or 日本
*海
海 or 海原 or 日本海
*飛ぶ
飛ぶ or 飛行
*下りる
下りる or 降りる
*足長土
'足長土'
*肉
肉 or 肉食
*不用
( 用 and ない ) or 不用
*亀島
'亀島'
*天道山
'天道山' or 丘
*比礼振山
'比礼振山' or '狭姫山'
*高島
'高島'
*大島
'大島'
*撫でる
撫でる or こする
*粗暴
気 and 荒い
*神代
神 and 代
*赤雁
'赤雁' or 雁
*拒む
拒む or 拒否
*亡骸
亡骸 or 屍 or 死体
*三つ一つ
'三つ一つ'
*千振山
'千振山'
*巨人
巨人 or 大男
*弥畝山
'弥畝山'
*大糞山
'大糞山'
*穴
穴 or 大穴 or '岩穴'
*里人
里人 or 村人
*オカミ
'おかみ'
*足長
足長 or ( 足 and 長い )
*三瓶山
三瓶山 or '佐比売山'
*手長
手 and 長い
*手長土
'手長土'
*務め
務め 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 | 21 (0.083) | 8 (0.250) | 0.1778 |
| 2 | 用 | 名詞C | 5 (0.020) | 4 (0.125) | 0.1212 |
| 3 | 休む | 動詞 | 6 (0.024) | 4 (0.125) | 0.1176 |
| 4 | 島 | 名詞C | 23 (0.091) | 5 (0.156) | 0.1 |
| 5 | 人 | 名詞C | 12 (0.047) | 4 (0.125) | 0.1 |
| 6 | 仕方 | ナイ形容 | 3 (0.012) | 3 (0.094) | 0.0938 |
| 7 | 広める | 動詞 | 6 (0.024) | 3 (0.094) | 0.0857 |
| 8 | 赤雁 | 地名 | 21 (0.083) | 4 (0.125) | 0.0816 |
| 9 | 土 | 名詞C | 21 (0.083) | 4 (0.125) | 0.0816 |
| 10 | 足 | 名詞C | 22 (0.087) | 4 (0.125) | 0.08 |
・「ぬ」の結果上位一覧
| N | 抽出語 | 品詞 | 全体 | 共起 | Jaccard |
| 1 | 人並み | 名詞 | 5 (0.020) | 4 (0.308) | 0.2857 |
| 2 | 小さい | 形容詞 | 8 (0.032) | 3 (0.231) | 0.1667 |
| 3 | 子 | 名詞C | 17 (0.067) | 4 (0.308) | 0.1538 |
| 4 | 外れる | 動詞 | 2 (0.008) | 2 (0.154) | 0.1538 |
| 5 | 宝 | 名詞C | 2 (0.008) | 2 (0.154) | 0.1538 |
| 6 | 息 | サ変名詞 | 4 (0.016) | 2 (0.154) | 0.1333 |
| 7 | 大食 | サ変名詞 | 4 (0.016) | 2 (0.154) | 0.1333 |
| 8 | 気 | 名詞C | 5 (0.020) | 2 (0.154) | 0.125 |
| 9 | 姫 | 名詞C | 52 (0.206) | 6 (0.462) | 0.1017 |
| 10 | 呼ぶ | 動詞 | 10 (0.040) | 2 (0.154) | 0.0952 |
斬り殺された母神の死体から五穀が芽生え、それを持って狭姫は旅立つ……といった粗筋となっている。
短いお話の中で属性の転倒を多用するのが昔話の特徴の一つと考えられる。
ここで「/」(スラッシュ)を「転倒」を意味する記号として用いる。スラッシュは様々な場面で用いられていて文脈依存的な記号という欠点もあるが、視覚的にはイメージしやすいと判断した。
・[旅の神|母神:生/死]
・[狭姫|母神:死体/五穀]
・[高島|五穀:拒絶/不毛]
こういった風にお話を転がしていると分析できる。
殺された母神が「死体/五穀」と転倒することで日本に五穀がもたらされるといった筋立てとなっている。
◆類似度行列
・[コーディング単位]を[文]に変更して[集計]。Jaccard係数がマトリクス形式で確認できる。
・ある列を選択して画面右下の[コピー(選択列)]をクリックすると、当該のキーワードに関するJaccard係数がコピーされるので、それを表計算ソフトにペーストするといった利用が可能となる。
※当ブログでは[コーディング単位]が[段落][H5]の場合、Jacccard係数が1.0~0.5といった結果がほとんどで、意味のない結果となった。
◆多次元尺度構成法
・[コーディング単位]を[文]に変更して実行。
・共起関係を確認したいキーワードを指定。
・次元を「2」から「3」に変更して実行、三次元のマップとした。
狭姫が五穀の種をもって旅立つくだりに関連したキーワードを指定したところ、「亡骸」が離れた位置にプロットされた。
※選択するキーワードによって相対的な位置関係は変わり得る。
※実行すると指定したキーワードの幾つかが除外されるとメッセージが表示される。テキストのボリューム不足のためか無償版の仕様によるものか判断がつかない。
※当ブログの事例では「文」以外、「段落」と「H5」では除外されるキーワードが増える傾向となった。
◆自己組織化マップ
[コーディング単位]を[文]に変更して実行。
記述内容が視覚的に整理され、類似性の高い内容が近くに配置される。概ねストーリーに沿った形で各クラスターが表示される。
※当ブログの事例では「文」以外、「段落」と「H5」ではエラーが返される結果となった。
※クラスター化の計算を繰り返すため処理に時間がかかるので要注意。
※クラスターの配置、距離に意味はない。
◆トピックの推定
・[ツール]→[文書]→[トピックモデル]→[トピックの推定]を選択。
・[集計単位]を[文]に変更。
・[OK]ボタンをクリックすると、[トピックの推定結果]画面が表示される。
・各トピックで高い確率で出現する語句がリストアップされる。
・[#1]といった欄をクリックすると、文書検索画面が表示される。
◆ベイズ学習による分類
・[ツール]→[文書]→[ベイズ学習による分類]→[外部変数から学習]を選択。
・[分類の単位]を[文]に変更。
・[学習する外部変数]は[書名]に変更する。
※「タイトル」のままでもよし。
・[OK]ボタンをクリックすると、ファイルの保存画面が表示されるので、任意のファイル名を記述して保存する。
・[ツール]→[文書]→[ベイズ学習による分類]→[学習結果ファイルの内容を確認]を選択。ファイル選択画面が開くので、先ほど保存したファイルを指定して開く。すると[学習結果ファイル]画面が開くので内容の確認を行う。
※[学習結果を用いた自動分類]については割愛する。
※[トピックの推定]と[ベイズ学習による分類]は固有名詞などを強制抽出語としてあらかじめ指定しておかないと正確に分析されないケースが生じる。正式に利用したい際は有償版の購入をお勧めする。当ブログのはあくまでテストケースとしてのものである。
※[トピックの推定]と[ベイズ学習による分類]はコーディング・ルールに依らない分析手法となるが、筆者の能力的に追及はしない。
◆参考文献
・『日本の民話 34 石見篇』(大庭良美/編, 未来社, 1978)pp.335-337.
・『島根の伝説』(島根県小・中学校国語教育研究会/編, 日本標準, 1978)pp.234-238.
・『出雲・石見の伝説 日本の伝説48』(酒井董美, 萩坂昇, 角川書店, 1980)pp.246-248.
・「江津市の歴史」(山本熊太郎/編著, 1970)pp.3-6.
・『日本伝説大系 第11巻 山陰(鳥取・島根)』(野村純一他, みずうみ書房, 1984)pp.17-21.
・『動かして学ぶ!はじめてのテキストマイニング』(樋口耕一, ナカニシヤ出版, 2022)
・『社会調査のための計量テキスト分析 【第2版】 内容分析の継承と発展を目指して』(樋口耕一, ナカニシヤ出版, 2020)
| 固定リンク
◆はじめに
以下はKH Coder(無償版:version 3.Beta.08e)を用いた昔話の計量テキスト分析である。昔話の類話の比較にツールを利用できないか試行してみた。
手持ちの資料が限られるため、分析の対象となる元データの文字数が少ないものの(※本来であれば5000字以上は欲しい)、分析自体は正常に処理されていると判断した。
KH Coderの操作に慣れる目的も兼ねて行った作業で、コーディングルールの記述の事例集、あるいは速習用のチュートリアルとしてでも読んで頂ければ……といったところである。
なお、KH Coderでよく用いられるのは共起ネットワークと対応分析とのことで、それ以外はおまけパートと思って頂いて構わない。操作に習熟するにはコーディングルールの記述に慣れるのが第一である。
◆ファイル
各ファイルをダウンロードしてKH Coderに読み込ませれば同様の分析が再現可能である。
ダウンロード - ca_pb_046_bakamuko.xlsx
ダウンロード - ca_pb_046_codingrules.txt
ダウンロード - kh_coder_startingedition_sagyotejunsho.txt (※作業手順書)
※「H5」とはHTMLでいうところのヘッダー(見出し)・レベル5で本文に相当すると考えればよい。
※[コーディング単位]は「文/段落/H5」から選べるが、状況に応じて適切と思われるものを選択する必要がある。処理が上手くいかないと感じた場合、コーディング単位を切り替えると上手く処理されるケースがままある。
※公式マニュアルでは「集計単位」という用語が使われている。共起関係について、
・「文」では一文単位での分析
・「段落」では段落単位の分析
・「H5」では表計算ソフトのセル単位とされ、改行を含めた一セルの中身全体が分析単位となる
※レファレンスでも索引で「コーディング単位」の項目は設けられていない。操作性に関わる重要項目であるものの、その仕様について不明瞭な感はある。
※当ブログの場合、表計算ソフトのフォーマットで読み込ませているからH5固定でいいだろうと思い込んでいたら、さにあらずだった。
◆あらすじ
・「馬ほめと仏壇ほめ」(未来社『石見の民話』)
昔、馬鹿な聟がいた。嫁の里に泊まりに行くことになったので、家を出るときに嫁が「行ったらお爺さんは馬を買ったから見てくれと言うから、その時には、どっこもさすってみて、これは良い馬だ。どっこも不足はないが、ちとぎり(つむじ)が高いから噛みつかねばよいが」と言いなさいと教えた。聟は嫁の里に行くと嫁が教えた通りにお爺さんが「馬を買ったから見てくれ」と言った。聟はあちこちさすって「これは良い馬だ。どっこも不足がないが、ちとぎりが高いから、噛みつかねばいいが」と言った。お爺さんはそれを聞いて、この聟は馬鹿だと聞いていたが、まんざら馬鹿でもないと喜んで、今度は家の中へ入って「聟どの、良い仏壇を買ったから見てくれ」と言った。そこで聟は仏壇の前へ行って、あちこち撫でていたが「これは良い仏壇だ。どこも不足はないが、ちとぎりが高いから噛みつかねばいいが」と答えた。
・「馬のしりにお札」(日本標準『島根のむかし話』)
とんとん昔、馬鹿な婿がいた。親は何とかして利口にしようと思っていたが、中々いい具合にならなかった。ところで、どうしたことか知らないが、頭も器量もいい嫁さんが来たそうな。その内に嫁さんの家に婿入りすることになったので、親は大騒ぎした。嫁さんの家は金持ちで大きな家だったので、婿の着物を作ったり土産ものを買ったりした。父親は嫁さんの家は大きな家だから、婿が間違いをしたらいけないと思って嫁さんの家へ行ってみた。嫁さんの家は大きな家だった。たくさんご馳走が出たので、たらふく食べてから、何か話の種になるようなことはないかとあちこち見ていたら、床の間の角に少し穴が開いていた。ああ、これはいいものを見つけた。これを話の種にさせようと家へ帰った。婿を呼んで、お前、嫁さんの家へ行くと奥の座敷へ座らされる。ご馳走がたくさん出るが、あまり食べるなよ。ご馳走を食べてから床の間の角を見ると、穴が開いてるから、ああ、あそこに穴が開いている。鼠が出るといけないからお宮さんのお札を貼っておけば鼠も出ないし目障りにもなりませんと言うのだぞと教えてやった。婿が嫁さんの家に行くと、奥の座敷に座らされた。床の間の方を見ると、本当に穴が開いていた。ははあ、この穴のことだなと思っていた。ご馳走が出たけれども、遠慮して食べた。嫁さんの父親に、ああ、見事な床の間ですが、惜しいことにあの角に穴があります。鼠が出るといけないから、お宮さんのお札を貼っておけば鼠も出ないし体裁もようございますと言った。親父さんはこの婿は少し頭が足りないと聞いていたが、中々いいことを言うと思った。婿が庭へ出てみた。大きな馬が草を食べていたが、その内、ポタポタ、ポタと糞をひった。やれやれ、この馬は汚いことだ。糞が出ないよう体裁もいいよう、親父さん、あの穴にお札を貼りなさいと言った。
◆コーディングルール
※コーディングルールのキーワードは重要と判断したものを人力でピックアップしている。そのため、恣意性を伴う分析となる。
※活用形でなく基本形で入力する。
※[前処理]→[語の抽出結果を確認]でキーワードがどのように分節されているか検索すると結果の一覧[語の抽出結果]が表示される。
※[Result]から確認したい行をクリックして選択、画面下の[詳細表示]ボタンをクリックするとサブ画面が表示され、活用形や基本形が確認できる。
※昔話では「否定/肯定」「肯定/否定」と属性が変化することが多いと考え、否定詞「ない」「まい」「ぬ」「ん」、また禁止を意味する「な」を共通のコードとして設定している。
※[関連語検索]で否定詞の共起語の一覧を表示させたところ、日本の昔話のように掌編レベルのボリュームだと、物語の動因となる箇所に関する語句が上位に表示される傾向が強いのではないか……といった印象があり、検証作業中である。
※無償版では強制抽出語の指定が機能制限で事実上使用できないため以下のような手法をとっている。
*聟
聟 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)から点線が伸び交差した箇所が原点となる。原点から離れるほど特徴的なキーワードだと分析される。
原点付近には「馬鹿」「ない」「聟」といったキーワードがプロットされている。未来社版では「ぎり」「仏壇」「まんざら」といったキーワードが原点から離れてプロットされている。日本標準版では「足りる」「穴」「座敷」といったキーワードが特徴的とされている。
◆解釈
どちらも似たようなオチである。これはデフォルメされているが、ちょっとしたことで底が割れてしまうのは身につまされる。
◆階層的クラスター分析
・[コーディング単位]を[文]に変更、実行するとデンドログラム(樹状図)で可視化される。
※キーワード指定しても可。
概ねストーリーに沿った内容でクラスター化されている。
※当ブログの場合、[コーディング単位]が[段落][H5]だと、コードを全て選択するとエラーが返される結果となった。
◆クロス集計
・[コーディング単位]を[文]に変更、[集計]する。
※「タイトル」で集計をかけた。
クロス集計をかけたところ、「ぎり」「良い」「ぬ」といったキーワードでカイ(χ)2乗値で相関関係を示す結果(※マーク)が得られた。
マップとして描画したところ、「ぎり」「不足」「高い」といったキーワードの残差が大きく(濃く)表示される結果となった。バブルとしては「良い」などが大きく描画された。
◆KWICコンコーダンス
現状ではテキストマイニングのツールに文脈を読む性能はないため実際に該当箇所を読んで人力で判断する他ない。KWICコンコーダンスでキーワード指定すれば指定したキーワードがどのような文脈で用いられているか一覧で抽出される。
◆関連語検索
・[集計単位]を[文]に変更、[集計]する。
・[Search Entry:]の一覧からキーワードを選択してダブルクリックすると[Result]に指定したキーワードの品詞や共起関係が表示される。
※[Result:]から行指定してダブルクリックするとKWICコンコーダンスに遷移する。
※[Result:]の一覧から範囲指定して[コピー]したものを表計算ソフトやテキストファイルにペーストすることも可能である。
[#直接入力]を指定して「ご馳走」といったキーワードで検索すると関連語が一覧で表示される。
◆属性の転倒
・「ない」の結果上位一覧
| N | 抽出語 | 品詞 | 全体 | 共起 | Jaccard |
| 1 | 言う | 動詞 | 9 (0.265) | 7 (0.583) | 0.5 |
| 2 | 出る | 動詞 | 8 (0.235) | 4 (0.333) | 0.25 |
| 3 | お札 | 名詞 | 3 (0.088) | 3 (0.250) | 0.25 |
| 4 | 噛みつく | 動詞 | 3 (0.088) | 3 (0.250) | 0.25 |
| 5 | 高い | 形容詞 | 3 (0.088) | 3 (0.250) | 0.25 |
| 6 | 貼る | 動詞 | 3 (0.088) | 3 (0.250) | 0.25 |
| 7 | 不足 | サ変名詞 | 3 (0.088) | 3 (0.250) | 0.25 |
| 8 | 思う | 動詞 | 4 (0.118) | 3 (0.250) | 0.2308 |
| 9 | お宮 | 名詞 | 2 (0.059) | 2 (0.167) | 0.1667 |
| 10 | 少し | 副詞 | 2 (0.059) | 2 (0.167) | 0.1667 |
・「ぬ」の結果上位一覧
| N | 抽出語 | 品詞 | 全体 | 共起 | Jaccard |
| 1 | 噛みつく | 動詞 | 3 (0.088) | 3 (1.000) | 1 |
| 2 | 高い | 形容詞 | 3 (0.088) | 3 (1.000) | 1 |
| 3 | 不足 | サ変名詞 | 3 (0.088) | 3 (1.000) | 1 |
| 4 | 答える | 動詞 | 1 (0.029) | 1 (0.333) | 0.3333 |
| 5 | 言う | 動詞 | 9 (0.265) | 2 (0.667) | 0.2 |
| 6 | 教える | 動詞 | 3 (0.088) | 1 (0.333) | 0.2 |
・「ん」の結果上位一覧
| N | 抽出語 | 品詞 | 全体 | 共起 | Jaccard |
| 1 | 目障り | 名詞 | 1 (0.029) | 1 (1.000) | 1 |
| 2 | お宮 | 名詞 | 2 (0.059) | 1 (1.000) | 0.5 |
| 3 | 鼠 | 名詞C | 2 (0.059) | 1 (1.000) | 0.5 |
| 4 | お札 | 名詞 | 3 (0.088) | 1 (1.000) | 0.3333 |
| 5 | 教える | 動詞 | 3 (0.088) | 1 (1.000) | 0.3333 |
| 6 | 貼る | 動詞 | 3 (0.088) | 1 (1.000) | 0.3333 |
| 7 | 出る | 動詞 | 8 (0.235) | 1 (1.000) | 0.125 |
| 8 | 言う | 動詞 | 9 (0.265) | 1 (1.000) | 0.1111 |
事前に教えてもらった通りに話したところ上手くいったが、次も同じことを繰り返してしまった……といった粗筋となっている。
短いお話の中で属性の転倒を多用するのが昔話の特徴の一つと考えられる。
ここで「/」(スラッシュ)を「転倒」を意味する記号として用いる。スラッシュは様々な場面で用いられていて文脈依存的な記号という欠点もあるが、視覚的にはイメージしやすいと判断した。
・[爺さん|聟:まんざらでもない/馬鹿]
・[嫁の父|婿:利口/馬鹿]
・[穴|お札:鼠/馬]
こういった風にお話を転がしていると分析できる。
同じ言い回しを繰り返すことで「利口/馬鹿」と転倒させている。
◆類似度行列
・[コーディング単位]を[文]に変更して[集計]。Jaccard係数がマトリクス形式で確認できる。
・ある列を選択して画面右下の[コピー(選択列)]をクリックすると、当該のキーワードに関するJaccard係数がコピーされるので、それを表計算ソフトにペーストするといった利用が可能となる。
※当ブログでは[コーディング単位]が[段落][H5]の場合、Jacccard係数が1.0~0.5といった結果がほとんどで、意味のない結果となった。
◆多次元尺度構成法
・[コーディング単位]を[文]に変更して実行。
・共起関係を確認したいキーワードを指定。
・次元を「2」から「3」に変更して実行、三次元のマップとした。
聟をまんざらでもないと見直すくだりに関連したキーワードを指定したところ、「嫁」が離れた位置にプロットされた。
※選択するキーワードによって相対的な位置関係は変わり得る。
※実行すると指定したキーワードの幾つかが除外されるとメッセージが表示される。テキストのボリューム不足のためか無償版の仕様によるものか判断がつかない。
※当ブログの事例では「文」以外、「段落」と「H5」では除外されるキーワードが増える傾向となった。
◆自己組織化マップ
[コーディング単位]を[文]に変更して実行。
記述内容が視覚的に整理され、類似性の高い内容が近くに配置される。概ねストーリーに沿った形で各クラスターが表示される。
※当ブログの事例では「文」以外、「段落」と「H5」ではエラーが返される結果となった。
※クラスター化の計算を繰り返すため処理に時間がかかるので要注意。
※クラスターの配置、距離に意味はない。
◆トピックの推定
・[ツール]→[文書]→[トピックモデル]→[トピックの推定]を選択。
・[集計単位]を[文]に変更。
・[OK]ボタンをクリックすると、[トピックの推定結果]画面が表示される。
・各トピックで高い確率で出現する語句がリストアップされる。
・[#1]といった欄をクリックすると、文書検索画面が表示される。
◆ベイズ学習による分類
・[ツール]→[文書]→[ベイズ学習による分類]→[外部変数から学習]を選択。
・[分類の単位]を[文]に変更。
・[学習する外部変数]は[書名]に変更する。
※「タイトル」のままでもよし。
・[OK]ボタンをクリックすると、ファイルの保存画面が表示されるので、任意のファイル名を記述して保存する。
・[ツール]→[文書]→[ベイズ学習による分類]→[学習結果ファイルの内容を確認]を選択。ファイル選択画面が開くので、先ほど保存したファイルを指定して開く。すると[学習結果ファイル]画面が開くので内容の確認を行う。
※[学習結果を用いた自動分類]については割愛する。
※[トピックの推定]と[ベイズ学習による分類]は固有名詞などを強制抽出語としてあらかじめ指定しておかないと正確に分析されないケースが生じる。正式に利用したい際は有償版の購入をお勧めする。当ブログのはあくまでテストケースとしてのものである。
※[トピックの推定]と[ベイズ学習による分類]はコーディング・ルールに依らない分析手法となるが、筆者の能力的に追及はしない。
◆参考文献
・『日本の民話 34 石見篇』(大庭良美/編, 未来社, 1978)pp.197-198.
・『島根のむかし話』(島根県小・中学校国語教育研究会/編著, 日本標準, 1976)pp.153-156.
・『動かして学ぶ!はじめてのテキストマイニング』(樋口耕一, ナカニシヤ出版, 2022)
・『社会調査のための計量テキスト分析 【第2版】 内容分析の継承と発展を目指して』(樋口耕一, ナカニシヤ出版, 2020)
| 固定リンク
◆はじめに
以下はKH Coder(無償版:version 3.Beta.08e)を用いた昔話の計量テキスト分析である。昔話の類話の比較にツールを利用できないか試行してみた。
手持ちの資料が限られるため、分析の対象となる元データの文字数が少ないものの(※本来であれば5000字以上は欲しい)、分析自体は正常に処理されていると判断した。
KH Coderの操作に慣れる目的も兼ねて行った作業で、コーディングルールの記述の事例集、あるいは速習用のチュートリアルとしてでも読んで頂ければ……といったところである。
なお、KH Coderでよく用いられるのは共起ネットワークと対応分析とのことで、それ以外はおまけパートと思って頂いて構わない。操作に習熟するにはコーディングルールの記述に慣れるのが第一である。
◆ファイル
各ファイルをダウンロードしてKH Coderに読み込ませれば同様の分析が再現可能である。
ダウンロード - ca_pb_045_yamauba.xlsx
ダウンロード - ca_pb_045_codingrules.txt
ダウンロード - kh_coder_startingedition_sagyotejunsho.txt (※作業手順書)
※「H5」とはHTMLでいうところのヘッダー(見出し)・レベル5で本文に相当すると考えればよい。
※[コーディング単位]は「文/段落/H5」から選べるが、状況に応じて適切と思われるものを選択する必要がある。処理が上手くいかないと感じた場合、コーディング単位を切り替えると上手く処理されるケースがままある。
※公式マニュアルでは「集計単位」という用語が使われている。共起関係について、
・「文」では一文単位での分析
・「段落」では段落単位の分析
・「H5」では表計算ソフトのセル単位とされ、改行を含めた一セルの中身全体が分析単位となる
※レファレンスでも索引で「コーディング単位」の項目は設けられていない。操作性に関わる重要項目であるものの、その仕様について不明瞭な感はある。
※当ブログの場合、表計算ソフトのフォーマットで読み込ませているからH5固定でいいだろうと思い込んでいたら、さにあらずだった。
◆あらすじ
・「山姥の手つだい」(未来社『石見の民話』)
石見町矢上の原山にある岩窟は市木浄泉寺の下まで続いていると言われている。そしてこの岩窟には山姥が住んでいたという。昔、大石の田植えは分限者のことで大田植だった。毎年のように早乙女を十四五人雇っていたが、田植えの日になると夜明けからきれいに身支度をした早乙女が集まって田に入る。苗取りのときはそんなにはっきりしないが、並んで植え始めるとどうも雇った人数より一人多い。ところが不思議なことに顔を見ても違った人は見当たらない。それが、数えてみると一人多いので、誰か手伝いに来てくれたのだろうと昼飯の準備は一人増やしておいた。昼になって早乙女は田からあがって食事をした。ところが済んでから見ると一人分残っている。変に思って午後田に出た早乙女を数えてみると、やはり一人多い。ますます変だと思いながら田植えが済んで田から上がった人数を数えてみると、間違いなく雇っただけの人数だった。それでいよいよ訳が分からなくなってしまった。明くる年もその明くる年も同じ様な事が続いて、結局一人増えるのは山姥が手伝いに来たのだろうということになった。
・「榎の木山の山婆」(未来社『石見の民話』)
清見の大掛と平田の田原との境に榎の木山という山がある。むかし榎の木山に山婆がいて大掛の川渕や田原の伊の木へ時々木綿を引きに出てきた。山婆は一日に糸巻きの管にやっと二本くらいしか引かなかったが、かせに巻くと不思議に巻いても巻いても糸が出てきて榎の木山の高さよりもっと長く出た。山婆の髪は真っ白だったが、山婆が米をとぐとぎ汁は榎の木川を白くしていつまでも流れた。その後榎の木山の持ち主が山の木を伐り払ったため、山婆は髪の白いのが恥ずかしくていることができず石見町の原山へ逃げていった。その時、清見の川渕と田原の伊の木の二軒だけは食物に不自由のないようにといって飯杓子を一本ずつ渡して、飯が少ないときはこの杓子でまぜるといくらでも増えると教えていった。ところが伊の木では父親が外から帰ってきてこんな汚い杓子はいらんと捨ててしまった。後からその杓子の有り難さを知って探しに行ったが、どこにも見えなかった。山婆が田原の金沢へ一度宿を借りに来た。気持ちよく宿を貸したところ、お礼に米のとぎ汁をあげるから、これからは水に不自由はせぬと言った。この水は濁っているが今でも絶えることはない。榎の木山の九合目には山婆のせんち石といって山婆がせんちにした跡という岩がある。
・「山姥のはたせ」(みずうみ書房『日本伝説大系』第十一巻)
麦尾の奥、布干山の麓に岩屋があり、昔そこに山姥が住んでいて、いつも機を織っていた。この岩屋は原山の中腹の岩屋と通じていると言われていた。そして織った布を干したから布干山といい、またそのはたせを山中の木の枝に投げかけていたので山姥のはたせができたものであると言われてきた。山姥のはたせは今でも布干山には木の枝について下がっている。これは「さるをがせ」という一種の地衣類で、古木の枝に糸を垂らしたように着いている。
◆コーディングルール
※コーディングルールのキーワードは重要と判断したものを人力でピックアップしている。そのため、恣意性を伴う分析となる。
※活用形でなく基本形で入力する。
※[前処理]→[語の抽出結果を確認]でキーワードがどのように分節されているか検索すると結果の一覧[語の抽出結果]が表示される。
※[Result]から確認したい行をクリックして選択、画面下の[詳細表示]ボタンをクリックするとサブ画面が表示され、活用形や基本形が確認できる。
※昔話では「否定/肯定」「肯定/否定」と属性が変化することが多いと考え、否定詞「ない」「まい」「ぬ」「ん」、また禁止を意味する「な」を共通のコードとして設定している。
※[関連語検索]で否定詞の共起語の一覧を表示させたところ、日本の昔話のように掌編レベルのボリュームだと、物語の動因となる箇所に関する語句が上位に表示される傾向が強いのではないか……といった印象があり、検証作業中である。
※無償版では強制抽出語の指定が機能制限で事実上使用できないため以下のような手法をとっている。
*矢上
'矢上'
*原山
'原山'
*岩窟
岩窟 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 | 人数 | 名詞 | 2 (0.067) | 2 (0.250) | 0.25 |
| 2 | 不思議 | 形容動詞 | 2 (0.067) | 2 (0.250) | 0.25 |
| 3 | 雇う | 動詞 | 3 (0.100) | 2 (0.250) | 0.2222 |
| 4 | 杓子 | 名詞 | 3 (0.100) | 2 (0.250) | 0.2222 |
| 5 | 違う | 動詞 | 1 (0.033) | 1 (0.125) | 0.125 |
| 6 | 巻く | 動詞 | 1 (0.033) | 1 (0.125) | 0.125 |
| 7 | 管 | 名詞C | 1 (0.033) | 1 (0.125) | 0.125 |
| 8 | 間違い | ナイ形容 | 1 (0.033) | 1 (0.125) | 0.125 |
| 9 | 顔 | 名詞C | 1 (0.033) | 1 (0.125) | 0.125 |
| 10 | 教える | 動詞 | 1 (0.033) | 1 (0.125) | 0.125 |
・「ぬ」の結果上位一覧
| N | 抽出語 | 品詞 | 全体 | 共起 | Jaccard |
| 1 | お礼 | サ変名詞 | 1 (0.033) | 1 (0.500) | 0.5 |
| 2 | その後 | 副詞可能 | 1 (0.033) | 1 (0.500) | 0.5 |
| 3 | 気持ちよい | 形容詞 | 1 (0.033) | 1 (0.500) | 0.5 |
| 4 | 持ち主 | 名詞 | 1 (0.033) | 1 (0.500) | 0.5 |
| 5 | 貸す | 動詞 | 1 (0.033) | 1 (0.500) | 0.5 |
| 6 | 恥ずかしい | 形容詞 | 1 (0.033) | 1 (0.500) | 0.5 |
| 7 | 逃げる | 動詞 | 1 (0.033) | 1 (0.500) | 0.5 |
| 8 | 伐る | 動詞 | 1 (0.033) | 1 (0.500) | 0.5 |
| 9 | 払う | 動詞 | 1 (0.033) | 1 (0.500) | 0.5 |
| 10 | 原山 | 地名 | 2 (0.067) | 1 (0.500) | 0.3333 |
・「ん」の結果上位一覧
| N | 抽出語 | 品詞 | 全体 | 共起 | Jaccard |
| 1 | 汚い | 形容詞 | 1 (0.033) | 1 (1.000) | 1 |
| 2 | 外 | 名詞C | 1 (0.033) | 1 (1.000) | 1 |
| 3 | 帰る | 動詞 | 1 (0.033) | 1 (1.000) | 1 |
| 4 | 捨てる | 動詞 | 1 (0.033) | 1 (1.000) | 1 |
| 5 | 父親 | 名詞 | 1 (0.033) | 1 (1.000) | 1 |
| 6 | 伊 | 地名 | 3 (0.100) | 1 (1.000) | 0.3333 |
| 7 | 杓子 | 名詞 | 3 (0.100) | 1 (1.000) | 0.3333 |
| 8 | 木 | 名詞C | 6 (0.200) | 1 (1.000) | 0.1667 |
山婆からもらった飯杓子を捨ててしまい、後でその大切さに気づいて探したが見つからなかった……といった粗筋となっている。
短いお話の中で属性の転倒を多用するのが昔話の特徴の一つと考えられる。
ここで「/」(スラッシュ)を「転倒」を意味する記号として用いる。スラッシュは様々な場面で用いられていて文脈依存的な記号という欠点もあるが、視覚的にはイメージしやすいと判断した。
・[分限者|早乙女:一人多い/人数通り]
・[山婆|飯杓子:足りない/増える]
・[父親|飯杓子:汚い/有り難い]
こういった風にお話を転がしていると分析できる。
山姥は大田植をこっそり手伝っているらしいが「一人多い/人数通り」と転倒させることで姿を隠している。
◆類似度行列
・[コーディング単位]を[文]に変更して[集計]。Jaccard係数がマトリクス形式で確認できる。
・ある列を選択して画面右下の[コピー(選択列)]をクリックすると、当該のキーワードに関するJaccard係数がコピーされるので、それを表計算ソフトにペーストするといった利用が可能となる。
※当ブログでは[コーディング単位]が[段落][H5]の場合、Jacccard係数が1.0~0.5といった結果がほとんどで、意味のない結果となった。
◆多次元尺度構成法
・[コーディング単位]を[文]に変更して実行。
・共起関係を確認したいキーワードを指定。
・次元を「2」から「3」に変更して実行、三次元のマップとした。
大田植で早乙女の人数が一人多いくだりに関連したキーワードを指定したところ、「残る」が離れた位置にプロットされた。
※選択するキーワードによって相対的な位置関係は変わり得る。
※実行すると指定したキーワードの幾つかが除外されるとメッセージが表示される。テキストのボリューム不足のためか無償版の仕様によるものか判断がつかない。
※当ブログの事例では「文」以外、「段落」と「H5」では除外されるキーワードが増える傾向となった。
◆自己組織化マップ
[コーディング単位]を[文]に変更して実行。
記述内容が視覚的に整理され、類似性の高い内容が近くに配置される。概ねストーリーに沿った形で各クラスターが表示される。
※当ブログの事例では「文」以外、「段落」と「H5」ではエラーが返される結果となった。
※クラスター化の計算を繰り返すため処理に時間がかかるので要注意。
※クラスターの配置、距離に意味はない。
◆トピックの推定
・[ツール]→[文書]→[トピックモデル]→[トピックの推定]を選択。
・[集計単位]を[文]に変更。
・[OK]ボタンをクリックすると、[トピックの推定結果]画面が表示される。
・各トピックで高い確率で出現する語句がリストアップされる。
・[#1]といった欄をクリックすると、文書検索画面が表示される。
◆ベイズ学習による分類
・[ツール]→[文書]→[ベイズ学習による分類]→[外部変数から学習]を選択。
・[分類の単位]を[文]に変更。
・[学習する外部変数]は[書名]に変更する。
※「タイトル」のままでもよし。
・[OK]ボタンをクリックすると、ファイルの保存画面が表示されるので、任意のファイル名を記述して保存する。
・[ツール]→[文書]→[ベイズ学習による分類]→[学習結果ファイルの内容を確認]を選択。ファイル選択画面が開くので、先ほど保存したファイルを指定して開く。すると[学習結果ファイル]画面が開くので内容の確認を行う。
※[学習結果を用いた自動分類]については割愛する。
※[トピックの推定]と[ベイズ学習による分類]は固有名詞などを強制抽出語としてあらかじめ指定しておかないと正確に分析されないケースが生じる。正式に利用したい際は有償版の購入をお勧めする。当ブログのはあくまでテストケースとしてのものである。
※[トピックの推定]と[ベイズ学習による分類]はコーディング・ルールに依らない分析手法となるが、筆者の能力的に追及はしない。
◆参考文献
・『日本の民話 34 石見篇』(大庭良美/編, 未来社, 1978)pp.103, 104-105.
・『日本伝説大系 第11巻 山陰(鳥取・島根)』(野村純一他, みずうみ書房, 1984)p.174.
・『動かして学ぶ!はじめてのテキストマイニング』(樋口耕一, ナカニシヤ出版, 2022)
・『社会調査のための計量テキスト分析 【第2版】 内容分析の継承と発展を目指して』(樋口耕一, ナカニシヤ出版, 2020)
| 固定リンク
◆はじめに
以下はKH Coder(無償版:version 3.Beta.08e)を用いた昔話の計量テキスト分析である。昔話の類話の比較にツールを利用できないか試行してみた。
手持ちの資料が限られるため、分析の対象となる元データの文字数が少ないものの(※本来であれば5000字以上は欲しい)、分析自体は正常に処理されていると判断した。
KH Coderの操作に慣れる目的も兼ねて行った作業で、コーディングルールの記述の事例集、あるいは速習用のチュートリアルとしてでも読んで頂ければ……といったところである。
なお、KH Coderでよく用いられるのは共起ネットワークと対応分析とのことで、それ以外はおまけパートと思って頂いて構わない。操作に習熟するにはコーディングルールの記述に慣れるのが第一である。
◆ファイル
各ファイルをダウンロードしてKH Coderに読み込ませれば同様の分析が再現可能である。
ダウンロード - ca_pb_044_nakikurabe.xlsx
ダウンロード - ca_pb_044_codingrules.txt
ダウンロード - kh_coder_startingedition_sagyotejunsho.txt (※作業手順書)
※「H5」とはHTMLでいうところのヘッダー(見出し)・レベル5で本文に相当すると考えればよい。
※[コーディング単位]は「文/段落/H5」から選べるが、状況に応じて適切と思われるものを選択する必要がある。処理が上手くいかないと感じた場合、コーディング単位を切り替えると上手く処理されるケースがままある。
※公式マニュアルでは「集計単位」という用語が使われている。共起関係について、
・「文」では一文単位での分析
・「段落」では段落単位の分析
・「H5」では表計算ソフトのセル単位とされ、改行を含めた一セルの中身全体が分析単位となる
※レファレンスでも索引で「コーディング単位」の項目は設けられていない。操作性に関わる重要項目であるものの、その仕様について不明瞭な感はある。
※当ブログの場合、表計算ソフトのフォーマットで読み込ませているからH5固定でいいだろうと思い込んでいたら、さにあらずだった。
◆あらすじ
・「ホトトギス」(未来社『石見の民話』)
昔、ホトトギスと雉子がどちらがたくさん鳴くか自慢し合った。雉子が自分は秋の彼岸から春の彼岸までに一千一声鳴くと自慢した。ホトトギスは負けん気になって自分は一夏に八千八声鳴いてみせると自慢した。それでは見せてみよという話になった。さっそくホトトギスは鳴き始めたが中々八千八声は鳴けなくて、仕方がないから飛んでいるときも鳴いた。それでも八千八声には届かないので、今度は夜も寝ずに鳴いた。しまいには喉から血が出た。それでも雉子に約束した八千八声鳴かねばならない。困った。卵を産んでかえすときに鳴かなかったら八千八声にならない。そこで考えた。鶯がいない時には鶯の卵を放りだして自分の卵を産んでおいた。そうと知らない鶯は一生懸命かえして育てた。ホトトギスの子は一人で飛べるようになると、他所へ飛んでいってしまうそうだ。そうしてホトトギスは八千八声鳴く。八千八声鳴くと喉から血を出して死んでしまうそうだ。
・「鳴きくらべ」(日本標準『島根のむかし話』)
とんとん昔、出雲の神さまで大変鳥好きのお方がいて、その神さまは毎日のように鳥を集めて飛び比べをしたり鳴き比べをさせたりしていた。ある時、その神さまがお前たちの鳴き方は長いばかりで面白味がない。今度は誰が一番短い鳴き方をするか比べてみると言った。そこで、どの鳥も短い鳴き方の稽古をしたが、そう簡単に短く鳴けないものだから困ってしまった。そうする内に鳴き比べの日が来たが、大層集まるだろうと神さまは思っていたが、集まったのは鳶と雉と鷺だった。一番初めに雉がケーン、ケンと鳴いてそれで止めておけばよかったのにバータ、バタと羽根をバタバタさせたものだから、これも鳴き声に聞こえた。二番目の鳶は目をギョロギョロさせて、ピーン、ヒョロ、ヒョロ、ヒョロと鳴いたものだから雉よりも長かった。お仕舞いの鷺は足をピーンを伸ばしてギャーと一声鳴いて止めた。神さまはお前が一番短い。お前が一番だと褒めた。けれども、あまりいい声ではなかったそうだ。鷺の頭の後ろの方にピーンとした髭があるのは一番になった証拠だという。
◆コーディングルール
※コーディングルールのキーワードは重要と判断したものを人力でピックアップしている。そのため、恣意性を伴う分析となる。
※活用形でなく基本形で入力する。
※[前処理]→[語の抽出結果を確認]でキーワードがどのように分節されているか検索すると結果の一覧[語の抽出結果]が表示される。
※[Result]から確認したい行をクリックして選択、画面下の[詳細表示]ボタンをクリックするとサブ画面が表示され、活用形や基本形が確認できる。
※昔話では「否定/肯定」「肯定/否定」と属性が変化することが多いと考え、否定詞「ない」「まい」「ぬ」「ん」、また禁止を意味する「な」を共通のコードとして設定している。
※[関連語検索]で否定詞の共起語の一覧を表示させたところ、日本の昔話のように掌編レベルのボリュームだと、物語の動因となる箇所に関する語句が上位に表示される傾向が強いのではないか……といった印象があり、検証作業中である。
※無償版では強制抽出語の指定が機能制限で事実上使用できないため以下のような手法をとっている。
*雉子
雉子 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 | 9 (0.321) | 5 (0.556) | 0.3846 |
| 2 | 鳴く | 動詞 | 14 (0.500) | 5 (0.556) | 0.2778 |
| 3 | 産む | 動詞 | 2 (0.071) | 2 (0.222) | 0.2222 |
| 4 | 鳴ける | 動詞 | 2 (0.071) | 2 (0.222) | 0.2222 |
| 5 | 卵 | 名詞C | 2 (0.071) | 2 (0.222) | 0.2222 |
| 6 | 鶯 | 地名 | 2 (0.071) | 2 (0.222) | 0.2222 |
| 7 | 育てる | 動詞 | 1 (0.036) | 1 (0.111) | 0.1111 |
| 8 | 一生懸命 | 副詞可能 | 1 (0.036) | 1 (0.111) | 0.1111 |
| 9 | 簡単 | 形容動詞 | 1 (0.036) | 1 (0.111) | 0.1111 |
| 10 | 稽古 | サ変名詞 | 1 (0.036) | 1 (0.111) | 0.1111 |
・「ぬ」の結果上位一覧
| N | 抽出語 | 品詞 | 全体 | 共起 | Jaccard |
| 1 | 寝る | 動詞 | 1 (0.036) | 1 (0.500) | 0.5 |
| 2 | 届く | 動詞 | 1 (0.036) | 1 (0.500) | 0.5 |
| 3 | 夜 | 副詞可能 | 1 (0.036) | 1 (0.500) | 0.5 |
| 4 | 約束 | サ変名詞 | 1 (0.036) | 1 (0.500) | 0.5 |
| 5 | 今度 | 副詞可能 | 2 (0.071) | 1 (0.500) | 0.3333 |
| 6 | 雉子 | 名詞 | 3 (0.107) | 1 (0.500) | 0.25 |
| 7 | 声 | 名詞C | 9 (0.321) | 2 (1.000) | 0.2222 |
| 8 | 鳴く | 動詞 | 14 (0.500) | 2 (1.000) | 0.1429 |
約束をあの手この手でなんとか果たしたホトトギスだったが、その結果死んでしまう……といった粗筋となっている。
短いお話の中で属性の転倒を多用するのが昔話の特徴の一つと考えられる。
ここで「/」(スラッシュ)を「転倒」を意味する記号として用いる。スラッシュは様々な場面で用いられていて文脈依存的な記号という欠点もあるが、視覚的にはイメージしやすいと判断した。
・[ホトトギス|約束:生/死]
・[神さま|鳴き声:長い/短い]
こういった風にお話を転がしていると分析できる。
出雲の神さまは良い鳴き声を「長い/短い」と転倒させることで鳥たちを競わせた。
◆類似度行列
・[コーディング単位]を[文]に変更して[集計]。Jaccard係数がマトリクス形式で確認できる。
・ある列を選択して画面右下の[コピー(選択列)]をクリックすると、当該のキーワードに関するJaccard係数がコピーされるので、それを表計算ソフトにペーストするといった利用が可能となる。
※当ブログでは[コーディング単位]が[段落][H5]の場合、Jacccard係数が1.0~0.5といった結果がほとんどで、意味のない結果となった。
◆多次元尺度構成法
・[コーディング単位]を[文]に変更して実行。
・共起関係を確認したいキーワードを指定。
・次元を「2」から「3」に変更して実行、三次元のマップとした。
鳥たちが鳴き比べるくだりに関連したキーワードを指定したところ、「比べる」が離れた位置にプロットされた。
※選択するキーワードによって相対的な位置関係は変わり得る。
※実行すると指定したキーワードの幾つかが除外されるとメッセージが表示される。テキストのボリューム不足のためか無償版の仕様によるものか判断がつかない。
※当ブログの事例では「文」以外、「段落」と「H5」では除外されるキーワードが増える傾向となった。
◆自己組織化マップ
[コーディング単位]を[文]に変更して実行。
記述内容が視覚的に整理され、類似性の高い内容が近くに配置される。概ねストーリーに沿った形で各クラスターが表示される。
※当ブログの事例では「文」以外、「段落」と「H5」ではエラーが返される結果となった。
※クラスター化の計算を繰り返すため処理に時間がかかるので要注意。
※クラスターの配置、距離に意味はない。
◆トピックの推定
・[ツール]→[文書]→[トピックモデル]→[トピックの推定]を選択。
・[集計単位]を[文]に変更。
・[OK]ボタンをクリックすると、[トピックの推定結果]画面が表示される。
・各トピックで高い確率で出現する語句がリストアップされる。
・[#1]といった欄をクリックすると、文書検索画面が表示される。
◆ベイズ学習による分類
・[ツール]→[文書]→[ベイズ学習による分類]→[外部変数から学習]を選択。
・[分類の単位]を[文]に変更。
・[学習する外部変数]は[書名]に変更する。
※「タイトル」のままでもよし。
・[OK]ボタンをクリックすると、ファイルの保存画面が表示されるので、任意のファイル名を記述して保存する。
・[ツール]→[文書]→[ベイズ学習による分類]→[学習結果ファイルの内容を確認]を選択。ファイル選択画面が開くので、先ほど保存したファイルを指定して開く。すると[学習結果ファイル]画面が開くので内容の確認を行う。
※[学習結果を用いた自動分類]については割愛する。
※[トピックの推定]と[ベイズ学習による分類]は固有名詞などを強制抽出語としてあらかじめ指定しておかないと正確に分析されないケースが生じる。正式に利用したい際は有償版の購入をお勧めする。当ブログのはあくまでテストケースとしてのものである。
※[トピックの推定]と[ベイズ学習による分類]はコーディング・ルールに依らない分析手法となるが、筆者の能力的に追及はしない。
◆参考文献
・『日本の民話 34 石見篇』(大庭良美/編, 未来社, 1978)p.107.
・『島根のむかし話』(島根県小・中学校国語教育研究会/編著, 日本標準, 1976)pp.29-31.
・『動かして学ぶ!はじめてのテキストマイニング』(樋口耕一, ナカニシヤ出版, 2022)
・『社会調査のための計量テキスト分析 【第2版】 内容分析の継承と発展を目指して』(樋口耕一, ナカニシヤ出版, 2020)
| 固定リンク
◆はじめに
以下はKH Coder(無償版:version 3.Beta.08e)を用いた昔話の計量テキスト分析である。昔話の類話の比較にツールを利用できないか試行してみた。
手持ちの資料が限られるため、分析の対象となる元データの文字数が少ないものの(※本来であれば5000字以上は欲しい)、分析自体は正常に処理されていると判断した。
KH Coderの操作に慣れる目的も兼ねて行った作業で、コーディングルールの記述の事例集、あるいは速習用のチュートリアルとしてでも読んで頂ければ……といったところである。
なお、KH Coderでよく用いられるのは共起ネットワークと対応分析とのことで、それ以外はおまけパートと思って頂いて構わない。操作に習熟するにはコーディングルールの記述に慣れるのが第一である。
◆ファイル
各ファイルをダウンロードしてKH Coderに読み込ませれば同様の分析が再現可能である。
ダウンロード - ca_pb_043_kitsunenohachihenge.xlsx
ダウンロード - ca_pb_043_codingrules.txt
ダウンロード - kh_coder_startingedition_sagyotejunsho.txt (※作業手順書)
※「H5」とはHTMLでいうところのヘッダー(見出し)・レベル5で本文に相当すると考えればよい。
※[コーディング単位]は「文/段落/H5」から選べるが、状況に応じて適切と思われるものを選択する必要がある。処理が上手くいかないと感じた場合、コーディング単位を切り替えると上手く処理されるケースがままある。
※公式マニュアルでは「集計単位」という用語が使われている。共起関係について、
・「文」では一文単位での分析
・「段落」では段落単位の分析
・「H5」では表計算ソフトのセル単位とされ、改行を含めた一セルの中身全体が分析単位となる
※レファレンスでも索引で「コーディング単位」の項目は設けられていない。操作性に関わる重要項目であるものの、その仕様について不明瞭な感はある。
※当ブログの場合、表計算ソフトのフォーマットで読み込ませているからH5固定でいいだろうと思い込んでいたら、さにあらずだった。
◆あらすじ
・「お松狐」(未来社『石見の民話』)
浄福寺が鳥越にあった頃、ここではお松狐に化かされる者が沢山いた。鳥居村迫の原政四郎が魚商人をしていた。ある日魚を売っての帰りがけ、日の暮れぬ時刻に浄福寺の後ろを通りかかるとにわかに暗くなった。政四郎は自分を化かそうとしても叶わない。お松は七変化しか知らないだろうが自分は九変化できる皮をもっているからと叫んだ。すると元の様に明るくなった。そしてお松狐が出てきて政四郎の九変化の皮と自分の七変化の皮を換えてくれと頼んだ。政四郎は家へ連れて帰って座布団にしている猫の皮を出して、七変化の皮と取り替えた。そして近いうちに宮脇で婚礼があるから、この皮を被ってご馳走をよばれるとよいと教えた。さて、宮脇の婚礼の晩になると、お松は九変化の猫の皮を被ってのこのこと座敷へ上がっていった。宮脇ではこの狐めとよってたかって殴りつけた。お松はやっとのことで逃げて帰った。政四郎に騙されたと気づいたお松は七変化の皮を返して欲しいと頼んだ。政四郎はもう人を化かさないと約束させて返してやった。それから浄福寺のところで人が化かされることはなくなった。
・「大かん狐」(未来社『石見の民話』)
昔、大かんの大岩の辺りに大かん狐というよく人を化かす狐がいた。日が暮れてここを通るとよく化かされた。それを問屋の主人が大層自慢にして、来る船頭毎に大かん狐はよく人を化かす。誰でも彼でも皆化かすと言った。一人の船頭がそれを聞いて自分なら化かされないと言った。それなら賭けをしようということになって、船頭は日が暮れるのを待って大かんへ出かけた。そして大岩に腰をかけていると、向こうから殿さまの行列がやって来た。下に、下にという声に船頭はやれしまった、殿さまのお通りとは知らなかったと小さくなっている内に先払いが来て、やい無礼者、殿さまのお通りというのにそこにおるとは不届き者、手打ちにしてやると言った。船頭がどうなることかと震えていると、これでこらえてやると言って頭をくりくり坊主に剃ってしまった。やれ助かったと思ってみると、侍も殿さまもいない。これはしまった。狐に化かされたと思って問屋へ戻ったところ、これは自分の勝ちだ。それでは約束通り船をもらうと言って、乗ってきた船を取られてしまった。船頭は仕方ないので何里もある道を歩いて帰って布団を被って寝ていた。三日経っても起きないので女房が心配して訳を尋ねた。それを聞くと女房は、それなら自分が仇をとってやろうと言って千石船を準備してそれに乗って出かけた。そして問屋の主人に自分なら化かされないと言った。そこで千石船と問屋の家財全部とで賭けをすることになった。女船頭は日が暮れるのを待って大かんの大岩へ出かけた。間もなく下に、下にという声が聞こえてきた。女船頭は侍に化けている狐に向かって、まだまだ化け方が下手だ。目で直せと怒鳴りつけた。狐どもは化けの皮が剥がれたと思って、どのようにすれば化けられるかと尋ねた。女船頭が唐鐘へ行って木綿と針と糸をとってくれば言うて聞かすと言うと、狐どもはすぐ唐鐘へ行って盗んできた。女船頭はそれで大きな袋をこしらえて、この袋の中へ入れ、そうしたら言うて聞かすと言った。狐どもは皆袋の中へ入ったので女船頭は袋の口をしっかり結んで問屋へ引きずって帰った。問屋の主人はびっくりしてしまった。女船頭は多くの若い衆を使って狐を猫島の沖へ沈めてしまったので、それから大かんで狐に化かされる者はいなくなった。女船頭は勝ったので、問屋の家財を全部もらって大金持ちになった。
・「キツネ退治」(日本標準『島根のむかし話』)
とんとん昔、栗の木坂に上手に人を化かす狐がいた。その狐は栗の木坂を人が通ると化かすので誰もが困っていた。そこで、何とかして退治してしまわないとどうにもいけないということになった。そうしたら、元気のいい男が、それなら自分が退治してやると言った。その男は家に帰って、嬶、今夜、狐退治に行くから大きな袋を作ってくれと頼んだ。袋を作ってもらった男は、晩方になって栗の木坂に行った。そうしたら、坂の途中に綺麗な綺麗な娘がいた。娘さん、娘さん、どこへ行きなさると聞いたら、自分は変化を教えてもらおうと思って立っていた。お前さんはどこへ行きなさると娘は答えた。ああ、自分も変化を教えてもらおうと思って来たが、お前さんはなんぼ変化を知っておるかと男が聞くと、自分は七変化知っているが、お前さんはと娘が言った。自分は八変化知っているが、それならお前に八変化教えてあげるから家の者を連れてきなさいと男は言った。それなら連れてくると言って子供を五人連れてきた。いいや、これほどでない。もっといると男が言ったら、一人連れてきた。いいや、まだまだいる。皆連れてこないと教えてやらないと言ったら、また一人連れてきて八人になった。よし教えてやる。さあ、誰もこの袋の中に入りなさいと男は言って、皆を大きな袋の中へ入れてしまった。さあ、いいか、八変化を教えてやるぞと言って木の棒でそれ、一変化、二変化、三変化と人間に化けた狐を叩いた。そうしたら中の狐が許してください。悪いことはもうしない。許してくださいと言ったので許してやった。
※今回、「博労と狐」は外した。
◆コーディングルール
※コーディングルールのキーワードは重要と判断したものを人力でピックアップしている。そのため、恣意性を伴う分析となる。
※活用形でなく基本形で入力する。
※[前処理]→[語の抽出結果を確認]でキーワードがどのように分節されているか検索すると結果の一覧[語の抽出結果]が表示される。
※[Result]から確認したい行をクリックして選択、画面下の[詳細表示]ボタンをクリックするとサブ画面が表示され、活用形や基本形が確認できる。
※昔話では「否定/肯定」「肯定/否定」と属性が変化することが多いと考え、否定詞「ない」「まい」「ぬ」「ん」、また禁止を意味する「な」を共通のコードとして設定している。
※[関連語検索]で否定詞の共起語の一覧を表示させたところ、日本の昔話のように掌編レベルのボリュームだと、物語の動因となる箇所に関する語句が上位に表示される傾向が強いのではないか……といった印象があり、検証作業中である。
※無償版では強制抽出語の指定が機能制限で事実上使用できないため以下のような手法をとっている。
*浄福寺
'浄福寺'
*鳥越
'鳥越'
*政四郎
'政四郎'
*魚商人
'魚商人'
*お松
'お松'
*換える
換える 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)から点線が伸び交差した箇所が原点となる。原点から離れるほど特徴的なキーワードだと分析される。
原点付近には「約束」といったキーワードがプロットされている。未来社版では「九変化」「皮」「換える」「船頭」「女房」「殿さま」といったキーワードが原点から離れてプロットされている。日本標準版では「栗の木坂」「八変化」といったキーワードが特徴的とされている。
◆解釈
いずれも変化の数でマウントを取り合う趣向の話である。
◆階層的クラスター分析
・[コーディング単位]を[文]に変更、実行するとデンドログラム(樹状図)で可視化される。
※キーワード指定しても可。
概ねストーリーに沿った内容でクラスター化されている。「猫」と「晩」が関連づけられているのがよく分からないが、「座布団」はコードに含めていないためだろうか。
※当ブログの場合、[コーディング単位]が[段落][H5]だと、コードを全て選択するとエラーが返される結果となった。
◆クロス集計
・[コーディング単位]を[文]に変更、[集計]する。
※「タイトル」で集計をかけた。
クロス集計をかけたところ、「お松」「大かん」「七変化」といったキーワードでカイ(χ)2乗値で相関関係を示す結果(※マーク)が得られた。
マップとして描画したところ、「魚商人」「換える」「明るい」といったキーワードの残差が大きく(濃く)表示される結果となった。バブルとしては「政四郎」「お松」「船頭」が大きく描画された。
◆KWICコンコーダンス
現状ではテキストマイニングのツールに文脈を読む性能はないため実際に該当箇所を読んで人力で判断する他ない。KWICコンコーダンスでキーワード指定すれば指定したキーワードがどのような文脈で用いられているか一覧で抽出される。
◆関連語検索
・[集計単位]を[文]に変更、[集計]する。
・[Search Entry:]の一覧からキーワードを選択してダブルクリックすると[Result]に指定したキーワードの品詞や共起関係が表示される。
※[Result:]から行指定してダブルクリックするとKWICコンコーダンスに遷移する。
※[Result:]の一覧から範囲指定して[コピー]したものを表計算ソフトやテキストファイルにペーストすることも可能である。
[#直接入力]を指定して「くりくり」といったキーワードで検索すると関連語が一覧で表示される。
◆属性の転倒
・「ない」の結果上位一覧
| N | 抽出語 | 品詞 | 全体 | 共起 | Jaccard |
| 1 | 化かす | 動詞 | 14 (0.212) | 6 (0.400) | 0.2609 |
| 2 | 自分 | 名詞 | 11 (0.167) | 4 (0.267) | 0.1818 |
| 3 | 船頭 | 名詞 | 13 (0.197) | 4 (0.267) | 0.1667 |
| 4 | 殿さま | 名詞 | 3 (0.045) | 2 (0.133) | 0.125 |
| 5 | 知る | 動詞 | 4 (0.061) | 2 (0.133) | 0.1176 |
| 6 | 政 | 名詞C | 5 (0.076) | 2 (0.133) | 0.1111 |
| 7 | 四郎 | 人名 | 6 (0.091) | 2 (0.133) | 0.1053 |
| 8 | 人 | 名詞C | 6 (0.091) | 2 (0.133) | 0.1053 |
| 9 | 悪い | 形容詞 | 1 (0.015) | 1 (0.067) | 0.0667 |
| 10 | 沖 | 名詞C | 1 (0.015) | 1 (0.067) | 0.0667 |
変化を一つ教えてもらおうとした狐の方が騙されてしまう……といった粗筋となっている。
短いお話の中で属性の転倒を多用するのが昔話の特徴の一つと考えられる。
ここで「/」(スラッシュ)を「転倒」を意味する記号として用いる。スラッシュは様々な場面で用いられていて文脈依存的な記号という欠点もあるが、視覚的にはイメージしやすいと判断した。
・[狐|変化:知りたい/騙される]
・[狐|袋:生/死]
こういった風にお話を転がしていると分析できる。
狐は袋に入ることで「生/死」あるいは「悪戯/懲らしめ」へと転倒される。
◆類似度行列
・[コーディング単位]を[文]に変更して[集計]。Jaccard係数がマトリクス形式で確認できる。
・ある列を選択して画面右下の[コピー(選択列)]をクリックすると、当該のキーワードに関するJaccard係数がコピーされるので、それを表計算ソフトにペーストするといった利用が可能となる。
※当ブログでは[コーディング単位]が[段落][H5]の場合、Jacccard係数が1.0~0.5といった結果がほとんどで、意味のない結果となった。
◆多次元尺度構成法
・[コーディング単位]を[文]に変更して実行。
・共起関係を確認したいキーワードを指定。
・次元を「2」から「3」に変更して実行、三次元のマップとした。
狐が騙されるくだりに関連したキーワードを指定したところ、「八変化」が離れた位置にプロットされた。
※選択するキーワードによって相対的な位置関係は変わり得る。
※実行すると指定したキーワードの幾つかが除外されるとメッセージが表示される。テキストのボリューム不足のためか無償版の仕様によるものか判断がつかない。
※当ブログの事例では「文」以外、「段落」と「H5」では除外されるキーワードが増える傾向となった。
◆自己組織化マップ
[コーディング単位]を[文]に変更して実行。
記述内容が視覚的に整理され、類似性の高い内容が近くに配置される。概ねストーリーに沿った形で各クラスターが表示される。
※当ブログの事例では「文」以外、「段落」と「H5」ではエラーが返される結果となった。
※クラスター化の計算を繰り返すため処理に時間がかかるので要注意。
※クラスターの配置、距離に意味はない。
◆トピックの推定
・[ツール]→[文書]→[トピックモデル]→[トピックの推定]を選択。
・[集計単位]を[文]に変更。
・[OK]ボタンをクリックすると、[トピックの推定結果]画面が表示される。
・各トピックで高い確率で出現する語句がリストアップされる。
・[#1]といった欄をクリックすると、文書検索画面が表示される。
◆ベイズ学習による分類
・[ツール]→[文書]→[ベイズ学習による分類]→[外部変数から学習]を選択。
・[分類の単位]を[文]に変更。
・[学習する外部変数]は[書名]に変更する。
※「タイトル」のままでもよし。
・[OK]ボタンをクリックすると、ファイルの保存画面が表示されるので、任意のファイル名を記述して保存する。
・[ツール]→[文書]→[ベイズ学習による分類]→[学習結果ファイルの内容を確認]を選択。ファイル選択画面が開くので、先ほど保存したファイルを指定して開く。すると[学習結果ファイル]画面が開くので内容の確認を行う。
※[学習結果を用いた自動分類]については割愛する。
※[トピックの推定]と[ベイズ学習による分類]は固有名詞などを強制抽出語としてあらかじめ指定しておかないと正確に分析されないケースが生じる。正式に利用したい際は有償版の購入をお勧めする。当ブログのはあくまでテストケースとしてのものである。
※[トピックの推定]と[ベイズ学習による分類]はコーディング・ルールに依らない分析手法となるが、筆者の能力的に追及はしない。
◆参考文献
・『日本の民話 34 石見篇』(大庭良美/編, 未来社, 1978)pp.73-74, 313-316.
・『島根のむかし話』(島根県小・中学校国語教育研究会/編著, 日本標準, 1976)pp.162-165.
・『動かして学ぶ!はじめてのテキストマイニング』(樋口耕一, ナカニシヤ出版, 2022)
・『社会調査のための計量テキスト分析 【第2版】 内容分析の継承と発展を目指して』(樋口耕一, ナカニシヤ出版, 2020)
| 固定リンク
◆はじめに
以下はKH Coder(無償版:version 3.Beta.08e)を用いた昔話の計量テキスト分析である。昔話の類話の比較にツールを利用できないか試行してみた。
手持ちの資料が限られるため、分析の対象となる元データの文字数が少ないものの(※本来であれば5000字以上は欲しい)、分析自体は正常に処理されていると判断した。
KH Coderの操作に慣れる目的も兼ねて行った作業で、コーディングルールの記述の事例集、あるいは速習用のチュートリアルとしてでも読んで頂ければ……といったところである。
なお、KH Coderでよく用いられるのは共起ネットワークと対応分析とのことで、それ以外はおまけパートと思って頂いて構わない。操作に習熟するにはコーディングルールの記述に慣れるのが第一である。
◆ファイル
各ファイルをダウンロードしてKH Coderに読み込ませれば同様の分析が再現可能である。
ダウンロード - ca_pb_042_siriyakikitsune.xlsx
ダウンロード - ca_pb_042_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 蒲鉾
*知らぬ
( 知る and ぬ ) 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)から点線が伸び交差した箇所が原点となる。原点から離れるほど特徴的なキーワードだと分析される。
原点付近には「尻」「熱い」「娘」といったキーワードがプロットされている。未来社版では「鞍」「爺さん」「湯」といったキーワードが原点から離れてプロットされている。日本標準版では「藤左衛門」「松明」「許す」といったキーワードが特徴的とされている。
◆解釈
お話の展開は似通っている。狐の尻を焼くのが熱い湯か松明かといった違いはある。
◆階層的クラスター分析
・[コーディング単位]を[文]に変更、実行するとデンドログラム(樹状図)で可視化される。
※キーワード指定しても可。
概ねストーリーに沿った内容でクラスター化されている。
※当ブログの場合、[コーディング単位]が[段落][H5]だと、コードを全て選択するとエラーが返される結果となった。
◆クロス集計
・[コーディング単位]を[文]に変更、[集計]する。
※「タイトル」で集計をかけた。
クロス集計をかけたところ、「藤左衛門」「爺さん」といったキーワードでカイ(χ)2乗値で相関関係を示す結果(※マーク)が得られた。
マップとして描画したところ、「爺さん」「度胸」といったキーワードの残差が大きく(濃く)表示される結果となった。バブルとしては「知らぬ」「ない」「ぬ」が大きく描画された。
◆KWICコンコーダンス
現状ではテキストマイニングのツールに文脈を読む性能はないため実際に該当箇所を読んで人力で判断する他ない。KWICコンコーダンスでキーワード指定すれば指定したキーワードがどのような文脈で用いられているか一覧で抽出される。
◆関連語検索
・[集計単位]を[文]に変更、[集計]する。
・[Search Entry:]の一覧からキーワードを選択してダブルクリックすると[Result]に指定したキーワードの品詞や共起関係が表示される。
※[Result:]から行指定してダブルクリックするとKWICコンコーダンスに遷移する。
※[Result:]の一覧から範囲指定して[コピー]したものを表計算ソフトやテキストファイルにペーストすることも可能である。
[#直接入力]を指定して「たらい」といったキーワードで検索すると関連語が一覧で表示される。
◆属性の転倒
・「ない」の結果上位一覧
| N | 抽出語 | 品詞 | 全体 | 共起 | Jaccard |
| 1 | 許す | 動詞 | 5 (0.109) | 3 (0.231) | 0.2 |
| 2 | 悪い | 形容詞 | 3 (0.065) | 2 (0.154) | 0.1429 |
| 3 | 足 | 名詞C | 4 (0.087) | 2 (0.154) | 0.1333 |
| 4 | 思う | 動詞 | 5 (0.109) | 2 (0.154) | 0.125 |
| 5 | 帰る | 動詞 | 6 (0.130) | 2 (0.154) | 0.1176 |
| 6 | 乗せる | 動詞 | 6 (0.130) | 2 (0.154) | 0.1176 |
| 7 | 泣く | 動詞 | 1 (0.022) | 1 (0.077) | 0.0769 |
| 8 | 降りる | 動詞 | 1 (0.022) | 1 (0.077) | 0.0769 |
| 9 | 親方 | 名詞 | 1 (0.022) | 1 (0.077) | 0.0769 |
| 10 | 二度と | 副詞 | 1 (0.022) | 1 (0.077) | 0.0769 |
・「ぬ」の結果上位一覧
| N | 抽出語 | 品詞 | 全体 | 共起 | Jaccard |
| 1 | 落ちる | 動詞 | 2 (0.043) | 2 (0.400) | 0.4 |
| 2 | 知る | 動詞 | 3 (0.065) | 2 (0.400) | 0.3333 |
| 3 | 帰る | 動詞 | 6 (0.130) | 2 (0.400) | 0.2222 |
| 4 | 乗せる | 動詞 | 6 (0.130) | 2 (0.400) | 0.2222 |
| 5 | 爺さん | 名詞 | 6 (0.130) | 2 (0.400) | 0.2222 |
| 6 | 鞍 | 名詞C | 1 (0.022) | 1 (0.200) | 0.2 |
| 7 | 一つ | 名詞 | 1 (0.022) | 1 (0.200) | 0.2 |
| 8 | 家 | 名詞C | 1 (0.022) | 1 (0.200) | 0.2 |
| 9 | 顔 | 名詞C | 1 (0.022) | 1 (0.200) | 0.2 |
| 10 | 構う | 動詞 | 1 (0.022) | 1 (0.200) | 0.2 |
娘に化けて馬に乗ろうとしたところ、見破られて縛り付けられて連行されてしまう……といった粗筋となっている。
短いお話の中で属性の転倒を多用するのが昔話の特徴の一つと考えられる。
ここで「/」(スラッシュ)を「転倒」を意味する記号として用いる。スラッシュは様々な場面で用いられていて文脈依存的な記号という欠点もあるが、視覚的にはイメージしやすいと判断した。
・[狐|馬:乗る/縛られる]
・[爺さん|湯:娘/狐]
・[藤左衛門|松明:娘/狐]
こういった風にお話を転がしていると分析できる。
狐は「娘/狐」へと転倒され正体が暴かれる。
◆類似度行列
・[コーディング単位]を[文]に変更して[集計]。Jaccard係数がマトリクス形式で確認できる。
・ある列を選択して画面右下の[コピー(選択列)]をクリックすると、当該のキーワードに関するJaccard係数がコピーされるので、それを表計算ソフトにペーストするといった利用が可能となる。
※当ブログでは[コーディング単位]が[段落][H5]の場合、Jacccard係数が1.0~0.5といった結果がほとんどで、意味のない結果となった。
◆多次元尺度構成法
・[コーディング単位]を[文]に変更して実行。
・共起関係を確認したいキーワードを指定。
・次元を「2」から「3」に変更して実行、三次元のマップとした。
娘をそしらぬふりをして乗せるくだりに関連したキーワードを指定したところ、「もがく」が離れた位置にプロットされた。
※選択するキーワードによって相対的な位置関係は変わり得る。
※実行すると指定したキーワードの幾つかが除外されるとメッセージが表示される。テキストのボリューム不足のためか無償版の仕様によるものか判断がつかない。
※当ブログの事例では「文」以外、「段落」と「H5」では除外されるキーワードが増える傾向となった。
◆自己組織化マップ
[コーディング単位]を[文]に変更して実行。
記述内容が視覚的に整理され、類似性の高い内容が近くに配置される。概ねストーリーに沿った形で各クラスターが表示される。
※当ブログの事例では「文」以外、「段落」と「H5」ではエラーが返される結果となった。
※クラスター化の計算を繰り返すため処理に時間がかかるので要注意。
※クラスターの配置、距離に意味はない。
◆トピックの推定
・[ツール]→[文書]→[トピックモデル]→[トピックの推定]を選択。
・[集計単位]を[文]に変更。
・[OK]ボタンをクリックすると、[トピックの推定結果]画面が表示される。
・各トピックで高い確率で出現する語句がリストアップされる。
・[#1]といった欄をクリックすると、文書検索画面が表示される。
◆ベイズ学習による分類
・[ツール]→[文書]→[ベイズ学習による分類]→[外部変数から学習]を選択。
・[分類の単位]を[文]に変更。
・[学習する外部変数]は[書名]に変更する。
※「タイトル」のままでもよし。
・[OK]ボタンをクリックすると、ファイルの保存画面が表示されるので、任意のファイル名を記述して保存する。
・[ツール]→[文書]→[ベイズ学習による分類]→[学習結果ファイルの内容を確認]を選択。ファイル選択画面が開くので、先ほど保存したファイルを指定して開く。すると[学習結果ファイル]画面が開くので内容の確認を行う。
※[学習結果を用いた自動分類]については割愛する。
※[トピックの推定]と[ベイズ学習による分類]は固有名詞などを強制抽出語としてあらかじめ指定しておかないと正確に分析されないケースが生じる。正式に利用したい際は有償版の購入をお勧めする。当ブログのはあくまでテストケースとしてのものである。
※[トピックの推定]と[ベイズ学習による分類]はコーディング・ルールに依らない分析手法となるが、筆者の能力的に追及はしない。
◆参考文献
・『日本の民話 34 石見篇』(大庭良美/編, 未来社, 1978)pp.311-312.
・『島根のむかし話』(島根県小・中学校国語教育研究会/編著, 日本標準, 1976)pp.172-175.
・『動かして学ぶ!はじめてのテキストマイニング』(樋口耕一, ナカニシヤ出版, 2022)
・『社会調査のための計量テキスト分析 【第2版】 内容分析の継承と発展を目指して』(樋口耕一, ナカニシヤ出版, 2020)
| 固定リンク
◆はじめに
以下はKH Coder(無償版:version 3.Beta.08e)を用いた昔話の計量テキスト分析である。昔話の類話の比較にツールを利用できないか試行してみた。
手持ちの資料が限られるため、分析の対象となる元データの文字数が少ないものの(※本来であれば5000字以上は欲しい)、分析自体は正常に処理されていると判断した。
KH Coderの操作に慣れる目的も兼ねて行った作業で、コーディングルールの記述の事例集、あるいは速習用のチュートリアルとしてでも読んで頂ければ……といったところである。
なお、KH Coderでよく用いられるのは共起ネットワークと対応分析とのことで、それ以外はおまけパートと思って頂いて構わない。操作に習熟するにはコーディングルールの記述に慣れるのが第一である。
◆ファイル
各ファイルをダウンロードしてKH Coderに読み込ませれば同様の分析が再現可能である。
ダウンロード - ca_pb_041_enkonotegami.xlsx
ダウンロード - ca_pb_041_codingrules.txt
ダウンロード - kh_coder_startingedition_sagyotejunsho.txt (※作業手順書)
※「H5」とはHTMLでいうところのヘッダー(見出し)・レベル5で本文に相当すると考えればよい。
※[コーディング単位]は「文/段落/H5」から選べるが、状況に応じて適切と思われるものを選択する必要がある。処理が上手くいかないと感じた場合、コーディング単位を切り替えると上手く処理されるケースがままある。
※公式マニュアルでは「集計単位」という用語が使われている。共起関係について、
・「文」では一文単位での分析
・「段落」では段落単位の分析
・「H5」では表計算ソフトのセル単位とされ、改行を含めた一セルの中身全体が分析単位となる
※レファレンスでも索引で「コーディング単位」の項目は設けられていない。操作性に関わる重要項目であるものの、その仕様について不明瞭な感はある。
※当ブログの場合、表計算ソフトのフォーマットで読み込ませているからH5固定でいいだろうと思い込んでいたら、さにあらずだった。
◆あらすじ
・「えんこうの手紙」(未来社『石見の民話』)
明治の中頃、大田市の鳥居村に喜三郎という魚商人がいた。ある日出雲の国との境の邑智郡の奥へ行って、帰りに小原村の江川のほとりを通ると、手ぬぐいを深く被った女がなれなれしく声をかけてきた。静間を通って大田へ帰るのかと訊くので、その通りと答えると、手紙を渡して、それを静間の神田の渕へ投げ込むように頼まれた。魚商人は手紙を受け取った。魚商人は川合の町まで帰ると、岩谷屋という店で酒を一杯飲んだ。そして主人に先ほどのことを話すと、静間川の神田の渕はえんこう(河童)の住処だと言って、その手紙を見せろとなった。そこで手紙を開くと、人間の文字ではなくみみずののたくった痕のようなものが書いてあった。これは江川のえんこうが化けたもので、魚商人をとるようにと神田の渕のえんこうに合図したのに違いないとなった。震え上がった魚商人は店主に相談して手紙を焼いてしまった。魚商人は川合から道をかえて長久を通って家へ帰った。それからは用事があっても静間川の方へは決して行かなかった。
・「カッパの手紙」(日本標準『島根のむかし話』)
とんとん昔、ある男が西郷の町へ用事があって川端を歩いていた。そうしたら、道端に婆さんが立っていた。婆さんはその男に、まことに済まないが、八郎橋の所に自分のような婆さんが立っているから、この手紙を渡してくれと頼んだ。男は承知して受け取った。西郷の町で用事が済んで、もう一軒寄り道した。そうしたら、そこの家の者が喜んで、これはよく来た。久しぶりだ。上がりなさい。帰り道は日が暮れてしまう。泊まって明日帰りなさいと引き留めた。いや、八郎橋の所に婆さんがいるから、それにこの手紙を渡さないといけないと言って断ったところ、それはおかしい。あの八郎橋の方には家がない。まてよ、その手紙を見せなさいと言った。手紙の裏表を見ると何も書いてない。中を開けてみると、これも何もない。ははあ、やはりそうか。この手紙はこうすれば出ると言って水の中に浸けた。そうしたら、ここではまだ日があるから獲れない。そこで獲れ。そこで獲れなければ上に渡せと書いてあった。ほら、この通りだ。これは危ないところだった。お前はカッパに命を獲られるところだった。手紙を渡したのは年寄りカッパに違いない。まだ日が高いものだから、お前を狙えなかった。だから八郎橋のカッパにそこで獲れと手紙にしたものだ。まあ、今夜はここでゆっくりして泊まっていきなさいと言った。男はびっくりした。それで、その晩は泊まってあくる日帰った。
◆コーディングルール
※コーディングルールのキーワードは重要と判断したものを人力でピックアップしている。そのため、恣意性を伴う分析となる。
※活用形でなく基本形で入力する。
※[前処理]→[語の抽出結果を確認]でキーワードがどのように分節されているか検索すると結果の一覧[語の抽出結果]が表示される。
※[Result]から確認したい行をクリックして選択、画面下の[詳細表示]ボタンをクリックするとサブ画面が表示され、活用形や基本形が確認できる。
※昔話では「否定/肯定」「肯定/否定」と属性が変化することが多いと考え、否定詞「ない」「まい」「ぬ」「ん」、また禁止を意味する「な」を共通のコードとして設定している。
※[関連語検索]で否定詞の共起語の一覧を表示させたところ、日本の昔話のように掌編レベルのボリュームだと、物語の動因となる箇所に関する語句が上位に表示される傾向が強いのではないか……といった印象があり、検証作業中である。
※無償版では強制抽出語の指定が機能制限で事実上使用できないため以下のような手法をとっている。
*鳥居村
'鳥居村'
*魚商人
'魚商人'
*帰る
帰る 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 | 書く | 動詞 | 3 (0.075) | 3 (0.273) | 0.2727 |
| 2 | 渡す | 動詞 | 5 (0.125) | 3 (0.273) | 0.2308 |
| 3 | 手紙 | 名詞 | 12 (0.300) | 4 (0.364) | 0.2105 |
| 4 | 違い | ナイ形容 | 2 (0.050) | 2 (0.182) | 0.1818 |
| 5 | 日 | 地名 | 3 (0.075) | 2 (0.182) | 0.1667 |
| 6 | 橋 | 名詞C | 4 (0.100) | 2 (0.182) | 0.1538 |
| 7 | 八郎 | 人名 | 4 (0.100) | 2 (0.182) | 0.1538 |
| 8 | 獲る | 動詞 | 5 (0.125) | 2 (0.182) | 0.1429 |
| 9 | 化ける | 動詞 | 1 (0.025) | 1 (0.091) | 0.0909 |
| 10 | 開く | 動詞 | 1 (0.025) | 1 (0.091) | 0.0909 |
見知らぬ女から手紙を預かったが、立ち寄った先の主人にそれはえんこうの手紙だと見破られる……といった粗筋となっている。
短いお話の中で属性の転倒を多用するのが昔話の特徴の一つと考えられる。
ここで「/」(スラッシュ)を「転倒」を意味する記号として用いる。スラッシュは様々な場面で用いられていて文脈依存的な記号という欠点もあるが、視覚的にはイメージしやすいと判断した。
・[えんこう|手紙:依頼/合図]
・[商人|手紙:預かる/焼却]
・[主人|手紙:見破る/焼却]
こういった風にお話を転がしていると分析できる。
えんこうの手紙を預かった男は「危機/阻止」へと転倒される。
◆類似度行列
・[コーディング単位]を[文]に変更して[集計]。Jaccard係数がマトリクス形式で確認できる。
・ある列を選択して画面右下の[コピー(選択列)]をクリックすると、当該のキーワードに関するJaccard係数がコピーされるので、それを表計算ソフトにペーストするといった利用が可能となる。
※当ブログでは[コーディング単位]が[段落][H5]の場合、Jacccard係数が1.0~0.5といった結果がほとんどで、意味のない結果となった。
◆多次元尺度構成法
・[コーディング単位]を[文]に変更して実行。
・共起関係を確認したいキーワードを指定。
・次元を「2」から「3」に変更して実行、三次元のマップとした。
えんこうの手紙を預かるくだりに関連したキーワードを指定したところ、「女」が離れた位置にプロットされた。
※選択するキーワードによって相対的な位置関係は変わり得る。
※実行すると指定したキーワードの幾つかが除外されるとメッセージが表示される。テキストのボリューム不足のためか無償版の仕様によるものか判断がつかない。
※当ブログの事例では「文」以外、「段落」と「H5」では除外されるキーワードが増える傾向となった。
◆自己組織化マップ
[コーディング単位]を[文]に変更して実行。
記述内容が視覚的に整理され、類似性の高い内容が近くに配置される。概ねストーリーに沿った形で各クラスターが表示される。
※当ブログの事例では「文」以外、「段落」と「H5」ではエラーが返される結果となった。
※クラスター化の計算を繰り返すため処理に時間がかかるので要注意。
※クラスターの配置、距離に意味はない。
◆トピックの推定
・[ツール]→[文書]→[トピックモデル]→[トピックの推定]を選択。
・[集計単位]を[文]に変更。
・[OK]ボタンをクリックすると、[トピックの推定結果]画面が表示される。
・各トピックで高い確率で出現する語句がリストアップされる。
・[#1]といった欄をクリックすると、文書検索画面が表示される。
◆ベイズ学習による分類
・[ツール]→[文書]→[ベイズ学習による分類]→[外部変数から学習]を選択。
・[分類の単位]を[文]に変更。
・[学習する外部変数]は[書名]に変更する。
※「タイトル」のままでもよし。
・[OK]ボタンをクリックすると、ファイルの保存画面が表示されるので、任意のファイル名を記述して保存する。
・[ツール]→[文書]→[ベイズ学習による分類]→[学習結果ファイルの内容を確認]を選択。ファイル選択画面が開くので、先ほど保存したファイルを指定して開く。すると[学習結果ファイル]画面が開くので内容の確認を行う。
※[学習結果を用いた自動分類]については割愛する。
※[トピックの推定]と[ベイズ学習による分類]は固有名詞などを強制抽出語としてあらかじめ指定しておかないと正確に分析されないケースが生じる。正式に利用したい際は有償版の購入をお勧めする。当ブログのはあくまでテストケースとしてのものである。
※[トピックの推定]と[ベイズ学習による分類]はコーディング・ルールに依らない分析手法となるが、筆者の能力的に追及はしない。
◆参考文献
・『日本の民話 34 石見篇』(大庭良美/編, 未来社, 1978)pp.44-45.
・『島根のむかし話』(島根県小・中学校国語教育研究会/編著, 日本標準, 1976)pp.166-168.
・『動かして学ぶ!はじめてのテキストマイニング』(樋口耕一, ナカニシヤ出版, 2022)
・『社会調査のための計量テキスト分析 【第2版】 内容分析の継承と発展を目指して』(樋口耕一, ナカニシヤ出版, 2020)
| 固定リンク
◆はじめに
以下はKH Coder(無償版:version 3.Beta.08e)を用いた昔話の計量テキスト分析である。昔話の類話の比較にツールを利用できないか試行してみた。
手持ちの資料が限られるため、分析の対象となる元データの文字数が少ないものの(※本来であれば5000字以上は欲しい)、分析自体は正常に処理されていると判断した。
KH Coderの操作に慣れる目的も兼ねて行った作業で、コーディングルールの記述の事例集、あるいは速習用のチュートリアルとしてでも読んで頂ければ……といったところである。
なお、KH Coderでよく用いられるのは共起ネットワークと対応分析とのことで、それ以外はおまけパートと思って頂いて構わない。操作に習熟するにはコーディングルールの記述に慣れるのが第一である。
◆ファイル
各ファイルをダウンロードしてKH Coderに読み込ませれば同様の分析が再現可能である。
ダウンロード - ca_pb_040_enkoduka.xlsx
ダウンロード - ca_pb_040_codingrules.txt
ダウンロード - kh_coder_startingedition_sagyotejunsho.txt (※作業手順書)
※「H5」とはHTMLでいうところのヘッダー(見出し)・レベル5で本文に相当すると考えればよい。
※[コーディング単位]は「文/段落/H5」から選べるが、状況に応じて適切と思われるものを選択する必要がある。処理が上手くいかないと感じた場合、コーディング単位を切り替えると上手く処理されるケースがままある。
※公式マニュアルでは「集計単位」という用語が使われている。共起関係について、
・「文」では一文単位での分析
・「段落」では段落単位の分析
・「H5」では表計算ソフトのセル単位とされ、改行を含めた一セルの中身全体が分析単位となる
※レファレンスでも索引で「コーディング単位」の項目は設けられていない。操作性に関わる重要項目であるものの、その仕様について不明瞭な感はある。
※当ブログの場合、表計算ソフトのフォーマットで読み込ませているからH5固定でいいだろうと思い込んでいたら、さにあらずだった。
◆あらすじ
・「えんこう塚」(未来社『石見の民話』)
河内町を流れる浜田川のほとりにえんこう塚という石碑がひっそりと立っている。昔、ある日のこと一人の百姓が仕事を済ませて近くの川で馬の体を洗ってやった。そして日はまだ沈まないし、このまま家へ帰るには早いので、馬を川端に繋いで、もう一仕事しようと畑へ引き返していった。ところがこの様子を川の中からえんこう(河童)が見ていた。よし、今日はあの馬を川の中へ引きずり込んで捕ってやろう。えんこうは百姓がいなくなるのを待っていた。えんこうは百姓が畑へ行ったのを見澄ますと、そろりと馬に近づいて綱を杭からほどき、自分の身体に巻き付けて思い切り引っ張った。びっくりした馬は飛び上がると一目散に走り出した。慌てたえんこうは綱をほどこうとしたが、あまり強い力で引っ張られるのでほどくことができない。とうとう馬に引きずられて陸の上に放り出されてしまい、石にぶつかってやっと止まった。その騒ぎに頭の皿の水が飛び出してしまったので、えんこうは力がなくなりどうすることもできない。その時騒ぎを聞きつけた百姓が急いで川端へ引き返してみると、馬はおらずえんこうがぼんやり座っている。様子が分かった百姓は今日こそは承知しないぞと怒鳴りつけた。引っ張っていこうとすると、えんこうは涙を流して何度も何度も謝るので、それならこれからは子供を捕ったり馬にいたずらをしたりしないと約束をするなら許してやろうと言った。えんこうがこれからは絶対にそういうことはしないと言うので許してやった。そして石碑に「南無阿弥陀仏」と彫って、この字が消えない内は絶対にいたずらをしないと約束させ、河岸に立てて、この辺りでえんこうに捕られた子供たちを弔ってやった。その日から、えんこうのいたずらは全く無くなった。しかし、えんこうは早くこの字を消そうと毎日やって来て石碑の字をなでるので、反対に字はだんだん深くなったという。
・「いたずらカッパ」(日本標準『島根のむかし話』)
昔々、隠岐の中村に信光寺という寺があった。その寺の側に大きくて深い池があった。その池にはカッパが大層いた。カッパは池の土手を通る子供や大人に水をかけたり池に引っ張り込もうとしたりして悪戯していた。それで誰もが困っていた。カッパはその困った様子を見て大喜びした。ある日、信光寺の坊さんが土手の木に馬を繋いでいた。カッパがこれを見て、あの馬を池の中へ引っ張り込んでやろうと相談した。一番力の強いカッパが池から這い上がって繋いであって綱を解いて引っ張った。馬はびっくりして寺の方へどんどこ、どんどこ駆けて戻った。カッパは綱を放さなかったからとうとう寺まで引っ張られてしまって体中傷だらけになった。それに大事な頭の皿の水がみんな無くなってしまった。だから、もうカッパの力はないから、おんおん泣き出した。坊さんがこれを見て、お前たちがあまり悪戯するからこんなことになったのだぞ。もうしないなら許してやる。それにもうあの池にいるな。他所へ行くならどのカッパも許してやるぞと言った。カッパは懲り懲りしたから、もうしません。今夜のうちに出るから、松明を七十五本くださいと頼んだ。坊さんは頭の皿に水を一杯入れ、松明を七十五本用意してやった。その晩、坊さんが見ていたら、池の方から一本ずつ松明を灯したカッパが隣村の方へずっと続いておった。それからはこの中村にはカッパはいなくなった。
・「えんこうの話」(ハーベスト出版『夕陽を招く長者』)
昔、匹見の里に牛を飼っている婆さんがいた。牛は繋がれていたが、牛は水が飲みたくなり、離れて川に入った。ところが、川に入った牛はえんこうに足を引っ張られて驚いた拍子にえんこうを引きずって戻るなり肥えたて場に駆けこんだ。えんこうは牛を川の深みに引っ張り込むつもりが、陸へ引き出されて干からびてしまい困っていた。婆さんは牛が戻ってきたのを見て喜び、水をやろうと汲んできたが、牛が水を飲まないので、肥えたて場にその水を移した。すると、えんこうは水を貰ったお陰で川へ帰ることができた。それからえんこうは、今度は婆さんにお礼にと、毎日毎朝、魚を持ってきて、玄関の閂に掛けておくうようになった。毎日のことだから、そのうち閂が腐りはじめた。それで婆さんは金具のしっかりした閂に取り替えた。そうしたら、えんこうは魚を一向に持ってこなくなってしまった。えんこうは金物をとても恐れるというから、それで持ってこれなくなってしまったのだろう。
◆コーディングルール
※コーディングルールのキーワードは重要と判断したものを人力でピックアップしている。そのため、恣意性を伴う分析となる。
※活用形でなく基本形で入力する。
※[前処理]→[語の抽出結果を確認]でキーワードがどのように分節されているか検索すると結果の一覧[語の抽出結果]が表示される。
※[Result]から確認したい行をクリックして選択、画面下の[詳細表示]ボタンをクリックするとサブ画面が表示され、活用形や基本形が確認できる。
※昔話では「否定/肯定」「肯定/否定」と属性が変化することが多いと考え、否定詞「ない」「まい」「ぬ」「ん」、また禁止を意味する「な」を共通のコードとして設定している。
※[関連語検索]で否定詞の共起語の一覧を表示させたところ、日本の昔話のように掌編レベルのボリュームだと、物語の動因となる箇所に関する語句が上位に表示される傾向が強いのではないか……といった印象があり、検証作業中である。
※無償版では強制抽出語の指定が機能制限で事実上使用できないため以下のような手法をとっている。
*浜田川
'浜田川'
*石碑
'えんこう塚' or 石碑
*川端
川端 or 河岸
*えんこう
'えんこう' or カッパ
*引きずり込む
引きずり込む or 引っ張る or 引きずる or 引っ張り込む
*いたずら
いたずら or 悪戯
*字
字 or '南無阿弥陀仏'
*なくなる
なくなる or 無くなる or ( ない and なる ) or ( 無い and なる )
*金物
金物 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 | 3 (0.059) | 3 (0.200) | 0.2 |
| 2 | 許す | 動詞 | 4 (0.078) | 3 (0.200) | 0.1875 |
| 3 | 引っ張る | 動詞 | 9 (0.176) | 3 (0.200) | 0.1429 |
| 4 | 約束 | サ変名詞 | 2 (0.039) | 2 (0.133) | 0.1333 |
| 5 | いたずら | サ変名詞 | 3 (0.059) | 2 (0.133) | 0.125 |
| 6 | 言う | 動詞 | 3 (0.059) | 2 (0.133) | 0.125 |
| 7 | 子供 | 名詞 | 3 (0.059) | 2 (0.133) | 0.125 |
| 8 | 持つ | 動詞 | 3 (0.059) | 2 (0.133) | 0.125 |
| 9 | 捕る | 動詞 | 3 (0.059) | 2 (0.133) | 0.125 |
| 10 | 綱 | 名詞C | 4 (0.078) | 2 (0.133) | 0.1176 |
川岸でいたずらしようとしたえんこうは却って頭の皿の水を失い干からびてしまう……といった粗筋となっている。
短いお話の中で属性の転倒を多用するのが昔話の特徴の一つと考えられる。
ここで「/」(スラッシュ)を「転倒」を意味する記号として用いる。スラッシュは様々な場面で用いられていて文脈依存的な記号という欠点もあるが、視覚的にはイメージしやすいと判断した。
・[えんこう|力:喪失/回復]
・[えんこう|力:回復/約束]
こういった風にお話を転がしていると分析できる。
えんこう塚の石碑の字はなぞることで「風化/深い」へと転倒される。
◆類似度行列
・[コーディング単位]を[文]に変更して[集計]。Jaccard係数がマトリクス形式で確認できる。
・ある列を選択して画面右下の[コピー(選択列)]をクリックすると、当該のキーワードに関するJaccard係数がコピーされるので、それを表計算ソフトにペーストするといった利用が可能となる。
※当ブログでは[コーディング単位]が[段落][H5]の場合、Jacccard係数が1.0~0.5といった結果がほとんどで、意味のない結果となった。
◆多次元尺度構成法
・[コーディング単位]を[文]に変更して実行。
・共起関係を確認したいキーワードを指定。
・次元を「2」から「3」に変更して実行、三次元のマップとした。
えんこうがいたずらしようとして失敗するくだりに関連したキーワードを指定したところ、「いたずら」が離れた位置にプロットされた。
※選択するキーワードによって相対的な位置関係は変わり得る。
※実行すると指定したキーワードの幾つかが除外されるとメッセージが表示される。テキストのボリューム不足のためか無償版の仕様によるものか判断がつかない。
※当ブログの事例では「文」以外、「段落」と「H5」では除外されるキーワードが増える傾向となった。
◆自己組織化マップ
[コーディング単位]を[文]に変更して実行。
記述内容が視覚的に整理され、類似性の高い内容が近くに配置される。概ねストーリーに沿った形で各クラスターが表示される。
※当ブログの事例では「文」以外、「段落」と「H5」ではエラーが返される結果となった。
※クラスター化の計算を繰り返すため処理に時間がかかるので要注意。
※クラスターの配置、距離に意味はない。
◆トピックの推定
・[ツール]→[文書]→[トピックモデル]→[トピックの推定]を選択。
・[集計単位]を[文]に変更。
・[OK]ボタンをクリックすると、[トピックの推定結果]画面が表示される。
・各トピックで高い確率で出現する語句がリストアップされる。
・[#1]といった欄をクリックすると、文書検索画面が表示される。
◆ベイズ学習による分類
・[ツール]→[文書]→[ベイズ学習による分類]→[外部変数から学習]を選択。
・[分類の単位]を[文]に変更。
・[学習する外部変数]は[書名]に変更する。
※「タイトル」のままでもよし。
・[OK]ボタンをクリックすると、ファイルの保存画面が表示されるので、任意のファイル名を記述して保存する。
・[ツール]→[文書]→[ベイズ学習による分類]→[学習結果ファイルの内容を確認]を選択。ファイル選択画面が開くので、先ほど保存したファイルを指定して開く。すると[学習結果ファイル]画面が開くので内容の確認を行う。
※[学習結果を用いた自動分類]については割愛する。
※[トピックの推定]と[ベイズ学習による分類]は固有名詞などを強制抽出語としてあらかじめ指定しておかないと正確に分析されないケースが生じる。正式に利用したい際は有償版の購入をお勧めする。当ブログのはあくまでテストケースとしてのものである。
※[トピックの推定]と[ベイズ学習による分類]はコーディング・ルールに依らない分析手法となるが、筆者の能力的に追及はしない。
◆参考文献
・『日本の民話 34 石見篇』(大庭良美/編, 未来社, 1978)pp.259-261.
・『島根のむかし話』(島根県小・中学校国語教育研究会/編著, 日本標準, 1976)pp.159-161.
・「夕陽を招く長者 山陰民話語り部シリーズ1」(民話の会「石見」/編, ハーベスト出版, 2013)pp.173-174.
・『日本伝説大系 第11巻 山陰(鳥取・島根)』(野村純一他, みずうみ書房, 1984)pp.198-199.
・『動かして学ぶ!はじめてのテキストマイニング』(樋口耕一, ナカニシヤ出版, 2022)
・『社会調査のための計量テキスト分析 【第2版】 内容分析の継承と発展を目指して』(樋口耕一, ナカニシヤ出版, 2020)
| 固定リンク
◆はじめに
以下はKH Coder(無償版:version 3.Beta.08e)を用いた昔話の計量テキスト分析である。昔話の類話の比較にツールを利用できないか試行してみた。
手持ちの資料が限られるため、分析の対象となる元データの文字数が少ないものの(※本来であれば5000字以上は欲しい)、分析自体は正常に処理されていると判断した。
KH Coderの操作に慣れる目的も兼ねて行った作業で、コーディングルールの記述の事例集、あるいは速習用のチュートリアルとしてでも読んで頂ければ……といったところである。
なお、KH Coderでよく用いられるのは共起ネットワークと対応分析とのことで、それ以外はおまけパートと思って頂いて構わない。操作に習熟するにはコーディングルールの記述に慣れるのが第一である。
◆ファイル
各ファイルをダウンロードしてKH Coderに読み込ませれば同様の分析が再現可能である。
ダウンロード - ca_pb_039_ukinunonoike.xlsx
ダウンロード - ca_pb_039_codingrules.txt
ダウンロード - kh_coder_startingedition_sagyotejunsho.txt (※作業手順書)
※「H5」とはHTMLでいうところのヘッダー(見出し)・レベル5で本文に相当すると考えればよい。
※[コーディング単位]は「文/段落/H5」から選べるが、状況に応じて適切と思われるものを選択する必要がある。処理が上手くいかないと感じた場合、コーディング単位を切り替えると上手く処理されるケースがままある。
※公式マニュアルでは「集計単位」という用語が使われている。共起関係について、
・「文」では一文単位での分析
・「段落」では段落単位の分析
・「H5」では表計算ソフトのセル単位とされ、改行を含めた一セルの中身全体が分析単位となる
※レファレンスでも索引で「コーディング単位」の項目は設けられていない。操作性に関わる重要項目であるものの、その仕様について不明瞭な感はある。
※当ブログの場合、表計算ソフトのフォーマットで読み込ませているからH5固定でいいだろうと思い込んでいたら、さにあらずだった。
◆あらすじ
・「浮布の池」(未来社『石見の民話』)
三瓶山の麓にある浮布の池はもとは浮沼池という。昔、池の原の長者の子ににえ姫という美しい姫がいた。古くから池に住む池の主がいつしか姫に思いを寄せるようになった。姫は池のほとりで美しい若者と出会った。姫は若者に心を惹かれた。姫は若者の誘いで池に行くと気を失ってしまう。そして空を飛ぶ夢を見る。気づくと一人で池のほとりに座っていた。着物は濡れていなかった。このようなことが度重なって、姫の顔に生気が無くなってきた。人々の心配を他所に姫は池のほとりを歩く。ある日、通りかかった武士が大蛇に巻き付かれた姫を見た。武士は弓で大蛇を射る。浮布の池はざわめいたが、池の主の姿はなかった。意識を取り戻した姫だったが、池に身を投げて死んでしまった。姫が着ていた衣の裾が白く帯のように池の中央に浮かんでいた。この日は六月一日で、それから毎年六月一日にはこの白い波の道が光って池の表に現れるところからこの池を浮布の池と呼ぶようになった。にえ姫を祀るにえ姫神社は池の東側の中ノ島にある。
・「池の主とむすめ」(日本標準『島根の伝説』)
昔、三瓶山の麓に池の原長者という長者がいた。そこには気立ての優しいきれいな娘がいた。ある夕方のこと、娘が池の傍にいると、身なりの立派な若者が通りかかった。見たことのない若者だったが、二人は話し合う仲となった。それからというもの、二人は逢うことを楽しんだ。ある日のこと、弓の上手な武士が池の側を通ると、大蛇に巻きつかれた娘がいた。これは大変と矢を射ると見事当たった。大蛇は池に逃げたが、娘には大蛇が若者に見えていたので、自分も跡を追った。やがて、娘の着物が布を流したように浮いてきた。人々は浮布の池と呼んだ。若者は池の主の大蛇だった。
◆コーディングルール
※コーディングルールのキーワードは重要と判断したものを人力でピックアップしている。そのため、恣意性を伴う分析となる。
※活用形でなく基本形で入力する。
※[前処理]→[語の抽出結果を確認]でキーワードがどのように分節されているか検索すると結果の一覧[語の抽出結果]が表示される。
※[Result]から確認したい行をクリックして選択、画面下の[詳細表示]ボタンをクリックするとサブ画面が表示され、活用形や基本形が確認できる。
※昔話では「否定/肯定」「肯定/否定」と属性が変化することが多いと考え、否定詞「ない」「まい」「ぬ」「ん」、また禁止を意味する「な」を共通のコードとして設定している。
※[関連語検索]で否定詞の共起語の一覧を表示させたところ、日本の昔話のように掌編レベルのボリュームだと、物語の動因となる箇所に関する語句が上位に表示される傾向が強いのではないか……といった印象があり、検証作業中である。
※無償版では強制抽出語の指定が機能制限で事実上使用できないため以下のような手法をとっている。
*三瓶山
三瓶山
*浮布池
'浮布池' or '浮布の池' or 池
*にえ姫
'にえ姫' or 姫
*惹かれる
惹かれる or ( 思い and 寄せる )
*衣
着物 or 衣
*気絶
気 and 失う
*巻き付く
巻き付く or 巻きつく
*身投げ
( 身 and 投げる ) or ( 跡 and 追う )
*六月一日
'六月一日'
*池の原
'池の原'
*美しい
美しい 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 | 1 (0.034) | 1 (0.333) | 0.3333 |
| 2 | 仲 | 名詞C | 1 (0.034) | 1 (0.333) | 0.3333 |
| 3 | 濡れる | 動詞 | 1 (0.034) | 1 (0.333) | 0.3333 |
| 4 | 話し合う | 動詞 | 1 (0.034) | 1 (0.333) | 0.3333 |
| 5 | 着物 | 名詞 | 2 (0.069) | 1 (0.333) | 0.25 |
| 6 | 見る | 動詞 | 3 (0.103) | 1 (0.333) | 0.2 |
| 7 | 主 | 形容動詞 | 3 (0.103) | 1 (0.333) | 0.2 |
| 8 | 浮 | 未知語 | 4 (0.138) | 1 (0.333) | 0.1667 |
| 9 | 布 | 名詞C | 5 (0.172) | 1 (0.333) | 0.1429 |
| 10 | 若者 | 名詞 | 7 (0.241) | 1 (0.333) | 0.1111 |
池の主に誘惑された姫は武士によって大蛇から一旦解放されるものの、その跡を追って入水してしまう……といった粗筋となっている。
短いお話の中で属性の転倒を多用するのが昔話の特徴の一つと考えられる。
ここで「/」(スラッシュ)を「転倒」を意味する記号として用いる。スラッシュは様々な場面で用いられていて文脈依存的な記号という欠点もあるが、視覚的にはイメージしやすいと判断した。
・[姫|恋:成就/死]
・[姫|武士:阻止/入水]
・[大蛇|若者:誘惑/退散]
こういった風にお話を転がしていると分析できる。
姫の運命は恋を成就させることで却って「生/死」へと転倒されてしまう。
◆類似度行列
・[コーディング単位]を[文]に変更して[集計]。Jaccard係数がマトリクス形式で確認できる。
・ある列を選択して画面右下の[コピー(選択列)]をクリックすると、当該のキーワードに関するJaccard係数がコピーされるので、それを表計算ソフトにペーストするといった利用が可能となる。
※当ブログでは[コーディング単位]が[段落][H5]の場合、Jacccard係数が1.0~0.5といった結果がほとんどで、意味のない結果となった。
◆多次元尺度構成法
・[コーディング単位]を[文]に変更して実行。
・共起関係を確認したいキーワードを指定。
・次元を「2」から「3」に変更して実行、三次元のマップとした。
姫が身投げしてしまうくだりに関連したキーワードを指定したところ、「娘」が離れた位置にプロットされた。
※選択するキーワードによって相対的な位置関係は変わり得る。
※実行すると指定したキーワードの幾つかが除外されるとメッセージが表示される。テキストのボリューム不足のためか無償版の仕様によるものか判断がつかない。
※当ブログの事例では「文」以外、「段落」と「H5」では除外されるキーワードが増える傾向となった。
◆自己組織化マップ
[コーディング単位]を[文]に変更して実行。
記述内容が視覚的に整理され、類似性の高い内容が近くに配置される。概ねストーリーに沿った形で各クラスターが表示される。
※当ブログの事例では「文」以外、「段落」と「H5」ではエラーが返される結果となった。
※クラスター化の計算を繰り返すため処理に時間がかかるので要注意。
※クラスターの配置、距離に意味はない。
◆トピックの推定
・[ツール]→[文書]→[トピックモデル]→[トピックの推定]を選択。
・[集計単位]を[文]に変更。
・[OK]ボタンをクリックすると、[トピックの推定結果]画面が表示される。
・各トピックで高い確率で出現する語句がリストアップされる。
・[#1]といった欄をクリックすると、文書検索画面が表示される。
◆ベイズ学習による分類
・[ツール]→[文書]→[ベイズ学習による分類]→[外部変数から学習]を選択。
・[分類の単位]を[文]に変更。
・[学習する外部変数]は[書名]に変更する。
※「タイトル」のままでもよし。
・[OK]ボタンをクリックすると、ファイルの保存画面が表示されるので、任意のファイル名を記述して保存する。
・[ツール]→[文書]→[ベイズ学習による分類]→[学習結果ファイルの内容を確認]を選択。ファイル選択画面が開くので、先ほど保存したファイルを指定して開く。すると[学習結果ファイル]画面が開くので内容の確認を行う。
※[学習結果を用いた自動分類]については割愛する。
※[トピックの推定]と[ベイズ学習による分類]は固有名詞などを強制抽出語としてあらかじめ指定しておかないと正確に分析されないケースが生じる。正式に利用したい際は有償版の購入をお勧めする。当ブログのはあくまでテストケースとしてのものである。
※[トピックの推定]と[ベイズ学習による分類]はコーディング・ルールに依らない分析手法となるが、筆者の能力的に追及はしない。
◆参考文献
・『日本の民話 34 石見篇』(大庭良美/編, 未来社, 1978)pp.21-23.
・『島根の伝説』(島根県小・中学校国語教育研究会/編, 日本標準, 1978)p.93.
・『動かして学ぶ!はじめてのテキストマイニング』(樋口耕一, ナカニシヤ出版, 2022)
・『社会調査のための計量テキスト分析 【第2版】 内容分析の継承と発展を目指して』(樋口耕一, ナカニシヤ出版, 2020)
| 固定リンク
◆はじめに
以下はKH Coder(無償版:version 3.Beta.08e)を用いた昔話の計量テキスト分析である。昔話の類話の比較にツールを利用できないか試行してみた。
手持ちの資料が限られるため、分析の対象となる元データの文字数が少ないものの(※本来であれば5000字以上は欲しい)、分析自体は正常に処理されていると判断した。
KH Coderの操作に慣れる目的も兼ねて行った作業で、コーディングルールの記述の事例集、あるいは速習用のチュートリアルとしてでも読んで頂ければ……といったところである。
なお、KH Coderでよく用いられるのは共起ネットワークと対応分析とのことで、それ以外はおまけパートと思って頂いて構わない。操作に習熟するにはコーディングルールの記述に慣れるのが第一である。
◆ファイル
各ファイルをダウンロードしてKH Coderに読み込ませれば同様の分析が再現可能である。
ダウンロード - ca_pb_038_kumonoito.xlsx
ダウンロード - ca_pb_038_codingrules.txt
ダウンロード - kh_coder_startingedition_sagyotejunsho.txt (※作業手順書)
※「H5」とはHTMLでいうところのヘッダー(見出し)・レベル5で本文に相当すると考えればよい。
※[コーディング単位]は「文/段落/H5」から選べるが、状況に応じて適切と思われるものを選択する必要がある。処理が上手くいかないと感じた場合、コーディング単位を切り替えると上手く処理されるケースがままある。
※公式マニュアルでは「集計単位」という用語が使われている。共起関係について、
・「文」では一文単位での分析
・「段落」では段落単位の分析
・「H5」では表計算ソフトのセル単位とされ、改行を含めた一セルの中身全体が分析単位となる
※レファレンスでも索引で「コーディング単位」の項目は設けられていない。操作性に関わる重要項目であるものの、その仕様について不明瞭な感はある。
※当ブログの場合、表計算ソフトのフォーマットで読み込ませているからH5固定でいいだろうと思い込んでいたら、さにあらずだった。
◆あらすじ
・「千八尋渕」(未来社『石見の民話』)
円ノ谷から鍛冶屋谷に沿って登ると、大津に千八尋渕という有名な渕がある。直径三、四メートルくらいの丸い渕で、そう大きいことはないが、はんどう(水瓶)を上から覗く様に周囲の岩が下になるほど広がり、青黒い水をたたえている。この渕は底が円ノ谷の蛇渕へ続いているということで、この渕へ手杵を落としたところ蛇渕へ浮いたとか、籾殻を流しこんだところ蛇渕へ出たとかいう話がある。昔、大津の長九郎という人が日原から塩を買って帰りに千八尋渕の上で休んでいた。すると渕から一匹の蜘蛛が上がってきて、長九郎の膝の頭へ糸をつけて渕へ下りていった。長九郎はおかしなことをすると思って、糸を外してほとりの松の切株へつけておいた。しばらくすると、下から糸をぐいぐい引っ張りはじめた。すると、大きな松の切株がぐっさぐっさと動き出して、とうとう下の渕へどぶんと落ち込んでしまった。長九郎は危ないところだった。もう少しで渕へ引っ張り込まれるところだったと思いながら家へ帰った。その晩、長九郎の家の床の間にあった刀が一人働きをして何か斬ったので、明くる朝見るとべっとりと血がついていた。ある時長九郎が外から帰ってみると、昔から家伝の刀のしまってある箪笥の引き出しを百足がぞろぞろ這い回っていた。不思議に思って刀を出してみると、刀の刃を百足が這っていた。その話が伝わって、あっちこっちから人が見にくるようになった。とうとうそれが津和野の殿さまの耳に入って、そういう刀があるならば差し出すようにという沙汰があった。長九郎は仕方なしに刀を差しだした。ところがその晩から、刀は毎晩のようにかたかたと鍔を鳴らせて長九へ帰る、長九へ帰ると言う。殿さまは気味が悪くなって、とうとう長九郎へ返した。そののち長い間、刀は長九郎の家にあって、抜いてみるといつでもこうこうとした刃の上を百足が這っていた。そしてあっちこっちから見にくる人が絶えなかった。けれども長九郎は決して女には見せなかった。長九郎の女房はそれを見て、いくら女だからと言って自分の家にあるものを見ることができないというのは情けない話だと思った。そしてある日長九郎が留守の間にそっと刀を出してみた。ところがそれから刀に百足がいなくなり、赤い錆がくるようになった。ある時長九郎が千八尋渕へ行くと、向こうの岸からこっちの岸へとてつもない大きな蟹が爪をかけていた。長九郎はびっくりして火縄銃に青銅の一つ玉を込めてズドンと一発大きな甲をめがけて撃つと蟹は渕へ落ちた。長九郎は家へ帰ると手桶に三杯水を飲んだがすぐ死んでしまった。
・「千八尋渕と長九郎」(日本標準『島根の伝説』)
長九郎は日原からの帰り道、あまりに暑いので千八尋渕の傍で荷を下ろして一休みした。そしてうとうとしていると、一匹の蜘蛛が渕から這い上がって長九郎の膝に糸をかけた。はっと目覚めた長九郎はその糸を外すと、傍の大松に結んでおいた。すると、蜘蛛の糸がピーンと張ったかと思うと、松の木を引っ張っている。やがて、松の木は少しずつ渕の方へ傾いていき、とうとう、ずるずると渕の中へ引きずり込まれてしまった。夢をみているような気で見ていた長九郎は命からがら家に帰った。
・「やりこ渕」(みずうみ書房『日本伝説大系』第十一巻)
やりこというものが、山こだか木こりだか知らないけれど、その者が山へ行って煙草を吸っていたところ、渕から主が上がってきた。煙草を吸っていたら、蜘蛛が出てきて、やりこの煙草を吸っているところに、やりこの脛に蜘蛛の糸を引っかけて、「やりこか」と言ったので「ええわ」と言ったら、やりこを渕に引っ張り込んでしまった。それからお母が番をしていたら、今度はカエルみたいな物に化けて上がったそうな。それで、そんな今、残念で向かったのだそうな。そうしたら、走ったから追ったら、巌峯寺というところにぼうと行ったのだそうな。そうしたらカエルになって岩の頭にちゃんとして居たそうな。そうしたら化けて岩になってしまっていたそうな。それでカエル岩というのだそうな。それで我が家に戻ったのだと。
◆コーディングルール
※コーディングルールのキーワードは重要と判断したものを人力でピックアップしている。そのため、恣意性を伴う分析となる。
※活用形でなく基本形で入力する。
※[前処理]→[語の抽出結果を確認]でキーワードがどのように分節されているか検索すると結果の一覧[語の抽出結果]が表示される。
※[Result]から確認したい行をクリックして選択、画面下の[詳細表示]ボタンをクリックするとサブ画面が表示され、活用形や基本形が確認できる。
※昔話では「否定/肯定」「肯定/否定」と属性が変化することが多いと考え、否定詞「ない」「まい」「ぬ」「ん」、また禁止を意味する「な」を共通のコードとして設定している。
※[関連語検索]で否定詞の共起語の一覧を表示させたところ、日本の昔話のように掌編レベルのボリュームだと、物語の動因となる箇所に関する語句が上位に表示される傾向が強いのではないか……といった印象があり、検証作業中である。
※無償版では強制抽出語の指定が機能制限で事実上使用できないため以下のような手法をとっている。
*千八尋渕
'千八尋渕'
*蛇渕
'蛇渕'
*長九郎
'長九郎' 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 | 2 (0.048) | 2 (0.286) | 0.2857 |
| 2 | 見る | 動詞 | 5 (0.119) | 2 (0.286) | 0.2 |
| 3 | 刀 | 名詞C | 9 (0.214) | 2 (0.286) | 0.1429 |
| 4 | 丸い | 形容詞 | 1 (0.024) | 1 (0.143) | 0.1429 |
| 5 | 決して | 副詞 | 1 (0.024) | 1 (0.143) | 0.1429 |
| 6 | 見せる | 動詞 | 1 (0.024) | 1 (0.143) | 0.1429 |
| 7 | 広がる | 動詞 | 1 (0.024) | 1 (0.143) | 0.1429 |
| 8 | 差しだす | 動詞 | 1 (0.024) | 1 (0.143) | 0.1429 |
| 9 | 錆 | 名詞C | 1 (0.024) | 1 (0.143) | 0.1429 |
| 10 | 山 | 名詞C | 1 (0.024) | 1 (0.143) | 0.1429 |
渕で休憩中の長九郎は蜘蛛が膝につけた糸を切り株に移すと、切り株が縁に引きずり込まれてしまい危ういところだった……といった粗筋となっている。
短いお話の中で属性の転倒を多用するのが昔話の特徴の一つと考えられる。
ここで「/」(スラッシュ)を「転倒」を意味する記号として用いる。スラッシュは様々な場面で用いられていて文脈依存的な記号という欠点もあるが、視覚的にはイメージしやすいと判断した。
・[長九郎|糸:外す/身代わり]
・[蜘蛛|狙い:長九郎/切り株]
・[やりこ|呼び声:応答/死]
こういった風にお話を転がしていると分析できる。
蜘蛛の糸の付け先が「膝/切り株」と転倒することで長九郎の運命は「危機/生還」へと転倒する。
◆類似度行列
・[コーディング単位]を[文]に変更して[集計]。Jaccard係数がマトリクス形式で確認できる。
・ある列を選択して画面右下の[コピー(選択列)]をクリックすると、当該のキーワードに関するJaccard係数がコピーされるので、それを表計算ソフトにペーストするといった利用が可能となる。
※当ブログでは[コーディング単位]が[段落][H5]の場合、Jacccard係数が1.0~0.5といった結果がほとんどで、意味のない結果となった。
◆多次元尺度構成法
・[コーディング単位]を[文]に変更して実行。
・共起関係を確認したいキーワードを指定。
・次元を「2」から「3」に変更して実行、三次元のマップとした。
長九郎ややりこが渕で危機に遭遇するくだりに関連したキーワードを指定したところ、「引きずり込む」が離れた位置にプロットされた。
※選択するキーワードによって相対的な位置関係は変わり得る。
※実行すると指定したキーワードの幾つかが除外されるとメッセージが表示される。テキストのボリューム不足のためか無償版の仕様によるものか判断がつかない。
※当ブログの事例では「文」以外、「段落」と「H5」では除外されるキーワードが増える傾向となった。
◆自己組織化マップ
[コーディング単位]を[文]に変更して実行。
記述内容が視覚的に整理され、類似性の高い内容が近くに配置される。概ねストーリーに沿った形で各クラスターが表示される。
※当ブログの事例では「文」以外、「段落」と「H5」ではエラーが返される結果となった。
※クラスター化の計算を繰り返すため処理に時間がかかるので要注意。
※クラスターの配置、距離に意味はない。
◆トピックの推定
・[ツール]→[文書]→[トピックモデル]→[トピックの推定]を選択。
・[集計単位]を[文]に変更。
・[OK]ボタンをクリックすると、[トピックの推定結果]画面が表示される。
・各トピックで高い確率で出現する語句がリストアップされる。
・[#1]といった欄をクリックすると、文書検索画面が表示される。
◆ベイズ学習による分類
・[ツール]→[文書]→[ベイズ学習による分類]→[外部変数から学習]を選択。
・[分類の単位]を[文]に変更。
・[学習する外部変数]は[書名]に変更する。
※「タイトル」のままでもよし。
・[OK]ボタンをクリックすると、ファイルの保存画面が表示されるので、任意のファイル名を記述して保存する。
・[ツール]→[文書]→[ベイズ学習による分類]→[学習結果ファイルの内容を確認]を選択。ファイル選択画面が開くので、先ほど保存したファイルを指定して開く。すると[学習結果ファイル]画面が開くので内容の確認を行う。
※[学習結果を用いた自動分類]については割愛する。
※[トピックの推定]と[ベイズ学習による分類]は固有名詞などを強制抽出語としてあらかじめ指定しておかないと正確に分析されないケースが生じる。正式に利用したい際は有償版の購入をお勧めする。当ブログのはあくまでテストケースとしてのものである。
※[トピックの推定]と[ベイズ学習による分類]はコーディング・ルールに依らない分析手法となるが、筆者の能力的に追及はしない。
◆参考文献
・『日本の民話 34 石見篇』(大庭良美/編, 未来社, 1978)pp.366-368.
・『島根の伝説』(島根県小・中学校国語教育研究会/編, 日本標準, 1978)p.143.
・『日本伝説大系 第11巻 山陰(鳥取・島根)』(野村純一他, みずうみ書房, 1984)p.193.
・『動かして学ぶ!はじめてのテキストマイニング』(樋口耕一, ナカニシヤ出版, 2022)
・『社会調査のための計量テキスト分析 【第2版】 内容分析の継承と発展を目指して』(樋口耕一, ナカニシヤ出版, 2020)
| 固定リンク
◆はじめに
以下はKH Coder(無償版:version 3.Beta.08e)を用いた昔話の計量テキスト分析である。昔話の類話の比較にツールを利用できないか試行してみた。
手持ちの資料が限られるため、分析の対象となる元データの文字数が少ないものの(※本来であれば5000字以上は欲しい)、分析自体は正常に処理されていると判断した。
KH Coderの操作に慣れる目的も兼ねて行った作業で、コーディングルールの記述の事例集、あるいは速習用のチュートリアルとしてでも読んで頂ければ……といったところである。
なお、KH Coderでよく用いられるのは共起ネットワークと対応分析とのことで、それ以外はおまけパートと思って頂いて構わない。操作に習熟するにはコーディングルールの記述に慣れるのが第一である。
◆ファイル
各ファイルをダウンロードしてKH Coderに読み込ませれば同様の分析が再現可能である。
ダウンロード - ca_pb_037_okadanobaba.xlsx
ダウンロード - ca_pb_037_codingrules.txt
ダウンロード - kh_coder_startingedition_sagyotejunsho.txt (※作業手順書)
※「H5」とはHTMLでいうところのヘッダー(見出し)・レベル5で本文に相当すると考えればよい。
※[コーディング単位]は「文/段落/H5」から選べるが、状況に応じて適切と思われるものを選択する必要がある。処理が上手くいかないと感じた場合、コーディング単位を切り替えると上手く処理されるケースがままある。
※公式マニュアルでは「集計単位」という用語が使われている。共起関係について、
・「文」では一文単位での分析
・「段落」では段落単位の分析
・「H5」では表計算ソフトのセル単位とされ、改行を含めた一セルの中身全体が分析単位となる
※レファレンスでも索引で「コーディング単位」の項目は設けられていない。操作性に関わる重要項目であるものの、その仕様について不明瞭な感はある。
※当ブログの場合、表計算ソフトのフォーマットで読み込ませているからH5固定でいいだろうと思い込んでいたら、さにあらずだった。
◆あらすじ
・「岡田の婆」(未来社『石見の民話』)
猟師が山へ猟に行って日が暮れた。それで夜の明けるのを待とうと思って木の上へ登っていた。すると夜中になって猫が沢山やってきた。一匹の猫が木の下へしゃがんで木に抱きついた。次の猫はその猫の背中から肩車(びんぶく)をした。それから次々に猫が肩車をして木へ登って猟師の足を捕まえようとしたが、ちょっと届かない。その猫は、自分は帰って岡田の婆さんを連れてくると言って、ばらっと崩れ落ちて皆いなくなった。猟師が岡田のばばあと言っていたが、あそこにおるばばあは猫かしらんと思っていると、大きな猫が来て、他の猫も木の下に集まった。それから前の様にして木へ登ってきて、一番終いに後から来た大きな猫があがってきた。そして猟師の足を捕まえたので、猟師はすぐ腰へ差している鉈を抜いて手を切った。猫は悲鳴をあげて下へ落ちると、どこへともなくいなくなった。夜が明けると猟師は木から下りてきて、岡田のばばあちゅうのは前から居るが、猫だったのかしらんと思って岡田の家へ行って隙間から見ると婆さんが手の傷を舐めて(ねぶって)いる。それで、これは本当に猫じゃなかろうかと思って隙間から鉄砲で撃ち殺してしまった。その家の人は大騒ぎを始めた。近所の人も来て大騒動になった。これは猫の化物だから撃ったのだ。こうしておくと、そのうち正体を現して猫になると言って、猟師は婆さんの足を縛って庭の上に下げておいた。二日ぶりに猟師が行ってみると、やはり婆さんである。三日ぶりに行ってみると、大きな古猫になっていた。それで猟師には何のこともなかった。戸へ背をすりつけるか、柱へ背をすりつけて通る猫は飼ってもよいが、部屋の真ん中を通る様になると踊りを踊る様になる。そうなると化けるから置いてはいけないと言う。
・「がいだが婆」(みずうみ書房『日本伝説大系』第十一巻)
昔々、但馬の鐘尾にがいだが婆という婆が住んでいて、夜になると蒲生峠に出てきて旅の者を殺して食っていた。ある時、旅の者が日が暮れているのに戸を叩いてこれから峠超えをしないといけないので灯りをつけさせてくださいと入って来たそうだ。それで因幡側の村の者が言うには、この峠は上り下り五十丁もある大峠で、これから山に入るのは無理な話だから、今夜はここに泊まって夜明けにたちなさいと止めたのだけど、そうしてはおられぬ急用で、ぜひ今夜のうちにこの峠を越さないといけないと言ったそうだ。それで、それならこのバイサ(太い木の枝)を持っていきなさい。もしも夜何かが出るような事があったら、このバイサで力いっぱい殴ってやりなさいと囲炉裏の端に置いてあった薪の中から太いのを一本持たせた。旅の人は闇の中の山道をようように登りつめて、いよいよ但馬の側に降りにかかったと思った頃、何か物の気配がしたと思ったら、ギラギラ青光りするものが二つ、じーっとこっちを見ていた。旅人はこれは物に聞いている狼の目に違いないと思って大バイサを構えて身構えたところ、それが二つでなく横からも後ろの方にも青い目が狙っていた。一匹ならともかく、こう大勢ではとても敵わないと思ってそこにあった大きな木によじ登った。一番高いところまで登って下を見たところが、狼が次々に肩車をして、今にも手が届くところまで上がってきていた。それで持っていたバイサで一番上にいる狼めがけて力いっぱい殴りつけた。そうしたら、ギャアと一声吠えたと思ったら、バタバタっと皆木の下に落ちて、そのまま逃げていなくなったそうだ。旅の者は木から降りるなり、一目散に走ったら灯りが見えたから戸を叩いたところ、中から若い嫁さんが出て、旅人の話を聞いて、それはまあ恐ろしい目に遭ったものだ、まあ上がって夜が明けるまであたって行きなさいと快く言ってくれたので、上がらせてもらって囲炉裏の火にあたっていた。ところが、やがて納戸の方からうーん、うーんと病人のうめき声が聞こえてきた。この家には具合の悪い人がいるようだがと訊いたら、実はうちの婆さんがこけた拍子に大石で眉間を割って痛がっているとのことだった。それで嫁さんが立った間に納戸をそっと覗いてみたら、大きな古狼が頭を括って寝てうなっていた。旅の者はびっくりして下の村まで走って逃げた。この一軒家の婆さんのことを村の衆はがいだが婆さんと言っていたが、実は狼で人を食っていたのでがいだ虫みたいな好ましくない臭いがしていたのだろうか。
・「ばけネコばば」(偕成社『島根県の民話』)
昔、商人が山越えをしている内に日が暮れた。見ると山のてっぺんに高い松の木が一本生えている。商人はこの木に登って寝ることにした。夜中になると、下の方で何やら声がする。覗いてみると、山猫が十匹ばかり集まって商人を睨んで騒いでいた。あの商人、今夜の肴にもってこいだ。なんとか食う手立てはないかと。親分らしい大猫が、自分が登って落とすから、お前たちは押さえつけて噛み殺してやれ、そう言って大きな爪を松の木に立てながらざくりざくりと登ってきて、商人に飛びつこうとした。商人は懐の小刀を引き抜いて大猫のどてっ腹にズバリと突き立てた。猫はガクッとして、ニャーオ、今夜の肴は自分の手に合わんと地面に落ちてしまった。それを見た大勢の猫は我がちに登ってきたが、どいつもこいつも商人に斬られたり突かれたり、無傷の猫は一匹もいなくなった。猫たちはどうしたらよかろうと相談をはじめた。こんな手ごわい奴は庄屋婆の手にかけないと上手くいくまい。そうだそうだと相談がまとまるなり、大勢の猫は連れ立って山を下りていった。やがて麓の方からえっさえっさという駕籠かきの声が聞こえてきた。商人はこいつは油断がならないと松の木の上で待っていた。山猫どもは一丁の駕籠を担いでくると、松の木の根元に下した。庄屋婆、ここでございます。早いこと、あの人間を退治してくださいと頭の猫が言うと、駕籠の戸が開いて、中から袖の無い羽織を着た大きな白猫が手拭いを肩にかけて現れた。まん丸な目をぎょろりとさせて、お前ら、あんな人間もよく捕まえないとは役立たずばかりじゃな。待っておれ。自分が落としてやるからと白猫が言った。婆さま、どうぞ頼むと猫たちが答えた。庄屋婆と呼ばれた白猫はゆっくり松の木に登ってきた。下にいる猫らは舌なめずりしながら見上げている。商人はまたも小刀を抜いて白猫の額めがけて一突きに突いた。額を突かれてはさすがの大猫も堪らない。痛た、いくら自分でもこいつばかりは手に合わないと木の上からまくれ落ちていった。庄屋婆がやられたもので、大勢の山猫はがっかりしてしまった。放っておく訳にもいかないから婆を抱き起すと駕籠に乗せて看病しながら山から逃げ出していった。やれ助かった、ホッとした商人は早はや夜の明けるのを待って里に下りるなり庄屋の家に駆けこんだ。そうして夕べのことを残らず話した。庄屋はびっくりしたけれども、自分のところの婆さまは長いこと患っていて、そんなところへなど行くものかと笑って取りあわない。商人は心外に思って、それなら近頃婆さまの食い物は何ですかと訊くと、飯が嫌いで魚ばかり食っていると庄屋が答えると、商人はははあ、やっぱりとつぶやき、魚屋にひとっ走りして大きなブリを買ってくると庄屋に差し出した。それではこれを婆さまに差し上げてくださいと言うと、庄屋はブリを平鉢に載せて婆さまの寝ている部屋に持っていった。婆さまは鼻をくんくんさせて喜んだ。お前はいい婿だな。そこへ置いておけ。自分が後からゆっくり食べるからと言った。庄屋が唐紙を閉めて部屋を出ると、商人が婆さまの様子をちょっと覗いて見なさいというので唐紙を細めに開いて中を窺うと、今まで我が母親と思っていた婆さまが恐ろし気な白猫になってブリを頭からわじわじ噛んでいた。庄屋は驚いて刀を抜くや、唐紙を蹴って飛び込み、化け猫を斬り殺した。本当の婆さまはどうしたかと思って探したら、床の下に骨ばかり残っていた。猫が婆さまを噛み殺して自分が婆さまに化けていたのを庄屋は知らなかったのだと。
◆コーディングルール
※コーディングルールのキーワードは重要と判断したものを人力でピックアップしている。そのため、恣意性を伴う分析となる。
※活用形でなく基本形で入力する。
※[前処理]→[語の抽出結果を確認]でキーワードがどのように分節されているか検索すると結果の一覧[語の抽出結果]が表示される。
※[Result]から確認したい行をクリックして選択、画面下の[詳細表示]ボタンをクリックするとサブ画面が表示され、活用形や基本形が確認できる。
※昔話では「否定/肯定」「肯定/否定」と属性が変化することが多いと考え、否定詞「ない」「まい」「ぬ」「ん」、また禁止を意味する「な」を共通のコードとして設定している。
※[関連語検索]で否定詞の共起語の一覧を表示させたところ、日本の昔話のように掌編レベルのボリュームだと、物語の動因となる箇所に関する語句が上位に表示される傾向が強いのではないか……といった印象があり、検証作業中である。
※無償版では強制抽出語の指定が機能制限で事実上使用できないため以下のような手法をとっている。
*猫
猫 or '山猫' or '大猫'
*婆さん
婆さん or 'ばばあ' or 婆 or 婆さま
*切る
切る or 突く or 斬る
*古猫
'古猫'
*がいだが婆
'がいだが婆'
*旅人
旅 and 者
*バイサ
'バイサ' or 薪
*病人
病人 or ( 具合 and 悪い and 人 )
*小刀
'小刀'
*手ごわい
手ごわい or ( 手 and 合う and ない )
*庄屋婆
'庄屋婆' 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)から点線が伸び交差した箇所が原点となる。原点から離れるほど特徴的なキーワードだと分析される。
原点付近には「猫」「肩車」「食う」といったキーワードがプロットされている。未来社版では「岡田」「古猫」「猟師」といったキーワードが原点から離れてプロットされている。偕成社版では「肴」「商人」「庄屋」といったキーワードが特徴的とされている。ハーベスト出版版では「匹見」が特徴的なキーワードとされている。みずうみ書房版では「がいだが婆」「病」「逃げる」といったキーワードが特徴的とされている。
◆解釈
千疋狼型のお話である。狼が猫になっている話もあるが、離島などでは狼の代わりに猫となるパターンが多いとされている。
◆階層的クラスター分析
・[コーディング単位]を[文]に変更、実行するとデンドログラム(樹状図)で可視化される。
※キーワード指定しても可。
概ねストーリーに沿った内容でクラスター化されている。
※当ブログの場合、[コーディング単位]が[段落][H5]だと、コードを全て選択するとエラーが返される結果となった。
◆クロス集計
・[コーディング単位]を[文]に変更、[集計]する。
※「タイトル」で集計をかけた。
クロス集計をかけたところ、「猫」「がいだが婆」「庄屋婆」といったキーワードでカイ(χ)2乗値で相関関係を示す結果(※マーク)が得られた。
マップとして描画したところ、「猟師」「バイサ」「狼」といったキーワードの残差が大きく(濃く)表示される結果となった。バブルとしては「猫」が大きく描画された。
◆KWICコンコーダンス
現状ではテキストマイニングのツールに文脈を読む性能はないため実際に該当箇所を読んで人力で判断する他ない。KWICコンコーダンスでキーワード指定すれば指定したキーワードがどのような文脈で用いられているか一覧で抽出される。
◆関連語検索
・[集計単位]を[文]に変更、[集計]する。
・[Search Entry:]の一覧からキーワードを選択してダブルクリックすると[Result]に指定したキーワードの品詞や共起関係が表示される。
※[Result:]から行指定してダブルクリックするとKWICコンコーダンスに遷移する。
※[Result:]の一覧から範囲指定して[コピー]したものを表計算ソフトやテキストファイルにペーストすることも可能である。
[#直接入力]を指定して「唐紙」といったキーワードで検索すると関連語が一覧で表示される。
◆属性の転倒
・「ない」の結果上位一覧
| N | 抽出語 | 品詞 | 全体 | 共起 | Jaccard |
| 1 | 自分 | 名詞 | 8 (0.098) | 4 (0.182) | 0.1538 |
| 2 | 思う | 動詞 | 11 (0.134) | 4 (0.182) | 0.1379 |
| 3 | 言う | 動詞 | 12 (0.146) | 4 (0.182) | 0.1333 |
| 4 | 落ちる | 動詞 | 4 (0.049) | 3 (0.136) | 0.1304 |
| 5 | 婆 | 名詞C | 14 (0.171) | 4 (0.182) | 0.125 |
| 6 | 木 | 名詞C | 10 (0.122) | 3 (0.136) | 0.1034 |
| 7 | 庄屋 | 名詞 | 11 (0.134) | 3 (0.136) | 0.1 |
| 8 | 化ける | 動詞 | 2 (0.024) | 2 (0.091) | 0.0909 |
| 9 | 入る | 動詞 | 2 (0.024) | 2 (0.091) | 0.0909 |
| 10 | 村 | 名詞C | 3 (0.037) | 2 (0.091) | 0.087 |
・「ぬ」の結果上位一覧
| N | 抽出語 | 品詞 | 全体 | 共起 | Jaccard |
| 1 | まん丸 | 形容動詞 | 1 (0.012) | 1 (0.333) | 0.3333 |
| 2 | 因幡 | 人名 | 1 (0.012) | 1 (0.333) | 0.3333 |
| 3 | 越す | 動詞 | 1 (0.012) | 1 (0.333) | 0.3333 |
| 4 | 急用 | 名詞 | 1 (0.012) | 1 (0.333) | 0.3333 |
| 5 | 止める | 動詞 | 1 (0.012) | 1 (0.333) | 0.3333 |
| 6 | 上る | 動詞 | 1 (0.012) | 1 (0.333) | 0.3333 |
| 7 | 大峠 | 固有名詞 | 1 (0.012) | 1 (0.333) | 0.3333 |
| 8 | 泊まる | 動詞 | 1 (0.012) | 1 (0.333) | 0.3333 |
| 9 | 無理 | 形容動詞 | 1 (0.012) | 1 (0.333) | 0.3333 |
| 10 | 夜明け | 名詞 | 1 (0.012) | 1 (0.333) | 0.3333 |
山中で木に登って夜を明かそうとしたところ、猫や狼に襲われたため反撃して撃退したところ、麓の家の婆さんがその親玉だった……といった粗筋となっている。
短いお話の中で属性の転倒を多用するのが昔話の特徴の一つと考えられる。
ここで「/」(スラッシュ)を「転倒」を意味する記号として用いる。スラッシュは様々な場面で用いられていて文脈依存的な記号という欠点もあるが、視覚的にはイメージしやすいと判断した。
・[猟師|覗く:婆さん/猫]
・[猫|肩車:届かない/届きそう]
こういった風にお話を転がしていると分析できる。
猫たちが肩車して距離が縮まり「届かない/届きそう」と転倒したところで反撃、猫の親玉は「無傷/負傷」へと転倒する。
◆類似度行列
・[コーディング単位]を[文]に変更して[集計]。Jaccard係数がマトリクス形式で確認できる。
・ある列を選択して画面右下の[コピー(選択列)]をクリックすると、当該のキーワードに関するJaccard係数がコピーされるので、それを表計算ソフトにペーストするといった利用が可能となる。
※当ブログでは[コーディング単位]が[段落][H5]の場合、Jacccard係数が1.0~0.5といった結果がほとんどで、意味のない結果となった。
◆多次元尺度構成法
・[コーディング単位]を[文]に変更して実行。
・共起関係を確認したいキーワードを指定。
・次元を「2」から「3」に変更して実行、三次元のマップとした。
主人公が猫や狼に襲われるくだりに関連したキーワードを指定したところ、「木」が離れた位置にプロットされた。
※選択するキーワードによって相対的な位置関係は変わり得る。
※実行すると指定したキーワードの幾つかが除外されるとメッセージが表示される。テキストのボリューム不足のためか無償版の仕様によるものか判断がつかない。
※当ブログの事例では「文」以外、「段落」と「H5」では除外されるキーワードが増える傾向となった。
◆自己組織化マップ
[コーディング単位]を[文]に変更して実行。
記述内容が視覚的に整理され、類似性の高い内容が近くに配置される。概ねストーリーに沿った形で各クラスターが表示される。
※当ブログの事例では「文」以外、「段落」と「H5」ではエラーが返される結果となった。
※クラスター化の計算を繰り返すため処理に時間がかかるので要注意。
※クラスターの配置、距離に意味はない。
◆トピックの推定
・[ツール]→[文書]→[トピックモデル]→[トピックの推定]を選択。
・[集計単位]を[文]に変更。
・[OK]ボタンをクリックすると、[トピックの推定結果]画面が表示される。
・各トピックで高い確率で出現する語句がリストアップされる。
・[#1]といった欄をクリックすると、文書検索画面が表示される。
◆ベイズ学習による分類
・[ツール]→[文書]→[ベイズ学習による分類]→[外部変数から学習]を選択。
・[分類の単位]を[文]に変更。
・[学習する外部変数]は[書名]に変更する。
※「タイトル」のままでもよし。
・[OK]ボタンをクリックすると、ファイルの保存画面が表示されるので、任意のファイル名を記述して保存する。
・[ツール]→[文書]→[ベイズ学習による分類]→[学習結果ファイルの内容を確認]を選択。ファイル選択画面が開くので、先ほど保存したファイルを指定して開く。すると[学習結果ファイル]画面が開くので内容の確認を行う。
※[学習結果を用いた自動分類]については割愛する。
※[トピックの推定]と[ベイズ学習による分類]は固有名詞などを強制抽出語としてあらかじめ指定しておかないと正確に分析されないケースが生じる。正式に利用したい際は有償版の購入をお勧めする。当ブログのはあくまでテストケースとしてのものである。
※[トピックの推定]と[ベイズ学習による分類]はコーディング・ルールに依らない分析手法となるが、筆者の能力的に追及はしない。
◆参考文献
・『日本の民話 34 石見篇』(大庭良美/編, 未来社, 1978)pp.431-432.
・『日本伝説大系 第11巻 山陰(鳥取・島根)』(野村純一他, みずうみ書房, 1984)pp.150-151.
・『島根県の民話 やまたのおろちほか』(日本児童文学者協会/編, 偕成社, 2000)pp.135-141.
・『動かして学ぶ!はじめてのテキストマイニング』(樋口耕一, ナカニシヤ出版, 2022)
・『社会調査のための計量テキスト分析 【第2版】 内容分析の継承と発展を目指して』(樋口耕一, ナカニシヤ出版, 2020)
| 固定リンク
◆はじめに
以下はKH Coder(無償版:version 3.Beta.08e)を用いた昔話の計量テキスト分析である。昔話の類話の比較にツールを利用できないか試行してみた。
手持ちの資料が限られるため、分析の対象となる元データの文字数が少ないものの(※本来であれば5000字以上は欲しい)、分析自体は正常に処理されていると判断した。
KH Coderの操作に慣れる目的も兼ねて行った作業で、コーディングルールの記述の事例集、あるいは速習用のチュートリアルとしてでも読んで頂ければ……といったところである。
なお、KH Coderでよく用いられるのは共起ネットワークと対応分析とのことで、それ以外はおまけパートと思って頂いて構わない。操作に習熟するにはコーディングルールの記述に慣れるのが第一である。
◆ファイル
各ファイルをダウンロードしてKH Coderに読み込ませれば同様の分析が再現可能である。
ダウンロード - ca_pb_036_enkonoongaeshi.xlsx
ダウンロード - ca_pb_036_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 ( 若い 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コンコーダンスでキーワード指定すれば指定したキーワードがどのような文脈で用いられているか一覧で抽出される。
◆関連語検索
・[集計単位]を[文]に変更、[集計]する。
・[Search Entry:]の一覧からキーワードを選択してダブルクリックすると[Result]に指定したキーワードの品詞や共起関係が表示される。
※[Result:]から行指定してダブルクリックするとKWICコンコーダンスに遷移する。
※[Result:]の一覧から範囲指定して[コピー]したものを表計算ソフトやテキストファイルにペーストすることも可能である。
[#直接入力]を指定して「腐る」といったキーワードで検索すると関連語が一覧で表示される。
◆属性の転倒
・「ない」の結果上位一覧
| N | 抽出語 | 品詞 | 全体 | 共起 | Jaccard |
| 1 | 言う | 動詞 | 21 (0.239) | 10 (0.400) | 0.2778 |
| 2 | 持つ | 動詞 | 8 (0.091) | 4 (0.160) | 0.1379 |
| 3 | 川 | 名詞C | 12 (0.136) | 4 (0.160) | 0.1212 |
| 4 | 見る | 動詞 | 4 (0.045) | 3 (0.120) | 0.1154 |
| 5 | 自分 | 名詞 | 4 (0.045) | 3 (0.120) | 0.1154 |
| 6 | 仙 | 地名 | 4 (0.045) | 3 (0.120) | 0.1154 |
| 7 | 鉄 | 名詞C | 4 (0.045) | 3 (0.120) | 0.1154 |
| 8 | 左衛門 | 人名 | 5 (0.057) | 3 (0.120) | 0.1111 |
| 9 | 女 | 名詞C | 6 (0.068) | 3 (0.120) | 0.1071 |
| 10 | 魚 | 名詞C | 9 (0.102) | 3 (0.120) | 0.0968 |
・「ぬ」の結果上位一覧
| N | 抽出語 | 品詞 | 全体 | 共起 | Jaccard |
| 1 | 出来る | 動詞 | 1 (0.011) | 1 (0.333) | 0.3333 |
| 2 | 知る | 動詞 | 1 (0.011) | 1 (0.333) | 0.3333 |
| 3 | 養う | 動詞 | 1 (0.011) | 1 (0.333) | 0.3333 |
| 4 | 子供 | 名詞 | 2 (0.023) | 1 (0.333) | 0.25 |
| 5 | 困る | 動詞 | 3 (0.034) | 1 (0.333) | 0.2 |
| 6 | 思う | 動詞 | 4 (0.045) | 1 (0.333) | 0.1667 |
| 7 | 若者 | 名詞 | 4 (0.045) | 1 (0.333) | 0.1667 |
| 8 | 寝る | 動詞 | 4 (0.045) | 1 (0.333) | 0.1667 |
| 9 | カッパ | 名詞 | 7 (0.080) | 1 (0.333) | 0.1111 |
| 10 | 言う | 動詞 | 21 (0.239) | 2 (0.667) | 0.0909 |
えんこうの住処の穴に入れるように鍬を取り除いたところ、毎朝魚が届けられるようになったが金物がきっかけで来なくなった……といった粗筋となっている。
短いお話の中で属性の転倒を多用するのが昔話の特徴の一つと考えられる。
ここで「/」(スラッシュ)を「転倒」を意味する記号として用いる。スラッシュは様々な場面で用いられていて文脈依存的な記号という欠点もあるが、視覚的にはイメージしやすいと判断した。
・[えんこう|穴:入れない/入れる]
・[えんこう|魚:持参/止める]
・[兄弟|約束:仲良し/仲違い]
こういった風にお話を転がしていると分析できる。
えんこうとの約束がきっかけで兄弟は喧嘩、その関係が「仲良し/仲違い」と転倒してしまう。
◆類似度行列
・[コーディング単位]を[文]に変更して[集計]。Jaccard係数がマトリクス形式で確認できる。
・ある列を選択して画面右下の[コピー(選択列)]をクリックすると、当該のキーワードに関するJaccard係数がコピーされるので、それを表計算ソフトにペーストするといった利用が可能となる。
※当ブログでは[コーディング単位]が[段落][H5]の場合、Jacccard係数が1.0~0.5といった結果がほとんどで、意味のない結果となった。
◆多次元尺度構成法
・[コーディング単位]を[文]に変更して実行。
・共起関係を確認したいキーワードを指定。
・次元を「2」から「3」に変更して実行、三次元のマップとした。
大膳と治部とがえんこうとの約束を巡って喧嘩となるくだりに関連したキーワードを指定したところ、「殺す」「約束」が離れた位置にプロットされた。
※選択するキーワードによって相対的な位置関係は変わり得る。
※実行すると指定したキーワードの幾つかが除外されるとメッセージが表示される。テキストのボリューム不足のためか無償版の仕様によるものか判断がつかない。
※当ブログの事例では「文」以外、「段落」と「H5」では除外されるキーワードが増える傾向となった。
◆自己組織化マップ
[コーディング単位]を[文]に変更して実行。
記述内容が視覚的に整理され、類似性の高い内容が近くに配置される。概ねストーリーに沿った形で各クラスターが表示される。
※当ブログの事例では「文」以外、「段落」と「H5」ではエラーが返される結果となった。
※クラスター化の計算を繰り返すため処理に時間がかかるので要注意。
※クラスターの配置、距離に意味はない。
◆トピックの推定
・[ツール]→[文書]→[トピックモデル]→[トピックの推定]を選択。
・[集計単位]を[文]に変更。
・[OK]ボタンをクリックすると、[トピックの推定結果]画面が表示される。
・各トピックで高い確率で出現する語句がリストアップされる。
・[#1]といった欄をクリックすると、文書検索画面が表示される。
◆ベイズ学習による分類
・[ツール]→[文書]→[ベイズ学習による分類]→[外部変数から学習]を選択。
・[分類の単位]を[文]に変更。
・[学習する外部変数]は[書名]に変更する。
※「タイトル」のままでもよし。
・[OK]ボタンをクリックすると、ファイルの保存画面が表示されるので、任意のファイル名を記述して保存する。
・[ツール]→[文書]→[ベイズ学習による分類]→[学習結果ファイルの内容を確認]を選択。ファイル選択画面が開くので、先ほど保存したファイルを指定して開く。すると[学習結果ファイル]画面が開くので内容の確認を行う。
※[学習結果を用いた自動分類]については割愛する。
※[トピックの推定]と[ベイズ学習による分類]は固有名詞などを強制抽出語としてあらかじめ指定しておかないと正確に分析されないケースが生じる。正式に利用したい際は有償版の購入をお勧めする。当ブログのはあくまでテストケースとしてのものである。
※[トピックの推定]と[ベイズ学習による分類]はコーディング・ルールに依らない分析手法となるが、筆者の能力的に追及はしない。
◆参考文献
・『日本の民話 34 石見篇』(大庭良美/編, 未来社, 1978)pp.356-358.
・『島根のむかし話』(島根県小・中学校国語教育研究会/編著, 日本標準, 1976)pp.176-179.
・「夕陽を招く長者 山陰民話語り部シリーズ1」(民話の会「石見」/編, ハーベスト出版, 2013)pp.173-174.
・『日本伝説大系 第11巻 山陰(鳥取・島根)』(野村純一他, みずうみ書房, 1984)pp.198-199.
・『動かして学ぶ!はじめてのテキストマイニング』(樋口耕一, ナカニシヤ出版, 2022)
・『社会調査のための計量テキスト分析 【第2版】 内容分析の継承と発展を目指して』(樋口耕一, ナカニシヤ出版, 2020)
| 固定リンク
人口、利用者減に危機感 山陰線利用促進協設立へ 悪循環回避へ対策急務
https://www.sanin-chuo.co.jp/articles/-/984132
鉄道の輸送密度、一日2000人が採算ラインらしいのだけど、JR山陰本線の場合、鳥取―出雲市間は黒字、出雲以西は赤字である。特に益田以西は山口線以下で厳しい数字。コロナ禍を契機にそれ以前より数字が悪化、一日の本数が減って乗客数も減る負のスパイラルに陥っている。山陰道は江津から益田までほぼ繋がったので萩石見空港にはプラスかもしれないが、JRにメリットがあるかは分からない。
都会の私鉄じゃないから沿線に住宅地を開発する訳にもいかないし、パーク&ライドといった取り組みも既に行われているしで、そうそうよい解決策が出る訳もない。
| 固定リンク
◆はじめに
以下はKH Coder(無償版:version 3.Beta.08e)を用いた昔話の計量テキスト分析である。昔話の類話の比較にツールを利用できないか試行してみた。
手持ちの資料が限られるため、分析の対象となる元データの文字数が少ないものの(※本来であれば5000字以上は欲しい)、分析自体は正常に処理されていると判断した。
KH Coderの操作に慣れる目的も兼ねて行った作業で、コーディングルールの記述の事例集、あるいは速習用のチュートリアルとしてでも読んで頂ければ……といったところである。
なお、KH Coderでよく用いられるのは共起ネットワークと対応分析とのことで、それ以外はおまけパートと思って頂いて構わない。操作に習熟するにはコーディングルールの記述に慣れるのが第一である。
◆ファイル
各ファイルをダウンロードしてKH Coderに読み込ませれば同様の分析が再現可能である。
ダウンロード - ca_pb_035_hachihikinouma.xlsx
ダウンロード - ca_pb_035_codingrules.txt
ダウンロード - kh_coder_startingedition_sagyotejunsho.txt (※作業手順書)
※「H5」とはHTMLでいうところのヘッダー(見出し)・レベル5で本文に相当すると考えればよい。
※[コーディング単位]は「文/段落/H5」から選べるが、状況に応じて適切と思われるものを選択する必要がある。処理が上手くいかないと感じた場合、コーディング単位を切り替えると上手く処理されるケースがままある。
※公式マニュアルでは「集計単位」という用語が使われている。共起関係について、
・「文」では一文単位での分析
・「段落」では段落単位の分析
・「H5」では表計算ソフトのセル単位とされ、改行を含めた一セルの中身全体が分析単位となる
※レファレンスでも索引で「コーディング単位」の項目は設けられていない。操作性に関わる重要項目であるものの、その仕様について不明瞭な感はある。
※当ブログの場合、表計算ソフトのフォーマットで読み込ませているからH5固定でいいだろうと思い込んでいたら、さにあらずだった。
◆あらすじ
・「八匹の馬」(未来社『石見の民話』)
彦八の旦那のところへ商人が一夜宿を借りた。夕飯を食べながら色々話すうちに商人が、旦那様、今日自分が来る道でタノキのマタへ烏が巣をかけていたと言った。旦那がそんな馬鹿げた話をしなさんなと言った。いや、嘘ではない。本当であると商人が言ったので、もし本当でなかったら、お前の荷をみんな置いていけ。もし自分が負けたら八匹の馬がいるから皆あげようと旦那が言った。旦那と商人は手を打って約束をした。朝になると旦那と商人は飯も食わずに出かけた。旦那が商人について行くと、田の中に木があって、木の股に烏が巣をかけていた。旦那、あれを見よ。田の木の股に烏が巣を作っておろうと商人が言った。旦那は狸はどこにいるかね。狸なんぞいはしないじゃないかと言うと、商人は狸の話など誰もしはしない。自分が言ったのは田の木の股と言ったのだと言った。旦那の負けになった。そこで旦那はこっそり彦八を呼びにやった。そして訳を話し、お前はこれの下男ということになって上手くやってくれと頼むと、彦八はポンと膝を打って、それは自分が引き受けようと言って、本当の下男を呼んで駄屋から一番痩せた馬を出させ、庭の植木鉢に縄をかけて引っ張らせ、商人さん、さあハチヒキの馬をあげるから受け取れと言った。商人は話が違うが、まあいいと思って馬を引っ張って出ると、商人さん、お前の荷は置いていけ、八引く二(荷)が残るということがあるからと言って、とうとう商人の荷を取り上げてしまった。
・「たのきのまたのハチのす」(日本標準『島根のむかし話』)
昔、彦八が旦那のところへ話に行った。彦八、何か面白い話はないかと聞かれたので、はい、あります。ここへ来るときに、たのきのまたに蜂が巣をかけていましたと答えたら、彦八、それは嘘ではないかと返されたので、いえ、嘘ではありません。嘘だと思うなら行ってみましょうとなり、旦那と連れ立って行ったところ、ちょうど田の中に木があった。その木の股に蜂が巣をかけていた。そこで彦八が、ほら、田の木の股に蜂が巣をかけているでしょうと言った。旦那は大笑いしたそうな。
・「たの吉とうわばみ」(日本標準『島根のむかし話』)
昔々、この辺にたの吉という踊りの上手い男がいた。ある年、隣村で踊りを始めようとしたら、早く帰りなさい。嬶が病気になったからと使いの者が来た。たの吉はそれは大変だ。すぐ帰ると帰る用意をした。ところが、傍の者が今から帰ると山の中で日が暮れる。あの山の中には大きなうわばみが出るということだ。明日の朝になって帰ればいいと止めたが、どうしても帰ると言うものだから、それなら気をつけて帰りなさいと言って帰らせた。たの吉が山の中まで来ると、もう真っ暗になってしまった。松明に火をつけて峠の方へ歩いていくと、先の方でフーッ、フーッと声がする。あれまあ、こいつがあのうわばみではないかと思ってぶるぶる震えたけれど、仕方ない。運が良ければ通られるだろうし、悪ければ食われてしまうとそろそろ歩いていった。そうしたら、うわばみがお前は誰だ。ものを言って通れと言った。俺はたの吉だ。これから帰るところだと震え震え言った。すると、うわばみが何を聞き間違えたものやら、何、タヌキだと。タヌキなら化けるだろう。ひとつ何でもいいから化けてみよと言った。たの吉はそれなら化けるから、あっちを向いていて下さい。こっちを向いていると、震えて化けられないと答えた。うわばみが向こうを見ている間に、たの吉は風呂敷の中に入れておいた芝居の着物を着て娘の面を被った。もういいぞ。ほら、どうかねと言った。うわばみはびっくりして、何と綺麗な娘さんだこと。それなら、ここを通ってもいいと言ったものだから、たの吉は帰ろうとした。それなら自分はこれで帰りますが、ひとつ聞きたいことがある。それは他でもない、お前さんのようなものはこの世で恐ろしいものはいないだろうと言うと、そんなことはない。やはりある。それは松やにだ。あれはどうしても自分の手に負えないと答えた。ほーん、松やにか。自分は銭だ。銭があると心配したり喧嘩したり。銭が一番恐ろしいと言って帰った。帰ってみると、嬶の加減はよかった。それから大分してから、なんと、あの山にいるうわばみをやっつけることはできないものかと相談があった。たの吉はそれを聞いて、それは自分が知っている。あのうわばみは松やにが嫌いだ。松やにをうわばみの穴に流しさえすれば退治できると教えてやった。あくる日、松やにを集めて、うわばみが寝ている穴にどろどろ、どろどろと流し込んだ。うわばみは苦しくて苦しくて三日三晩唸っていた。それから少しして、たの吉が寝ていると、ドシーンと音がしたかと思うと、この間の仕返しだと言った者があった。たの吉が戸を開けてみると、なんと、入口に銭が一杯入った俵が積んであった。
◆コーディングルール
※コーディングルールのキーワードは重要と判断したものを人力でピックアップしている。そのため、恣意性を伴う分析となる。
※活用形でなく基本形で入力する。
※[前処理]→[語の抽出結果を確認]でキーワードがどのように分節されているか検索すると結果の一覧[語の抽出結果]が表示される。
※[Result]から確認したい行をクリックして選択、画面下の[詳細表示]ボタンをクリックするとサブ画面が表示され、活用形や基本形が確認できる。
※昔話では「否定/肯定」「肯定/否定」と属性が変化することが多いと考え、否定詞「ない」「まい」「ぬ」「ん」、また禁止を意味する「な」を共通のコードとして設定している。
※[関連語検索]で否定詞の共起語の一覧を表示させたところ、日本の昔話のように掌編レベルのボリュームだと、物語の動因となる箇所に関する語句が上位に表示される傾向が強いのではないか……といった印象があり、検証作業中である。
※無償版では強制抽出語の指定が機能制限で事実上使用できないため以下のような手法をとっている。
*彦八
'彦八'
*タノキ
タノキ or ( 田 and 木 )
*マタ
マタ or 股
*嘘
嘘 or 馬鹿げた
*八
八 or 鉢
*荷
荷 or 二
*八匹
'八匹' or 'ハチヒキ' or ( 鉢 and 引っ張る )
*負け
負け 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 | 答える | 動詞 | 3 (0.043) | 3 (0.273) | 0.2727 |
| 2 | 話 | サ変名詞 | 5 (0.072) | 3 (0.273) | 0.2308 |
| 3 | 嘘 | 名詞C | 3 (0.043) | 2 (0.182) | 0.1667 |
| 4 | 震える | 動詞 | 3 (0.043) | 2 (0.182) | 0.1667 |
| 5 | 言う | 動詞 | 19 (0.275) | 4 (0.364) | 0.1538 |
| 6 | 彦 | 未知語 | 7 (0.101) | 2 (0.182) | 0.125 |
| 7 | 商人 | 名詞 | 10 (0.145) | 2 (0.182) | 0.1053 |
| 8 | あれ | 感動詞 | 1 (0.014) | 1 (0.091) | 0.0909 |
| 9 | この世 | 名詞 | 1 (0.014) | 1 (0.091) | 0.0909 |
| 10 | はい | 感動詞 | 1 (0.014) | 1 (0.091) | 0.0909 |
狸とタノキと読む地方ならではの勘違いで一本とられてしまう……といった粗筋となっている。
短いお話の中で属性の転倒を多用するのが昔話の特徴の一つと考えられる。
ここで「/」(スラッシュ)を「転倒」を意味する記号として用いる。スラッシュは様々な場面で用いられていて文脈依存的な記号という欠点もあるが、視覚的にはイメージしやすいと判断した。
・[旦那|馬:取られる/取り返す]
・[旦那|タノキ:疑い/笑い]
・[うわばみ|認識:たの吉/狸/娘]
・[うわばみ|仕返し:苦手/銭]
こういった風にお話を転がしていると分析できる。
「狸/タノキ」と転倒させてしまうことで騙したり笑いをとったりしている。
◆類似度行列
・[コーディング単位]を[文]に変更して[集計]。Jaccard係数がマトリクス形式で確認できる。
・ある列を選択して画面右下の[コピー(選択列)]をクリックすると、当該のキーワードに関するJaccard係数がコピーされるので、それを表計算ソフトにペーストするといった利用が可能となる。
※当ブログでは[コーディング単位]が[段落][H5]の場合、Jacccard係数が1.0~0.5といった結果がほとんどで、意味のない結果となった。
◆多次元尺度構成法
・[コーディング単位]を[文]に変更して実行。
・共起関係を確認したいキーワードを指定。
・次元を「2」から「3」に変更して実行、三次元のマップとした。
たの吉が山でうわばみに遭遇するくだりに関連したキーワードを指定したところ、「通る」が離れた位置にプロットされた。
※選択するキーワードによって相対的な位置関係は変わり得る。
※実行すると指定したキーワードの幾つかが除外されるとメッセージが表示される。テキストのボリューム不足のためか無償版の仕様によるものか判断がつかない。
※当ブログの事例では「文」以外、「段落」と「H5」では除外されるキーワードが増える傾向となった。
◆自己組織化マップ
[コーディング単位]を[文]に変更して実行。
記述内容が視覚的に整理され、類似性の高い内容が近くに配置される。概ねストーリーに沿った形で各クラスターが表示される。
※当ブログの事例では「文」以外、「段落」と「H5」ではエラーが返される結果となった。
※クラスター化の計算を繰り返すため処理に時間がかかるので要注意。
※クラスターの配置、距離に意味はない。
◆トピックの推定
・[ツール]→[文書]→[トピックモデル]→[トピックの推定]を選択。
・[集計単位]を[文]に変更。
・[OK]ボタンをクリックすると、[トピックの推定結果]画面が表示される。
・各トピックで高い確率で出現する語句がリストアップされる。
・[#1]といった欄をクリックすると、文書検索画面が表示される。
◆ベイズ学習による分類
・[ツール]→[文書]→[ベイズ学習による分類]→[外部変数から学習]を選択。
・[分類の単位]を[文]に変更。
・[学習する外部変数]は[書名]に変更する。
※「タイトル」のままでもよし。
・[OK]ボタンをクリックすると、ファイルの保存画面が表示されるので、任意のファイル名を記述して保存する。
・[ツール]→[文書]→[ベイズ学習による分類]→[学習結果ファイルの内容を確認]を選択。ファイル選択画面が開くので、先ほど保存したファイルを指定して開く。すると[学習結果ファイル]画面が開くので内容の確認を行う。
※[学習結果を用いた自動分類]については割愛する。
※[トピックの推定]と[ベイズ学習による分類]は固有名詞などを強制抽出語としてあらかじめ指定しておかないと正確に分析されないケースが生じる。正式に利用したい際は有償版の購入をお勧めする。当ブログのはあくまでテストケースとしてのものである。
※[トピックの推定]と[ベイズ学習による分類]はコーディング・ルールに依らない分析手法となるが、筆者の能力的に追及はしない。
◆参考文献
・『日本の民話 34 石見篇』(大庭良美/編, 未来社, 1978)pp.324-325.
・『島根のむかし話』(島根県小・中学校国語教育研究会/編著, 日本標準, 1976)pp.185-190, 214.
・『動かして学ぶ!はじめてのテキストマイニング』(樋口耕一, ナカニシヤ出版, 2022)
・『社会調査のための計量テキスト分析 【第2版】 内容分析の継承と発展を目指して』(樋口耕一, ナカニシヤ出版, 2020)
| 固定リンク
◆はじめに
以下はKH Coder(無償版:version 3.Beta.08e)を用いた昔話の計量テキスト分析である。昔話の類話の比較にツールを利用できないか試行してみた。
手持ちの資料が限られるため、分析の対象となる元データの文字数が少ないものの(※本来であれば5000字以上は欲しい)、分析自体は正常に処理されていると判断した。
KH Coderの操作に慣れる目的も兼ねて行った作業で、コーディングルールの記述の事例集、あるいは速習用のチュートリアルとしてでも読んで頂ければ……といったところである。
なお、KH Coderでよく用いられるのは共起ネットワークと対応分析とのことで、それ以外はおまけパートと思って頂いて構わない。操作に習熟するにはコーディングルールの記述に慣れるのが第一である。
◆ファイル
各ファイルをダウンロードしてKH Coderに読み込ませれば同様の分析が再現可能である。
ダウンロード - ca_pb_034_hanashihahikohachi.xlsx
ダウンロード - ca_pb_034_codingrules.txt
ダウンロード - kh_coder_startingedition_sagyotejunsho.txt (※作業手順書)
※「H5」とはHTMLでいうところのヘッダー(見出し)・レベル5で本文に相当すると考えればよい。
※[コーディング単位]は「文/段落/H5」から選べるが、状況に応じて適切と思われるものを選択する必要がある。処理が上手くいかないと感じた場合、コーディング単位を切り替えると上手く処理されるケースがままある。
※公式マニュアルでは「集計単位」という用語が使われている。共起関係について、
・「文」では一文単位での分析
・「段落」では段落単位の分析
・「H5」では表計算ソフトのセル単位とされ、改行を含めた一セルの中身全体が分析単位となる
※レファレンスでも索引で「コーディング単位」の項目は設けられていない。操作性に関わる重要項目であるものの、その仕様について不明瞭な感はある。
※当ブログの場合、表計算ソフトのフォーマットで読み込ませているからH5固定でいいだろうと思い込んでいたら、さにあらずだった。
◆あらすじ
・「話は彦八」(未来社『石見の民話』)
「話は彦八」と言われるくらいに話上手な彦八という男がいた。その話はみな作り話で、それがまたまじめくさって話すので本気で聞いていると、しまいになって、ああ、かつがれたと気がつくのであった。彦八はある時さる物持ちの楽隠居のところへ行った。入るとすぐ隠居が彦八、何か話せと注文した。いや、話すまい。旦那は聞いた後で、いつでも彦八それは嘘ではないかと言うから、自分にとっては張り合いがないと彦八は断った。いや今日は決してそのような事は言わない。証として、違約したらこの大判を彦八にやると隠居は机の上にあったピカピカする大判を一枚、彦八の前へ出した。しからば話そう。これはつくり話などではなく、また聞いた話でもなく、自分の実見談だから、そのつもりで聞くように。先日自分が浅利の長良屋へ用事があって参る途中、江川の川端で渡し舟を待っていた。ところが自分より先に侍が一人、供を連れて両掛に腰をかけて同じく渡し舟を待っていた。すると松の枝にとまっていた烏が糞をして侍の羽織を汚した。汚らわしいと侍はその羽織を脱ぐが早いか江川に投げ捨てて、両掛から羽織を出させてきちんと着て待っている。ところがまた烏が糞を手の甲にぺたんとやった。汚らわしいと侍は腰の刀を抜くが早いか、自分の手首をすぱっと切って江川に投げ込み、両掛から手を出してぺったり継いで泰然と腰を掛けて待っている。ところがまた烏が糞を、ところもあろうに侍の頭に落とした。侍はむっと腹をたてて、またぞろ一刀抜くが早いか、えいっと首を打ち落として、これまた汚らわしいと江川に投げ入れ、両掛から替えの首を出し、ぐっと継いで泰然自若、待っていた。その有様はいかにも昔物語の英雄豪傑の態度、ものに驚かぬ自分も感嘆、待った渡し舟が来たのも気づかず眺めていたと言った。彦八、それは嘘ではないかと隠居が思わず言ったので、はい、この大判、まことにありがたく頂戴いたしますと言って、彦八は大判を懐にしまった。
・「はなせば落ちる」(日本標準『島根のむかし話』)
昔々、彦八といってとても頓智の上手な男がいた。ある日、旦那のところへ話に行った。その旦那は話が上手かった。彦八、何か面白い話はないかと言われたので、彦八がこの間、大阪の鴻池へ行ったと答えたら、それでどうしたと聞かれたので、鴻池に大きな池があって、その横に格好の良い松があったので一の枝に登ったと答えた。それからと聞かれたので、次の二の枝に登ったら大分面白いところが見えたと答えた。それからと聞かれたので、三の枝まで登ると大阪の様子が見えたがと言ってから彦八が何も言わなくなってしまった。そこで旦那が、彦八、その先を話せと言ったところ、彦八は、いや、はなせば落ちると言った。
◆コーディングルール
※コーディングルールのキーワードは重要と判断したものを人力でピックアップしている。そのため、恣意性を伴う分析となる。
※活用形でなく基本形で入力する。
※[前処理]→[語の抽出結果を確認]でキーワードがどのように分節されているか検索すると結果の一覧[語の抽出結果]が表示される。
※[Result]から確認したい行をクリックして選択、画面下の[詳細表示]ボタンをクリックするとサブ画面が表示され、活用形や基本形が確認できる。
※昔話では「否定/肯定」「肯定/否定」と属性が変化することが多いと考え、否定詞「ない」「まい」「ぬ」「ん」、また禁止を意味する「な」を共通のコードとして設定している。
※[関連語検索]で否定詞の共起語の一覧を表示させたところ、日本の昔話のように掌編レベルのボリュームだと、物語の動因となる箇所に関する語句が上位に表示される傾向が強いのではないか……といった印象があり、検証作業中である。
※無償版では強制抽出語の指定が機能制限で事実上使用できないため以下のような手法をとっている。
*彦八
'彦八'
*作り話
作り話 or 'つくり話'
*旦那
隠居 or 旦那
*手首
手首 or ( 手 and 甲 )
*切る
切る or ( 打つ and 落とす )
*首
首 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 | 聞く | 動詞 | 6 (0.222) | 5 (0.714) | 0.625 |
| 2 | 言う | 動詞 | 8 (0.296) | 5 (0.714) | 0.5 |
| 3 | 彦 | 未知語 | 10 (0.370) | 4 (0.571) | 0.3077 |
| 4 | 話 | サ変名詞 | 6 (0.222) | 3 (0.429) | 0.3 |
| 5 | 嘘 | 名詞C | 2 (0.074) | 2 (0.286) | 0.2857 |
| 6 | 大阪 | 地名 | 2 (0.074) | 2 (0.286) | 0.2857 |
| 7 | 登る | 動詞 | 3 (0.111) | 2 (0.286) | 0.25 |
| 8 | 枝 | 名詞C | 4 (0.148) | 2 (0.286) | 0.2222 |
彦八の作り話にまんまと乗せられてしまう……といった粗筋となっている。
短いお話の中で属性の転倒を多用するのが昔話の特徴の一つと考えられる。
ここで「/」(スラッシュ)を「転倒」を意味する記号として用いる。スラッシュは様々な場面で用いられていて文脈依存的な記号という欠点もあるが、視覚的にはイメージしやすいと判断した。
・[旦那|大判:呈示/取られる]
・[彦八|話:嘘/儲け]
・[彦八|話:はなす/落ちる]
こういった風にお話を転がしていると分析できる。
彦八は巧みな話術で「嘘/大判」と転倒させてしまう。
◆類似度行列
・[コーディング単位]を[文]に変更して[集計]。Jaccard係数がマトリクス形式で確認できる。
・ある列を選択して画面右下の[コピー(選択列)]をクリックすると、当該のキーワードに関するJaccard係数がコピーされるので、それを表計算ソフトにペーストするといった利用が可能となる。
※当ブログでは[コーディング単位]が[段落][H5]の場合、Jacccard係数が1.0~0.5といった結果がほとんどで、意味のない結果となった。
◆多次元尺度構成法
・[コーディング単位]を[文]に変更して実行。
・共起関係を確認したいキーワードを指定。
・次元を「2」から「3」に変更して実行、三次元のマップとした。
彦八が巧みに話すくだりに関連したキーワードを指定したところ、「かつぐ」「上手」がやや離れた位置にプロットされた。
※選択するキーワードによって相対的な位置関係は変わり得る。
※実行すると指定したキーワードの幾つかが除外されるとメッセージが表示される。テキストのボリューム不足のためか無償版の仕様によるものか判断がつかない。
※当ブログの事例では「文」以外、「段落」と「H5」では除外されるキーワードが増える傾向となった。
◆自己組織化マップ
[コーディング単位]を[文]に変更して実行。
記述内容が視覚的に整理され、類似性の高い内容が近くに配置される。概ねストーリーに沿った形で各クラスターが表示される。
※当ブログの事例では「文」以外、「段落」と「H5」ではエラーが返される結果となった。
※クラスター化の計算を繰り返すため処理に時間がかかるので要注意。
※クラスターの配置、距離に意味はない。
◆トピックの推定
・[ツール]→[文書]→[トピックモデル]→[トピックの推定]を選択。
・[集計単位]を[文]に変更。
・[OK]ボタンをクリックすると、[トピックの推定結果]画面が表示される。
・各トピックで高い確率で出現する語句がリストアップされる。
・[#1]といった欄をクリックすると、文書検索画面が表示される。
◆ベイズ学習による分類
・[ツール]→[文書]→[ベイズ学習による分類]→[外部変数から学習]を選択。
・[分類の単位]を[文]に変更。
・[学習する外部変数]は[書名]に変更する。
※「タイトル」のままでもよし。
・[OK]ボタンをクリックすると、ファイルの保存画面が表示されるので、任意のファイル名を記述して保存する。
・[ツール]→[文書]→[ベイズ学習による分類]→[学習結果ファイルの内容を確認]を選択。ファイル選択画面が開くので、先ほど保存したファイルを指定して開く。すると[学習結果ファイル]画面が開くので内容の確認を行う。
※[学習結果を用いた自動分類]については割愛する。
※[トピックの推定]と[ベイズ学習による分類]は固有名詞などを強制抽出語としてあらかじめ指定しておかないと正確に分析されないケースが生じる。正式に利用したい際は有償版の購入をお勧めする。当ブログのはあくまでテストケースとしてのものである。
※[トピックの推定]と[ベイズ学習による分類]はコーディング・ルールに依らない分析手法となるが、筆者の能力的に追及はしない。
◆参考文献
・『日本の民話 34 石見篇』(大庭良美/編, 未来社, 1978)pp.322-323.
・『島根のむかし話』(島根県小・中学校国語教育研究会/編著, 日本標準, 1976)pp.212-213.
・『動かして学ぶ!はじめてのテキストマイニング』(樋口耕一, ナカニシヤ出版, 2022)
・『社会調査のための計量テキスト分析 【第2版】 内容分析の継承と発展を目指して』(樋口耕一, ナカニシヤ出版, 2020)
| 固定リンク
◆はじめに
以下はKH Coder(無償版:version 3.Beta.08e)を用いた昔話の計量テキスト分析である。昔話の類話の比較にツールを利用できないか試行してみた。
手持ちの資料が限られるため、分析の対象となる元データの文字数が少ないものの(※本来であれば5000字以上は欲しい)、分析自体は正常に処理されていると判断した。
KH Coderの操作に慣れる目的も兼ねて行った作業で、コーディングルールの記述の事例集、あるいは速習用のチュートリアルとしてでも読んで頂ければ……といったところである。
なお、KH Coderでよく用いられるのは共起ネットワークと対応分析とのことで、それ以外はおまけパートと思って頂いて構わない。操作に習熟するにはコーディングルールの記述に慣れるのが第一である。
◆ファイル
各ファイルをダウンロードしてKH Coderに読み込ませれば同様の分析が再現可能である。
ダウンロード - ca_pb_033_daikonmaki.xlsx
ダウンロード - ca_pb_033_codingrules.txt
ダウンロード - kh_coder_startingedition_sagyotejunsho.txt (※作業手順書)
※「H5」とはHTMLでいうところのヘッダー(見出し)・レベル5で本文に相当すると考えればよい。
※[コーディング単位]は「文/段落/H5」から選べるが、状況に応じて適切と思われるものを選択する必要がある。処理が上手くいかないと感じた場合、コーディング単位を切り替えると上手く処理されるケースがままある。
※公式マニュアルでは「集計単位」という用語が使われている。共起関係について、
・「文」では一文単位での分析
・「段落」では段落単位の分析
・「H5」では表計算ソフトのセル単位とされ、改行を含めた一セルの中身全体が分析単位となる
※レファレンスでも索引で「コーディング単位」の項目は設けられていない。操作性に関わる重要項目であるものの、その仕様について不明瞭な感はある。
※当ブログの場合、表計算ソフトのフォーマットで読み込ませているからH5固定でいいだろうと思い込んでいたら、さにあらずだった。
◆あらすじ
・「大根蒔き」(未来社『石見の民話』)
座頭の言うことは何でも信じる旦那がいた。ある日沢山の小作を雇って麻を蒔いていると、そこへ座頭が通りかかった。座頭はあの旦那は自分の言うことは何でも信じるから一つからかってやれと思った。すると仕事をしていた人が座頭に今日はどこへ行くのか訊いた。座頭は今はエダオの方からフシオの方へ行くと答えた。それを聞いた旦那は仕事を止めて枝のある苧(麻)や節のある苧を作ったのでは金にならぬと言って麻を蒔くのを止めた。それから日を変えて大豆を蒔いているとまた座頭が通りかかった。何か長い物を風呂敷に包んで持っているので今日は長いものを持って行きなさるがと声をかけると座頭は長いことは長いが鞘ばかりでと言った。これを聞いた旦那はせっかく大豆を蒔いてもさやばかりできたのでは何にもならないと言って大豆を蒔くのを止めさせた。その内に時期が遅れたので大根しか植えるものが無くなった。それで旦那は小作を集めて大根を蒔くことにした。今日は座頭が通っても何も言うな。何か言うと色々な事を言って気をくじくからと言った。そこへまた座頭がやってきた。座頭がどなたもご苦労ですなと言ったが誰も一口もものを言わない。座頭は自分の言うことをそんなに気にかけなくてもよいではないか。わしの言うことは根も葉もないことだと言った。旦那はこれを聞いて根も葉もない大根を作ったとしても何にもならないと言ってまた大根蒔きを止めさせた。それで旦那は座頭の言葉を信じたばかりに一年中何も作らずじまいであった。
・「ダイコンまき」(日本標準『島根のむかし話』)
昔、彦八と同じ村に何でも気にする旦那がいた。ある日、旦那が大豆を蒔こうと思って人を雇って畑を打っていた。そこへ彦八が長い刀を差して通りかかった。旦那が、彦八、大層長いのを差しておるなと言ったところ、彦八が旦那さん、これは鞘ばかりで身はございませんと言ったら、旦那は大豆を蒔いても莢ばかりで実がなくては駄目だと言って大豆を蒔くのを止めた。次の日、今度は綿を蒔こうと思っていると、また彦八が通りかかった。旦那が黙っていると、旦那さん、昨日までは風が吹いておりましたが、今日は吹かずにようございますなと言った。旦那は綿を蒔いても吹かないのでは駄目だ(綿が実って莢から綿が出ることを「わたがふく」と言う)と綿を蒔くことを止めた。あくる日、大根を蒔こうとまた人を雇って仕事をしていた。旦那は今日、彦八が通っても決して口をきくなと言っているところへ彦八がやって来た。旦那さん、こんにちはと言っても誰も返事しないので、旦那さん、この間は悪いことを言いました。あれは根も葉もない話ですから、こらえてやってくださいと言った。旦那は大根を蒔いても根も葉もなくてはつまらないと、とうとう大根蒔きを止めてしまった。
◆コーディングルール
※コーディングルールのキーワードは重要と判断したものを人力でピックアップしている。そのため、恣意性を伴う分析となる。
※活用形でなく基本形で入力する。
※[前処理]→[語の抽出結果を確認]でキーワードがどのように分節されているか検索すると結果の一覧[語の抽出結果]が表示される。
※[Result]から確認したい行をクリックして選択、画面下の[詳細表示]ボタンをクリックするとサブ画面が表示され、活用形や基本形が確認できる。
※昔話では「否定/肯定」「肯定/否定」と属性が変化することが多いと考え、否定詞「ない」「まい」「ぬ」「ん」、また禁止を意味する「な」を共通のコードとして設定している。
※[関連語検索]で否定詞の共起語の一覧を表示させたところ、日本の昔話のように掌編レベルのボリュームだと、物語の動因となる箇所に関する語句が上位に表示される傾向が強いのではないか……といった印象があり、検証作業中である。
※無償版では強制抽出語の指定が機能制限で事実上使用できないため以下のような手法をとっている。
*小作
小作 or ( 仕事 and 人 ) or ( 雇う and 人 )
*枝
枝 or 'エダオ'
*節
節 or 'フシオ'
*麻
麻 or 苧
*さや
鞘 or 莢 or さや
*実
身 or 実
*彦八
'彦八'
*黙る
黙る or ( 返事 and する and ない )
*綿
綿 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 | 言う | 動詞 | 17 (0.548) | 9 (0.900) | 0.5 |
| 2 | 止める | 動詞 | 6 (0.194) | 5 (0.500) | 0.4545 |
| 3 | 根 | 名詞C | 4 (0.129) | 4 (0.400) | 0.4 |
| 4 | 葉 | 名詞C | 4 (0.129) | 4 (0.400) | 0.4 |
| 5 | 旦那 | 名詞 | 15 (0.484) | 6 (0.600) | 0.3158 |
| 6 | 蒔く | 動詞 | 12 (0.387) | 5 (0.500) | 0.2941 |
| 7 | 駄目 | 形容動詞 | 2 (0.065) | 2 (0.200) | 0.2 |
| 8 | 莢 | 名詞C | 2 (0.065) | 2 (0.200) | 0.2 |
| 9 | 聞く | 動詞 | 3 (0.097) | 2 (0.200) | 0.1818 |
| 10 | 大豆 | 名詞 | 4 (0.129) | 2 (0.200) | 0.1667 |
・「ぬ」の結果上位一覧
| N | 抽出語 | 品詞 | 全体 | 共起 | Jaccard |
| 1 | 作る | 動詞 | 3 (0.097) | 2 (0.667) | 0.5 |
| 2 | な | 感動詞 | 1 (0.032) | 1 (0.333) | 0.3333 |
| 3 | よう | 感動詞 | 1 (0.032) | 1 (0.333) | 0.3333 |
| 4 | 一年中 | 副詞可能 | 1 (0.032) | 1 (0.333) | 0.3333 |
| 5 | 金 | 名詞C | 1 (0.032) | 1 (0.333) | 0.3333 |
| 6 | 言葉 | 名詞 | 1 (0.032) | 1 (0.333) | 0.3333 |
| 7 | 昨日 | 副詞可能 | 1 (0.032) | 1 (0.333) | 0.3333 |
| 8 | 枝 | 名詞C | 1 (0.032) | 1 (0.333) | 0.3333 |
| 9 | 節 | 名詞C | 1 (0.032) | 1 (0.333) | 0.3333 |
| 10 | 苧 | 名詞C | 1 (0.032) | 1 (0.333) | 0.3333 |
旦那は畑打ちで座頭や彦八の軽口を信じたばかりに種蒔きを止めてしまう……といった粗筋となっている。
短いお話の中で属性の転倒を多用するのが昔話の特徴の一つと考えられる。
ここで「/」(スラッシュ)を「転倒」を意味する記号として用いる。スラッシュは様々な場面で用いられていて文脈依存的な記号という欠点もあるが、視覚的にはイメージしやすいと判断した。
・[旦那|種:蒔く/止める]
・[座頭|種蒔き:謎かけ/妨害]
・[彦八|種蒔き:軽口/妨害]
・[種蒔き|時節:得る/逃す]
こういった風にお話を転がしていると分析できる。
旦那は座頭や彦八の言葉を意味深に解釈、「無意味/意味あり」と転倒させて、せっかくの種蒔きの時節を逃してしまう。
◆類似度行列
・[コーディング単位]を[文]に変更して[集計]。Jaccard係数がマトリクス形式で確認できる。
・ある列を選択して画面右下の[コピー(選択列)]をクリックすると、当該のキーワードに関するJaccard係数がコピーされるので、それを表計算ソフトにペーストするといった利用が可能となる。
※当ブログでは[コーディング単位]が[段落][H5]の場合、Jacccard係数が1.0~0.5といった結果がほとんどで、意味のない結果となった。
◆多次元尺度構成法
・[コーディング単位]を[文]に変更して実行。
・共起関係を確認したいキーワードを指定。
・次元を「2」から「3」に変更して実行、三次元のマップとした。
旦那が座頭や彦八に気をくじかれてしまうくだりに関連したキーワードを指定したところ、「気」「彦八」が離れた位置にプロットされた。
※選択するキーワードによって相対的な位置関係は変わり得る。
※実行すると指定したキーワードの幾つかが除外されるとメッセージが表示される。テキストのボリューム不足のためか無償版の仕様によるものか判断がつかない。
※当ブログの事例では「文」以外、「段落」と「H5」では除外されるキーワードが増える傾向となった。
◆自己組織化マップ
[コーディング単位]を[文]に変更して実行。
記述内容が視覚的に整理され、類似性の高い内容が近くに配置される。概ねストーリーに沿った形で各クラスターが表示される。
※当ブログの事例では「文」以外、「段落」と「H5」ではエラーが返される結果となった。
※クラスター化の計算を繰り返すため処理に時間がかかるので要注意。
※クラスターの配置、距離に意味はない。
◆トピックの推定
・[ツール]→[文書]→[トピックモデル]→[トピックの推定]を選択。
・[集計単位]を[文]に変更。
・[OK]ボタンをクリックすると、[トピックの推定結果]画面が表示される。
・各トピックで高い確率で出現する語句がリストアップされる。
・[#1]といった欄をクリックすると、文書検索画面が表示される。
◆ベイズ学習による分類
・[ツール]→[文書]→[ベイズ学習による分類]→[外部変数から学習]を選択。
・[分類の単位]を[文]に変更。
・[学習する外部変数]は[書名]に変更する。
※「タイトル」のままでもよし。
・[OK]ボタンをクリックすると、ファイルの保存画面が表示されるので、任意のファイル名を記述して保存する。
・[ツール]→[文書]→[ベイズ学習による分類]→[学習結果ファイルの内容を確認]を選択。ファイル選択画面が開くので、先ほど保存したファイルを指定して開く。すると[学習結果ファイル]画面が開くので内容の確認を行う。
※[学習結果を用いた自動分類]については割愛する。
※[トピックの推定]と[ベイズ学習による分類]は固有名詞などを強制抽出語としてあらかじめ指定しておかないと正確に分析されないケースが生じる。正式に利用したい際は有償版の購入をお勧めする。当ブログのはあくまでテストケースとしてのものである。
※[トピックの推定]と[ベイズ学習による分類]はコーディング・ルールに依らない分析手法となるが、筆者の能力的に追及はしない。
◆参考文献
・『日本の民話 34 石見篇』(大庭良美/編, 未来社, 1978)pp.219-220.
・『島根のむかし話』(島根県小・中学校国語教育研究会/編著, 日本標準, 1976)pp.218-220.
・『動かして学ぶ!はじめてのテキストマイニング』(樋口耕一, ナカニシヤ出版, 2022)
・『社会調査のための計量テキスト分析 【第2版】 内容分析の継承と発展を目指して』(樋口耕一, ナカニシヤ出版, 2020)
| 固定リンク
2025年10月~2026年3月の本館実績
10月 PV:1611 Visit:1282 UU:1188
11月 PV:2801 Visit:2451 UU:2271 ※AIクローラー多し
12月 PV:1365 Visit:1132 UU:998 ※AIクローラー多し
1月 PV:1090 Visit:888 UU:829
2月 PV:1522 Visit:1273 UU:1175 ※AIクローラー多し
3月 PV:2451 Visit:2044 UU:1949 ※AIクローラー多し
AIクローラー、まるで底引き網漁のよう。書いてアップロードした傍から根こそぎクロールしていく感じ。本館ももはや人が読んでる感じがしない。海外からのアクセスを遮断できればいいのだけど。
| 固定リンク
◆はじめに
以下はKH Coder(無償版:version 3.Beta.08e)を用いた昔話の計量テキスト分析である。昔話の類話の比較にツールを利用できないか試行してみた。
手持ちの資料が限られるため、分析の対象となる元データの文字数が少ないものの(※本来であれば5000字以上は欲しい)、分析自体は正常に処理されていると判断した。
KH Coderの操作に慣れる目的も兼ねて行った作業で、コーディングルールの記述の事例集、あるいは速習用のチュートリアルとしてでも読んで頂ければ……といったところである。
なお、KH Coderでよく用いられるのは共起ネットワークと対応分析とのことで、それ以外はおまけパートと思って頂いて構わない。操作に習熟するにはコーディングルールの記述に慣れるのが第一である。
◆ファイル
各ファイルをダウンロードしてKH Coderに読み込ませれば同様の分析が再現可能である。
ダウンロード - ca_pb_032_sennenbiku.xlsx
ダウンロード - ca_pb_032_codingrules.txt
ダウンロード - kh_coder_startingedition_sagyotejunsho.txt (※作業手順書)
※「H5」とはHTMLでいうところのヘッダー(見出し)・レベル5で本文に相当すると考えればよい。
※[コーディング単位]は「文/段落/H5」から選べるが、状況に応じて適切と思われるものを選択する必要がある。処理が上手くいかないと感じた場合、コーディング単位を切り替えると上手く処理されるケースがままある。
※公式マニュアルでは「集計単位」という用語が使われている。共起関係について、
・「文」では一文単位での分析
・「段落」では段落単位の分析
・「H5」では表計算ソフトのセル単位とされ、改行を含めた一セルの中身全体が分析単位となる
※レファレンスでも索引で「コーディング単位」の項目は設けられていない。操作性に関わる重要項目であるものの、その仕様について不明瞭な感はある。
※当ブログの場合、表計算ソフトのフォーマットで読み込ませているからH5固定でいいだろうと思い込んでいたら、さにあらずだった。
◆あらすじ
・「千年比丘」(未来社『石見の民話』)
昔、国分の里に裕福な家があった。そこの主人は日頃よい行いをしていた報いか、竜宮城へよばれてしばらく行っていた。そこで月日の経つのも忘れていた。ところがその内に飽きて城内をぶらぶら歩いていると料理場へ来てしまった。ふと見るとそこには大きなまな板の上に人間を裸にして載せて料理人がしきりに料理をしていた。びっくりした男はこれまでの楽しかった夢も一時に醒め、竜宮というところは何と恐ろしいところだ、人間を殺して食べるところなのかと思うと、いても立ってもいられなくなり、城門から一目散に駆けだした。これを見た竜宮の人たちは、さぞびっくりしただろうがあれは人間でない、人魚という魚でこれを食べると千年生きられるという珍しい魚だ。あなたに食べさせようと思って料理しているところだと言って引き留めようとしたが、そんなことは男の耳に入らない。そうして国分の姉が浜まで逃げてきた。必死に追いかけてきた竜宮の人たちも陸へ上がることができないので、せめて土産にと持ってきた人魚の肉を男の方へ投げた。肉は男の袴の腰板の間へ入ったが、そんなことは知らず命からがら逃げて帰った。家の人たちは大喜びで出迎えた。男は久々に家族に会い、竜宮の話をした。幼い女の子はそれを聞くと竜宮の土産をねだった。土産はないのだと言って男が袴を脱ぐと、腰板の間から人魚の肉が落ちた。女の子はそれを拾うとすぐ食べてしまった。そのため女の子は千年の長い寿命をもって生きながらえた。力が強く、大きな盤石をも易々と持ち運んだと言われ、人々はこれを千年比丘と呼んだ。昔の国府村役場の隣にあった大きな岩は千年比丘が運んだものと言われ、下府片山にある古墳を千年比丘の穴と言って、千年比丘の住居の跡と言っている。
・「ふしぎな食べ物」(日本標準『島根のむかし話』)
昔々、この辺には講といって神さまや仏さまを拝む仲間があった。この講の仲間にいつの頃か今まで見たことのない人が入ってきた。その内にその見知らぬ人の家が講の順になった。その人は今度は家で講をするからおいでください。初めての所ですから自分が案内します。八幡さまのお宮で待っていてくださいと言った。あくる月になって誰もがどんな所へ行くのかと思って八幡さまへ集まった。そうしたら、その人がやって来て、さあ、これから案内しますからどなたも目をつぶってくださいと言った。皆、おかしな事を言うものだと思っていたが、言われる通りに目をつぶっていた。少ししてから、はい、もう目を開けてください。ここが自分の家ですと言われたので、誰もがそっと目を開けた。そうしたら、誰もがあっと驚いた。それは今まで見たこともない御殿のような家だった。広くて綺麗な所だった。使用人の男が旦那が戻られた。さあ用意するぞとご馳走を並べ始めた。もう誰も神さまや仏さまを拝む気もない。早くご馳走が食べたいのでうろうろしていた。だけど、一人だけ一生懸命拝んでいた者がいた。その内、一人の男がひょいと台所の方を見た。あっと言ってたまげた。台所のまな板の上に人間の赤ん坊に似たようなものが載せてあって、それを台所の男が料理していた。誰も男の声にたまげてそっちを見た。そして誰もがやあと驚いた。まな板の上のもの、あれは人間の赤ん坊だった。もう誰も気分が悪くなって食べる気がしなかった。さあ、何もないけれど食べてくださいと言ったけれど、誰も食べなかった。そのご馳走を見てばかりいた。だけど、一生懸命拝んでいた男は台所の方を見てなかったので、こんなご馳走は初めてだ。これは独りで食べるのはもったいないから持って帰って娘に食べさせてやろうと言って知らぬ顔で懐に入れておいた。どうこうして講も済んだので帰ることになった。土産を持って帰った男は今日は大変なご馳走だった。お前に食べさせようと思って持って戻ったぞと食べさせてやった。そのご馳走を食べた娘はだんだん綺麗になった。十年経っても二十年経っても十八くらいに見えた。父親も母親も皆死んでしまって娘独りになった。その内に娘は髪を切って比丘になった。あちこち歩いて仏さんを拝んだり杉の木を植えたりした。そうして八百年くらい生きていたけれど、誰も知らない。知らないけど長生きした。あと少しで死ぬことが分かった比丘は杉の木で大きな棺桶を作ってその中で死んでしまった。この辺の山の杉はみんなこの比丘が植えたものだそうだが、それにしても八百年も長生きした食べ物って何だったのやら。不思議なこともあるものだ。
・「粟島の八百ベクサン」(みずうみ書房『日本伝説大系』第十一巻)
粟島のある舟のりの家に十八になる食いしん坊の娘がいた。この娘の父が龍宮講に招かれて行った。ところが、講宿に行って台所をちらと見たら、板場で人魚を料理していたので怖ろしい事だと思った。それで誰にも黙ったまま自分さえ食べなければよいと思い箸をつけずにいた。料理を家に持ち帰ったが、人魚の料理を滅多なところへ捨てられず、家の者に話してからにしようと思い、戸棚に入れておいた。ところが、食いしん坊の娘は何か土産がないかと戸棚を探したところ、例の料理が入れてあったので、人魚の煮つけとは知らず、一人で食べてしまった。それからというもの、娘の年は一寸もよらずいつまでも十八の姿のままで、終いには年は八百にもなり、誰一人知った人がいなくなってしまった。そこで米を持って粟島さんの穴に入り、八百ベクサンはそこで定(ジョ)にいった。今でも西伯郡彦名村にある粟島さんの穴を八百ベクサンが定にいった穴だという。
◆コーディングルール
※コーディングルールのキーワードは重要と判断したものを人力でピックアップしている。そのため、恣意性を伴う分析となる。
※活用形でなく基本形で入力する。
※[前処理]→[語の抽出結果を確認]でキーワードがどのように分節されているか検索すると結果の一覧[語の抽出結果]が表示される。
※[Result]から確認したい行をクリックして選択、画面下の[詳細表示]ボタンをクリックするとサブ画面が表示され、活用形や基本形が確認できる。
※昔話では「否定/肯定」「肯定/否定」と属性が変化することが多いと考え、否定詞「ない」「まい」「ぬ」「ん」、また禁止を意味する「な」を共通のコードとして設定している。
※[関連語検索]で否定詞の共起語の一覧を表示させたところ、日本の昔話のように掌編レベルのボリュームだと、物語の動因となる箇所に関する語句が上位に表示される傾向が強いのではないか……といった印象があり、検証作業中である。
※無償版では強制抽出語の指定が機能制限で事実上使用できないため以下のような手法をとっている。
*料理場
料理場 or 台所 or 板場
*腰板
'腰板'
*女の子
女の子 or 娘
*怪力
力 and 強い
*盤石
盤石 or 岩
*旦那
旦那 or ( 見知る and ぬ and 人 ) or ( 見る and ない and 人 )
*ご馳走
ご馳走 or 食べ物
*八百年
'八百年' or '八百'
*比丘
比丘 or 'ベクサン'
*竜宮
竜宮 or 龍宮
*食べる
食べる or ( 箸 and つける )
*人間
人間 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)から点線が伸び交差した箇所が原点となる。原点から離れるほど特徴的なキーワードだと分析される。
原点付近には「男」「まな板」といったキーワードがプロットされている。未来社版では「怪力」「古墳」「寿命」といったキーワードが原点から離れてプロットされている。日本標準版では「御殿」「赤ん坊」「棺桶」といったキーワードが特徴的とされている。みずうみ書房版では「舟のり」といったキーワードが特徴的とされている。
◆解釈
八百比丘尼型のお話である。未来社版では古墳の穴と関連づけられている。みずうみ書房版では判然としないが、やはり古墳かもしれない。
◆階層的クラスター分析
・[コーディング単位]を[文]に変更、実行するとデンドログラム(樹状図)で可視化される。
※キーワード指定しても可。
概ねストーリーに沿った内容でクラスター化されている。
※当ブログの場合、[コーディング単位]が[段落][H5]だと、コードを全て選択するとエラーが返される結果となった。
◆クロス集計
・[コーディング単位]を[文]に変更、[集計]する。
※「タイトル」で集計をかけた。
クロス集計をかけたところ、「女の子」「八百年」「竜宮」といったキーワードでカイ(χ)2乗値で相関関係を示す結果(※マーク)が得られた。
マップとして描画したところ、「ぬ」「食いしん坊」といったキーワードの残差が大きく(濃く)表示される結果となった。バブルとしては「女の子」「ぬ」が大きく描画された。
◆KWICコンコーダンス
現状ではテキストマイニングのツールに文脈を読む性能はないため実際に該当箇所を読んで人力で判断する他ない。KWICコンコーダンスでキーワード指定すれば指定したキーワードがどのような文脈で用いられているか一覧で抽出される。
◆関連語検索
・[集計単位]を[文]に変更、[集計]する。
・[Search Entry:]の一覧からキーワードを選択してダブルクリックすると[Result]に指定したキーワードの品詞や共起関係が表示される。
※[Result:]から行指定してダブルクリックするとKWICコンコーダンスに遷移する。
※[Result:]の一覧から範囲指定して[コピー]したものを表計算ソフトやテキストファイルにペーストすることも可能である。
[#直接入力]を指定して「肉」といったキーワードで検索すると関連語が一覧で表示される。
◆属性の転倒
・「ない」の結果上位一覧
| N | 抽出語 | 品詞 | 全体 | 共起 | Jaccard |
| 1 | 食べる | 動詞 | 12 (0.169) | 7 (0.438) | 0.3333 |
| 2 | 知る | 動詞 | 4 (0.056) | 4 (0.250) | 0.25 |
| 3 | 人魚 | 名詞 | 6 (0.085) | 4 (0.250) | 0.2222 |
| 4 | 男 | 名詞C | 12 (0.169) | 5 (0.313) | 0.2174 |
| 5 | 人 | 名詞C | 8 (0.113) | 4 (0.250) | 0.2 |
| 6 | 見る | 動詞 | 9 (0.127) | 4 (0.250) | 0.1905 |
| 7 | 土産 | 名詞 | 5 (0.070) | 3 (0.188) | 0.1667 |
| 8 | 竜宮 | 名詞 | 5 (0.070) | 3 (0.188) | 0.1667 |
| 9 | 思う | 動詞 | 8 (0.113) | 3 (0.188) | 0.1429 |
| 10 | 言う | 動詞 | 11 (0.155) | 3 (0.188) | 0.125 |
・「ぬ」の結果上位一覧
| N | 抽出語 | 品詞 | 全体 | 共起 | Jaccard |
| 1 | 戸棚 | 名詞 | 2 (0.028) | 2 (0.500) | 0.5 |
| 2 | 入れる | 動詞 | 3 (0.042) | 2 (0.500) | 0.4 |
| 3 | 知る | 動詞 | 4 (0.056) | 2 (0.500) | 0.3333 |
| 4 | 人魚 | 名詞 | 6 (0.085) | 2 (0.500) | 0.25 |
| 5 | 一寸 | 名詞 | 1 (0.014) | 1 (0.250) | 0.25 |
| 6 | 姿 | 名詞C | 1 (0.014) | 1 (0.250) | 0.25 |
| 7 | 持ち帰る | 動詞 | 1 (0.014) | 1 (0.250) | 0.25 |
| 8 | 捨てる | 動詞 | 1 (0.014) | 1 (0.250) | 0.25 |
※「ぬ」はみずうみ書房版との関連が強いようだ。
知らずに長寿をもたらす人魚の肉を食べたところ、長寿を得たものの、それは孤独をももたらした……といった粗筋となっている。
短いお話の中で属性の転倒を多用するのが昔話の特徴の一つと考えられる。
ここで「/」(スラッシュ)を「転倒」を意味する記号として用いる。スラッシュは様々な場面で用いられていて文脈依存的な記号という欠点もあるが、視覚的にはイメージしやすいと判断した。
・[主人|竜宮:人魚/人]
・[娘|人魚の肉:生/長寿]
・[娘|人魚の肉:長寿/孤独]
こういった風にお話を転がしていると分析できる。
竜宮に招かれた主人は大層なもてなしを受けるものの、料理場で見た人魚をヒトと誤認してしまう。安楽な気分は恐怖へと転倒される。
◆類似度行列
・[コーディング単位]を[文]に変更して[集計]。Jaccard係数がマトリクス形式で確認できる。
・ある列を選択して画面右下の[コピー(選択列)]をクリックすると、当該のキーワードに関するJaccard係数がコピーされるので、それを表計算ソフトにペーストするといった利用が可能となる。
※当ブログでは[コーディング単位]が[段落][H5]の場合、Jacccard係数が1.0~0.5といった結果がほとんどで、意味のない結果となった。
◆多次元尺度構成法
・[コーディング単位]を[文]に変更して実行。
・共起関係を確認したいキーワードを指定。
・次元を「2」から「3」に変更して実行、三次元のマップとした。
招かれた客が料理場で人魚を目撃してしまうくだりに関連したキーワードを指定したところ、「主人」「人魚」がやや離れた位置にプロットされた。
※選択するキーワードによって相対的な位置関係は変わり得る。
※実行すると指定したキーワードの幾つかが除外されるとメッセージが表示される。テキストのボリューム不足のためか無償版の仕様によるものか判断がつかない。
※当ブログの事例では「文」以外、「段落」と「H5」では除外されるキーワードが増える傾向となった。
◆自己組織化マップ
[コーディング単位]を[文]に変更して実行。
記述内容が視覚的に整理され、類似性の高い内容が近くに配置される。概ねストーリーに沿った形で各クラスターが表示される。
※当ブログの事例では「文」以外、「段落」と「H5」ではエラーが返される結果となった。
※クラスター化の計算を繰り返すため処理に時間がかかるので要注意。
※クラスターの配置、距離に意味はない。
◆トピックの推定
・[ツール]→[文書]→[トピックモデル]→[トピックの推定]を選択。
・[集計単位]を[文]に変更。
・[OK]ボタンをクリックすると、[トピックの推定結果]画面が表示される。
・各トピックで高い確率で出現する語句がリストアップされる。
・[#1]といった欄をクリックすると、文書検索画面が表示される。
◆ベイズ学習による分類
・[ツール]→[文書]→[ベイズ学習による分類]→[外部変数から学習]を選択。
・[分類の単位]を[文]に変更。
・[学習する外部変数]は[書名]に変更する。
※「タイトル」のままでもよし。
・[OK]ボタンをクリックすると、ファイルの保存画面が表示されるので、任意のファイル名を記述して保存する。
・[ツール]→[文書]→[ベイズ学習による分類]→[学習結果ファイルの内容を確認]を選択。ファイル選択画面が開くので、先ほど保存したファイルを指定して開く。すると[学習結果ファイル]画面が開くので内容の確認を行う。
※[学習結果を用いた自動分類]については割愛する。
※[トピックの推定]と[ベイズ学習による分類]は固有名詞などを強制抽出語としてあらかじめ指定しておかないと正確に分析されないケースが生じる。正式に利用したい際は有償版の購入をお勧めする。当ブログのはあくまでテストケースとしてのものである。
※[トピックの推定]と[ベイズ学習による分類]はコーディング・ルールに依らない分析手法となるが、筆者の能力的に追及はしない。
◆参考文献
・『日本の民話 34 石見篇』(大庭良美/編, 未来社, 1978)pp.251-252.
・『島根のむかし話』(島根県小・中学校国語教育研究会/編著, 日本標準, 1976)pp.236-240.
・『日本伝説大系 第11巻 山陰(鳥取・島根)』(野村純一他, みずうみ書房, 1984)p.112.
・『動かして学ぶ!はじめてのテキストマイニング』(樋口耕一, ナカニシヤ出版, 2022)
・『社会調査のための計量テキスト分析 【第2版】 内容分析の継承と発展を目指して』(樋口耕一, ナカニシヤ出版, 2020)
| 固定リンク
山陰道・北条道路の整備に115億円 米子-境港間の高規格道はルート選定へ 中国地方整備局が公共事業費配分
https://www.sanin-chuo.co.jp/articles/-/982595
今年度、福光浅利道路には約40億円の予算が投じられるとのこと。前年度の額は分からないが、橋梁工事など本格化するようだ。
| 固定リンク
◆はじめに
以下はKH Coder(無償版:version 3.Beta.08e)を用いた昔話の計量テキスト分析である。昔話の類話の比較にツールを利用できないか試行してみた。
手持ちの資料が限られるため、分析の対象となる元データの文字数が少ないものの(※本来であれば5000字以上は欲しい)、分析自体は正常に処理されていると判断した。
KH Coderの操作に慣れる目的も兼ねて行った作業で、コーディングルールの記述の事例集、あるいは速習用のチュートリアルとしてでも読んで頂ければ……といったところである。
なお、KH Coderでよく用いられるのは共起ネットワークと対応分析とのことで、それ以外はおまけパートと思って頂いて構わない。操作に習熟するにはコーディングルールの記述に慣れるのが第一である。
◆ファイル
各ファイルをダウンロードしてKH Coderに読み込ませれば同様の分析が再現可能である。
ダウンロード - ca_pb_031_ryugunyobo.xlsx
ダウンロード - ca_pb_031_codingrules.txt
ダウンロード - kh_coder_startingedition_sagyotejunsho.txt (※作業手順書)
※「H5」とはHTMLでいうところのヘッダー(見出し)・レベル5で本文に相当すると考えればよい。
※[コーディング単位]は「文/段落/H5」から選べるが、状況に応じて適切と思われるものを選択する必要がある。処理が上手くいかないと感じた場合、コーディング単位を切り替えると上手く処理されるケースがままある。
※公式マニュアルでは「集計単位」という用語が使われている。共起関係について、
・「文」では一文単位での分析
・「段落」では段落単位の分析
・「H5」では表計算ソフトのセル単位とされ、改行を含めた一セルの中身全体が分析単位となる
※レファレンスでも索引で「コーディング単位」の項目は設けられていない。操作性に関わる重要項目であるものの、その仕様について不明瞭な感はある。
※当ブログの場合、表計算ソフトのフォーマットで読み込ませているからH5固定でいいだろうと思い込んでいたら、さにあらずだった。
◆あらすじ
・「竜宮女房」(未来社『石見の民話』)
孝行息子と母親が二人で暮らしていた。毎日薪をとって町に売りに行って、それで母親を養っていた。大晦日の日、息子は薪を町に売りに行ったが、誰も買う者はいなかった。日も暮れたので、この薪は竜宮にあげようと橋の上から川へ投げた。それから家へ帰ったところ、美しい女の人が来て今夜泊めてくれと頼んだ。何も食べるものがないと断ったが、きかないのでとうとう泊めてやって嫁にした。女は金を出したので三人でよい年をとった。それから何日か経って男は畑に行ったが、嫁が見たくてたまらないので、家へ帰って話すと、嫁は自分の姿を絵に描いてやった。男はその絵姿を木にかけて、それを見ながら畑仕事をしていた。その内に酷い風が吹いてきて、その絵をどこかへ持っていってしまった。男は悲しんで嫁にそのことを話した。その内に殿さまから何月何日出てこいと手紙が来た。何か悪いことをしたのかと心配して出ていくと、こんな女房を持っているかと問われた。それを見ると、嫁の絵姿だったので持っていると答えると、女房を連れてこいと言われた。連れてこられないと断ると、それなら殿さまの言うことを叶えよと難題を言われた。「けむくぞうに、これわいさに、打たん太鼓に鳴る太鼓、音なし笛のじんばらほ」を持ってこいと。心配して嫁に話すと、それはたやすいこと。私が整えてあげると言われた。明くる日、嫁はそれぞれ桐の箱に入れてこれを持っていけ。自分はこれまで隠していたが竜宮の乙姫だ。今日から別れると言った。男は悲しんだ。仕方ないので仰せの通りの物を殿さまのところへ持っていった。殿さまが箱を開けると毛虫やら二丈ある男やら蜂が出てきて殿さまを苦しめた。殿さまは痛くてたまらないので早くしまえと仰せになり、よくその品物を持ってきたと褒美をくださったので、一生安楽に暮らした。
・「竜宮のよめさん」(偕成社『島根県の民話』)
昔、若い男がいて畑で野菜を作っては町に売りに行っていた。町へ出る道には大きな川があって橋がかかっていた。男は橋を渡る度に竜宮さん、どうか野菜がよくできるようにいい天気にしてくださいと言って橋の上からナスやら大根やら川の中へ投げてあげた。そうしたら、本当に天気がよくなった。あるとき、男のところへ綺麗な娘がやって来て男の女房にして欲しいと言った。自分は貧乏で嫁など養えないと断ったが、大して養ってもらわなくてもいいから嫁にしてくれと言うので、そう言うなら嫁にしようと男は娘を嫁にした。ところが、この嫁があまりに綺麗なものだから、男はいつも顔を見ていないと気が済まなくなった。そこで畑へ行くときは紙に嫁の絵を描いてこれを見ながら仕事をしていた。そうしたら、ある日大風が吹いて絵に描いた嫁がぱあっと吹かれて逃げてしまった。どこへ行ったか分からなかったが、お城の殿さまのところへ飛んでいっていた。殿さまは嫁の絵を見てこんなに綺麗な女がいるとは知らなかった。自分の妃にするから探してこいと言って家来に探させたら、男の嫁だということが分かった。殿さまは早速男を呼びつけてお前の女房を妃にするからすぐに差し出せ。嫌なら「はいで あんだ なわ」を三束持ってこい」と命じた。それは難しいことだと困った男は家に戻って嫁に話した。嫁はそんなことは容易いことだ。縄を三束にがりに漬けてそれを干して焼けば固い灰の縄ができると答えた。嫁の言う通りにしたら、灰の縄が三束できた。男は早速殿さまのところへ持っていった。殿さまはいや、これではまだ許さない。今度は「たたかぬたいこの なるたいこ、ふえをふいてまう男」を出せ。女房を出すかどちらか選べと命じた。それは難しいと男がまた嫁に相談すると、そんなことは容易い。山に行って蜂の巣をとってきて、太鼓の中に入れて持っていったらいいと答えた。不思議なことを言うものだと思ったが、嫁に言われた通りにして殿さまのところへ持っていった。殿さまが太鼓を手にとると、蜂が外に出たがって太鼓の皮にぶつかってはポンポコ、ポンポコ鳴りだした。感心した殿さまは中を見たくなって太鼓の皮を剥いだ。そうしたら蜂がいっぱい飛び出してきて殿さまの顔やら尻やらを刺した。こいつはたまらない。殿さまは蜂を追い払うつもりで口笛を吹き吹き、手足をばたばたした。「ふえをふいてまう男」とはこのことだった。殿さまは痛いやら悔しいやらで、こいつは何でもする奴だ。今度は「大もっけ、小もっけ」という者がいるから連れてこいと言った。それはどんなものかと問うと、どんなものでもいい。女房を出すか大もっけ、小もっけを連れてくるか選べと命じられたので、これは難しいことだと男はまた嫁に相談した。そんなことは容易いことだ。だけど、大もっけ、小もっけを連れていったらお城が潰れるがそれでもいいかと嫁が答えたので、男が殿さまに訊くと、それでもいい。連れてきたらいいと言った。男が嫁に言ったら、嫁は今まで隠していたが実は自分は竜宮の乙姫だ。男が毎日野菜をくれたので男の嫁になったと言ったので男はびっくりしてしまった。嫁はじきにどこかへ出かけたが、やがて天をつくような大きな大きな男を二人連れて戻ってきた。この者たちは竜宮に仕えている大もっけ、小もっけだ。今度は私が城へ連れていこうと嫁は大もっけ、小もっけを引き連れてお城へ出かけた。ところが、大もっけがお城の石垣に足をかけたら石垣がガラガラっと壊れてしまった。小もっけがくしゃみをしたら、お城の天守閣が吹き飛んでしまった。殿さまはもうびっくりして自分が悪かった。許してくれと謝った。それからは男と嫁は二人仲良く暮らした。
・「絵姿女房」(みずうみ書房『日本伝説大系』十一巻)
下意東字五輪の墓地で意東川の東方、旧国道の側にある。大江の美人塚と言われている。その夫は上意東古畑の人で、常に愛妻の姿を描き、これを持って外出していたが、田んぼで仕事の折に竹竿の頭に挿して牛が耕す行き返りにこれを眺めて悦に入っていた。ところがたまたま大旋風が吹いて、その画像が遠く京都の内裏の中に落ちた。内裏ではその絵を見て絶世の美人なのに驚き、諸国に命じてあまねく探索し、美人を徴発して内裏の中に置いた。夫は悶々として耐えかね、端午の節句に限り菖蒲売りが内裏に出入りを許されると聞き、大江の菖蒲を切りとってはるばる京都に上がったけれども時期を逃し五月六日になって到着し、内裏の周囲を「菖蒲々々」と売り歩いた。六日の菖蒲はさても珍しいとて、美人が窓の障子を細目に開いてみると夢にも忘れぬ夫であったので大いに喜び、窓の下に招いてその夜内裏から逃れ出て昼は野山に隠れ、夜は道なき道を歩んでようやく美人塚前に辿りついた。そして遥かに山奥の我が家の辺りより立ち上る煙を見て喜びのあまり俄かに気が緩んで死んでしまった。夫は悲痛のあまり号泣してねんごろにこの地に葬ったという。今なお夫の出身地古畑では五月六日に菖蒲を飾り、また大江には美人の屋敷跡があって陶器の破片が出るし、美人が朝夕に沐浴したと伝えられる稚児が池もまた現存している。
◆コーディングルール
※コーディングルールのキーワードは重要と判断したものを人力でピックアップしている。そのため、恣意性を伴う分析となる。
※活用形でなく基本形で入力する。
※[前処理]→[語の抽出結果を確認]でキーワードがどのように分節されているか検索すると結果の一覧[語の抽出結果]が表示される。
※[Result]から確認したい行をクリックして選択、画面下の[詳細表示]ボタンをクリックするとサブ画面が表示され、活用形や基本形が確認できる。
※昔話では「否定/肯定」「肯定/否定」と属性が変化することが多いと考え、否定詞「ない」「まい」「ぬ」「ん」、また禁止を意味する「な」を共通のコードとして設定している。
※[関連語検索]で否定詞の共起語の一覧を表示させたところ、日本の昔話のように掌編レベルのボリュームだと、物語の動因となる箇所に関する語句が上位に表示される傾向が強いのではないか……といった印象があり、検証作業中である。
※無償版では強制抽出語の指定が機能制限で事実上使用できないため以下のような手法をとっている。
*嫁
嫁 or 女房 or 愛妻
*絵姿
( 姿 and 絵 ) or 絵 or '絵姿'
*大男
男 and 二丈
*野菜
野菜 or ナス or 大根
*灰
灰 or 'はい'
*縄
縄 or 'なわ'
*太鼓
太鼓 or 'たいこ'
*笛
笛 or 'ふえ'
*もっけ
'大もっけ' or '小もっけ' or ( 天 and 大きな and 男 )
*美人塚
'美人塚'
*風
旋風 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 | 断る | 動詞 | 3 (0.036) | 3 (0.273) | 0.2727 |
| 2 | 殿さま | 名詞 | 18 (0.217) | 5 (0.455) | 0.2083 |
| 3 | 綺麗 | 形容動詞 | 3 (0.036) | 2 (0.182) | 0.1667 |
| 4 | 嫁 | 名詞C | 24 (0.289) | 4 (0.364) | 0.129 |
| 5 | 見る | 動詞 | 9 (0.108) | 2 (0.182) | 0.1111 |
| 6 | 持つ | 動詞 | 12 (0.145) | 2 (0.182) | 0.0952 |
| 7 | 隠れる | 動詞 | 1 (0.012) | 1 (0.091) | 0.0909 |
| 8 | 音 | 名詞C | 1 (0.012) | 1 (0.091) | 0.0909 |
| 9 | 下 | 名詞C | 1 (0.012) | 1 (0.091) | 0.0909 |
| 10 | 開く | 動詞 | 1 (0.012) | 1 (0.091) | 0.0909 |
・「ぬ」の結果上位一覧
| N | 抽出語 | 品詞 | 全体 | 共起 | Jaccard |
| 1 | 隠れる | 動詞 | 1 (0.012) | 1 (0.500) | 0.5 |
| 2 | 下 | 名詞C | 1 (0.012) | 1 (0.500) | 0.5 |
| 3 | 開く | 動詞 | 1 (0.012) | 1 (0.500) | 0.5 |
| 4 | 喜ぶ | 動詞 | 1 (0.012) | 1 (0.500) | 0.5 |
| 5 | 細目 | 名詞 | 1 (0.012) | 1 (0.500) | 0.5 |
| 6 | 招く | 動詞 | 1 (0.012) | 1 (0.500) | 0.5 |
| 7 | 障子 | 名詞 | 1 (0.012) | 1 (0.500) | 0.5 |
| 8 | 前 | 副詞可能 | 1 (0.012) | 1 (0.500) | 0.5 |
| 9 | 窓 | 名詞C | 1 (0.012) | 1 (0.500) | 0.5 |
| 10 | 大いに | 副詞 | 1 (0.012) | 1 (0.500) | 0.5 |
※「ぬ」はみずうみ書房版との関連が強いようだ。
薪や野菜を贈与した結果、竜宮から嫁がやって来るも……といった粗筋となっている。
短いお話の中で属性の転倒を多用するのが昔話の特徴の一つと考えられる。
ここで「/」(スラッシュ)を「転倒」を意味する記号として用いる。スラッシュは様々な場面で用いられていて文脈依存的な記号という欠点もあるが、視覚的にはイメージしやすいと判断した。
・[息子|贈与:薪/嫁]
・[嫁|絵姿:不知/知]
・[殿さま|謎かけ:箱/罰]
・[美人|逃亡:安堵/死]
こういった風にお話を転がしていると分析できる。嫁は絵姿が風で飛ばされることで他者にその存在を察知されてしまう結果となる。みずうみ書房版では美人は内裏からの逃亡に成功するものの、故郷をみて「生/死」と転倒してしまう。
◆類似度行列
・[コーディング単位]を[文]に変更して[集計]。Jaccard係数がマトリクス形式で確認できる。
・ある列を選択して画面右下の[コピー(選択列)]をクリックすると、当該のキーワードに関するJaccard係数がコピーされるので、それを表計算ソフトにペーストするといった利用が可能となる。
※当ブログでは[コーディング単位]が[段落][H5]の場合、Jacccard係数が1.0~0.5といった結果がほとんどで、意味のない結果となった。
◆多次元尺度構成法
・[コーディング単位]を[文]に変更して実行。
・共起関係を確認したいキーワードを指定。
・次元を「2」から「3」に変更して実行、三次元のマップとした。
絵姿が他者の手に渡るくだりに関連したキーワードを指定したところ、「難題」が離れた位置にプロットされた。
※選択するキーワードによって相対的な位置関係は変わり得る。
※実行すると指定したキーワードの幾つかが除外されるとメッセージが表示される。テキストのボリューム不足のためか無償版の仕様によるものか判断がつかない。
※当ブログの事例では「文」以外、「段落」と「H5」では除外されるキーワードが増える傾向となった。
◆自己組織化マップ
[コーディング単位]を[文]に変更して実行。
記述内容が視覚的に整理され、類似性の高い内容が近くに配置される。概ねストーリーに沿った形で各クラスターが表示される。
※当ブログの事例では「文」以外、「段落」と「H5」ではエラーが返される結果となった。
※クラスター化の計算を繰り返すため処理に時間がかかるので要注意。
※クラスターの配置、距離に意味はない。
◆トピックの推定
・[ツール]→[文書]→[トピックモデル]→[トピックの推定]を選択。
・[集計単位]を[文]に変更。
・[OK]ボタンをクリックすると、[トピックの推定結果]画面が表示される。
・各トピックで高い確率で出現する語句がリストアップされる。
・[#1]といった欄をクリックすると、文書検索画面が表示される。
◆ベイズ学習による分類
・[ツール]→[文書]→[ベイズ学習による分類]→[外部変数から学習]を選択。
・[分類の単位]を[文]に変更。
・[学習する外部変数]は[書名]に変更する。
※「タイトル」のままでもよし。
・[OK]ボタンをクリックすると、ファイルの保存画面が表示されるので、任意のファイル名を記述して保存する。
・[ツール]→[文書]→[ベイズ学習による分類]→[学習結果ファイルの内容を確認]を選択。ファイル選択画面が開くので、先ほど保存したファイルを指定して開く。すると[学習結果ファイル]画面が開くので内容の確認を行う。
※[学習結果を用いた自動分類]については割愛する。
※[トピックの推定]と[ベイズ学習による分類]は固有名詞などを強制抽出語としてあらかじめ指定しておかないと正確に分析されないケースが生じる。正式に利用したい際は有償版の購入をお勧めする。当ブログのはあくまでテストケースとしてのものである。
※[トピックの推定]と[ベイズ学習による分類]はコーディング・ルールに依らない分析手法となるが、筆者の能力的に追及はしない。
◆参考文献
・『日本の民話 34 石見篇』(大庭良美/編, 未来社, 1978)pp.140-143.
・『島根県の民話 やまたのおろちほか』(日本児童文学者協会/編, 偕成社, 2000)pp.73-80.
・『日本伝説大系 第11巻 山陰(鳥取・島根)』(野村純一他, みずうみ書房, 1984)pp.298-299.
・『動かして学ぶ!はじめてのテキストマイニング』(樋口耕一, ナカニシヤ出版, 2022)
・『社会調査のための計量テキスト分析 【第2版】 内容分析の継承と発展を目指して』(樋口耕一, ナカニシヤ出版, 2020)
| 固定リンク
鳥取市にミニシアター開館 名作上映、「交流の場に」 制服店だった建物改修
https://www.sanin-chuo.co.jp/articles/-/980254
鳥取市内にミニシアターがオープンしたという記事。客席20席、スクリーンは135インチと小規模。クラウドファンディングで開業資金を調達したとのことだが、これくらいの規模なら持続的にやっていけるという算段なのだろう。
新宿や渋谷のミニシアターには行ったことがある。新宿のは鳥取のと同じような規模だった。渋谷の方は割と大きく200人くらいは収容可能だった。カフェ&レストランが併設されていて、そちらが経営の柱だったのかもしれない。ただ、周辺に某カルト教団の施設があったため警戒心を抱いたが。
| 固定リンク
◆はじめに
以下はKH Coder(無償版:version 3.Beta.08e)を用いた昔話の計量テキスト分析である。昔話の類話の比較にツールを利用できないか試行してみた。
手持ちの資料が限られるため、分析の対象となる元データの文字数が少ないものの(※本来であれば5000字以上は欲しい)、分析自体は正常に処理されていると判断した。
KH Coderの操作に慣れる目的も兼ねて行った作業で、コーディングルールの記述の事例集、あるいは速習用のチュートリアルとしてでも読んで頂ければ……といったところである。
なお、KH Coderでよく用いられるのは共起ネットワークと対応分析とのことで、それ以外はおまけパートと思って頂いて構わない。操作に習熟するにはコーディングルールの記述に慣れるのが第一である。
◆ファイル
各ファイルをダウンロードしてKH Coderに読み込ませれば同様の分析が再現可能である。
ダウンロード - ca_pb_030_ubasuteyama.xlsx
ダウンロード - ca_pb_030_codingrules.txt
ダウンロード - kh_coder_startingedition_sagyotejunsho.txt (※作業手順書)
※「H5」とはHTMLでいうところのヘッダー(見出し)・レベル5で本文に相当すると考えればよい。
※[コーディング単位]は「文/段落/H5」から選べるが、状況に応じて適切と思われるものを選択する必要がある。処理が上手くいかないと感じた場合、コーディング単位を切り替えると上手く処理されるケースがままある。
※公式マニュアルでは「集計単位」という用語が使われている。共起関係について、
・「文」では一文単位での分析
・「段落」では段落単位の分析
・「H5」では表計算ソフトのセル単位とされ、改行を含めた一セルの中身全体が分析単位となる
※レファレンスでも索引で「コーディング単位」の項目は設けられていない。操作性に関わる重要項目であるものの、その仕様について不明瞭な感はある。
※当ブログの場合、表計算ソフトのフォーマットで読み込ませているからH5固定でいいだろうと思い込んでいたら、さにあらずだった。
◆あらすじ
・「子より孫はかわいい」(未来社『石見の民話』)
昔は年がよっても死ぬことがなかった。それで、年がよると山へ捨てることにしていた。あるとき親が年をとったので山へ捨てようと思って息子と孫と二人で担いでいった。そしていよいよ山へ連れていって帰る時、息子は担いできた天秤棒をそこにおいたまま帰りかけた。すると孫がこれは持って帰ろうと言った。息子はこれはいらないから持って帰らなくてもいいと言った。すると孫は、それでも今度はお前を担いでくるのに要るから持って帰ろうと言った。息子はそれを聞いて、やがて自分もこうして捨てられるのだと思うと、そのまま帰ることができなくなった。そこで捨てた親をまた担いで帰って、床の下に隠して養った。それで子より孫は可愛いと言うのだそうだ。
・「往生の滝」(ハーベスト出版『夕陽を招く長者』)
昔、村には親が六十歳になると、息子が親を背負って往生の滝がある山へ捨てなければならないというむごい掟があった。上小川の奥の弥僧ヶ浴を登りつめると、杉木立の谷間の右前方に村人が往生の滝と呼ぶ滝が見えてくる。じん助は大きな背負い籠に母親を入れ、担いで滝の真ん中に差しかかった。難儀なことと重い足取りのじん助だった。やがて一人で帰っていく息子を案じ、背負い籠の母親は道に迷わないよう目印として枝を折りながら来ていた。それに気づいたじん助は幾ら村の掟といっても何で母親を捨てられようかと考えあぐね、くるりと向きを変え、もと来た弥僧ヶ浴を引き返し、遂に家に帰りついた。それから密かに母親を匿った。それから村ではもめごとや難儀なことが色々とあったが、その度に母親の体験や知恵で解決することができた。そのことが村人に発覚してから、村人は年寄りを大事にするようになった。そして、とうとうむごい掟は廃止され、いつしかこの滝を往生の滝と呼ぶようになった。田畑の少ない百姓は米の飯を食べるのは盆と正月、あとは粟・稗・黍を食べていた。家族が増えると皆が食べるのは難しくなるので年寄りを捨てる風習があった。今は往生の滝の面影はないが、じん助の話を語るように谷間の麓には今でもチロチロと清水が湧き出ている。
◆コーディングルール
※コーディングルールのキーワードは重要と判断したものを人力でピックアップしている。そのため、恣意性を伴う分析となる。
※活用形でなく基本形で入力する。
※[前処理]→[語の抽出結果を確認]でキーワードがどのように分節されているか検索すると結果の一覧[語の抽出結果]が表示される。
※[Result]から確認したい行をクリックして選択、画面下の[詳細表示]ボタンをクリックするとサブ画面が表示され、活用形や基本形が確認できる。
※昔話では「否定/肯定」「肯定/否定」と属性が変化することが多いと考え、否定詞「ない」「まい」「ぬ」「ん」、また禁止を意味する「な」を共通のコードとして設定している。
※[関連語検索]で否定詞の共起語の一覧を表示させたところ、日本の昔話のように掌編レベルのボリュームだと、物語の動因となる箇所に関する語句が上位に表示される傾向が強いのではないか……といった印象があり、検証作業中である。
※無償版では強制抽出語の指定が機能制限で事実上使用できないため以下のような手法をとっている。
*年寄り
年寄り or ( 年 and よる ) or ( 年 and とる )
*息子
息子 or お前 or 自分 or 子
*天秤棒
天秤棒 or これ
*床下
床 and 下
*匿う
匿う or ( 隠す and 養う )
*六十歳
'六十歳'
*掟
掟 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 | 息子 | 名詞 | 6 (0.261) | 4 (0.667) | 0.5 |
| 2 | 昔 | 副詞可能 | 2 (0.087) | 2 (0.333) | 0.3333 |
| 3 | 背負う | 動詞 | 3 (0.130) | 2 (0.333) | 0.2857 |
| 4 | 帰る | 動詞 | 8 (0.348) | 3 (0.500) | 0.2727 |
| 5 | 往生 | サ変名詞 | 4 (0.174) | 2 (0.333) | 0.25 |
| 6 | 滝 | 名詞C | 5 (0.217) | 2 (0.333) | 0.2222 |
| 7 | 捨てる | 動詞 | 7 (0.304) | 2 (0.333) | 0.1818 |
| 8 | チロチロ | 未知語 | 1 (0.043) | 1 (0.167) | 0.1667 |
| 9 | 案じる | 動詞 | 1 (0.043) | 1 (0.167) | 0.1667 |
| 10 | 語る | 動詞 | 1 (0.043) | 1 (0.167) | 0.1667 |
天秤棒の要/不要を巡るやりとりで息子は因習がいずれ自身にも降りかかると自覚する……といった粗筋となっている。
短いお話の中で属性の転倒を多用するのが昔話の特徴の一つと考えられる。
ここで「/」(スラッシュ)を「転倒」を意味する記号として用いる。スラッシュは様々な場面で用いられていて文脈依存的な記号という欠点もあるが、視覚的にはイメージしやすいと判断した。
・[息子|自身:要/不要]
・[親|子:捨てる/匿う]
こういった風にお話を転がしていると分析できる。天秤棒や折った枝によって己の置かれた状況を転倒させている。
◆類似度行列
・[コーディング単位]を[文]に変更して[集計]。Jaccard係数がマトリクス形式で確認できる。
・ある列を選択して画面右下の[コピー(選択列)]をクリックすると、当該のキーワードに関するJaccard係数がコピーされるので、それを表計算ソフトにペーストするといった利用が可能となる。
※当ブログでは[コーディング単位]が[段落][H5]の場合、Jacccard係数が1.0~0.5といった結果がほとんどで、意味のない結果となった。
◆多次元尺度構成法
・[コーディング単位]を[文]に変更して実行。
・共起関係を確認したいキーワードを指定。
・次元を「2」から「3」に変更して実行、三次元のマップとした。
姥捨て山の掟に関連したキーワードを指定したところ、「母親」が離れた位置にプロットされた。
※選択するキーワードによって相対的な位置関係は変わり得る。
※実行すると指定したキーワードの幾つかが除外されるとメッセージが表示される。テキストのボリューム不足のためか無償版の仕様によるものか判断がつかない。
※当ブログの事例では「文」以外、「段落」と「H5」では除外されるキーワードが増える傾向となった。
◆自己組織化マップ
[コーディング単位]を[文]に変更して実行。
記述内容が視覚的に整理され、類似性の高い内容が近くに配置される。概ねストーリーに沿った形で各クラスターが表示される。
※当ブログの事例では「文」以外、「段落」と「H5」ではエラーが返される結果となった。
※クラスター化の計算を繰り返すため処理に時間がかかるので要注意。
※クラスターの配置、距離に意味はない。
◆トピックの推定
・[ツール]→[文書]→[トピックモデル]→[トピックの推定]を選択。
・[集計単位]を[文]に変更。
・[OK]ボタンをクリックすると、[トピックの推定結果]画面が表示される。
・各トピックで高い確率で出現する語句がリストアップされる。
・[#1]といった欄をクリックすると、文書検索画面が表示される。
◆ベイズ学習による分類
・[ツール]→[文書]→[ベイズ学習による分類]→[外部変数から学習]を選択。
・[分類の単位]を[文]に変更。
・[学習する外部変数]は[書名]に変更する。
※「タイトル」のままでもよし。
・[OK]ボタンをクリックすると、ファイルの保存画面が表示されるので、任意のファイル名を記述して保存する。
・[ツール]→[文書]→[ベイズ学習による分類]→[学習結果ファイルの内容を確認]を選択。ファイル選択画面が開くので、先ほど保存したファイルを指定して開く。すると[学習結果ファイル]画面が開くので内容の確認を行う。
※[学習結果を用いた自動分類]については割愛する。
※[トピックの推定]と[ベイズ学習による分類]は固有名詞などを強制抽出語としてあらかじめ指定しておかないと正確に分析されないケースが生じる。正式に利用したい際は有償版の購入をお勧めする。当ブログのはあくまでテストケースとしてのものである。
※[トピックの推定]と[ベイズ学習による分類]はコーディング・ルールに依らない分析手法となるが、筆者の能力的に追及はしない。
◆参考文献
・『日本の民話 34 石見篇』(大庭良美/編, 未来社, 1978)p.407.
・「夕陽を招く長者 山陰民話語り部シリーズ1」(民話の会「石見」/編, ハーベスト出版, 2013)pp.175-176.
・『動かして学ぶ!はじめてのテキストマイニング』(樋口耕一, ナカニシヤ出版, 2022)
・『社会調査のための計量テキスト分析 【第2版】 内容分析の継承と発展を目指して』(樋口耕一, ナカニシヤ出版, 2020)
| 固定リンク
◆はじめに
以下はKH Coder(無償版:version 3.Beta.08e)を用いた昔話の計量テキスト分析である。昔話の類話の比較にツールを利用できないか試行してみた。
手持ちの資料が限られるため、分析の対象となる元データの文字数が少ないものの(※本来であれば5000字以上は欲しい)、分析自体は正常に処理されていると判断した。
KH Coderの操作に慣れる目的も兼ねて行った作業で、コーディングルールの記述の事例集、あるいは速習用のチュートリアルとしてでも読んで頂ければ……といったところである。
なお、KH Coderでよく用いられるのは共起ネットワークと対応分析とのことで、それ以外はおまけパートと思って頂いて構わない。操作に習熟するにはコーディングルールの記述に慣れるのが第一である。
◆ファイル
各ファイルをダウンロードしてKH Coderに読み込ませれば同様の分析が再現可能である。
ダウンロード - ca_pb_029_sarasarayama.xlsx
ダウンロード - ca_pb_029_codingrules.txt
ダウンロード - kh_coder_startingedition_sagyotejunsho.txt (※作業手順書)
※「H5」とはHTMLでいうところのヘッダー(見出し)・レベル5で本文に相当すると考えればよい。
※[コーディング単位]は「文/段落/H5」から選べるが、状況に応じて適切と思われるものを選択する必要がある。処理が上手くいかないと感じた場合、コーディング単位を切り替えると上手く処理されるケースがままある。
※公式マニュアルでは「集計単位」という用語が使われている。共起関係について、
・「文」では一文単位での分析
・「段落」では段落単位の分析
・「H5」では表計算ソフトのセル単位とされ、改行を含めた一セルの中身全体が分析単位となる
※レファレンスでも索引で「コーディング単位」の項目は設けられていない。操作性に関わる重要項目であるものの、その仕様について不明瞭な感はある。
※当ブログの場合、表計算ソフトのフォーマットで読み込ませているからH5固定でいいだろうと思い込んでいたら、さにあらずだった。
◆あらすじ
・「皿皿山」(未来社『石見の民話』)
昔、姉妹がいた。姉は継子で妹は自分の子だった。ある日姉が磯端で青菜を洗っていた。そこへ伯耆の殿さまがお国巡りをして「磯端で青菜を洗う小女子や 打ちくる波の数を知りたまえ」と歌を詠んだ。娘は黙っていた。どこの国の殿さまかは知らないが、きっと帰りがけにここをお通りになるに違いない。その時に仇を打ってあげようと思って待っていた。しばらくして殿さまがお帰りになったので「いかなる国の大名かは知らねども 歩く駒の足の数を知りたまえ」と詠んだ。殿さまは次の宿でお休みになって磯端で青菜を洗っていた娘を呼んでこいと言った。家来が呼びに行くと継母は自分の子がやりたくなって、妹に立派な着物を着せて出した。妹は姉には差し支えがあるので自分が代わって参ったと述べた。殿さまは皿の中に塩を盛って塩の中に松を植えて出した。これを歌に詠めと言った。妹は「皿の中に塩を盛り 塩の中に松を植え」と詠んだ。殿さまは妹ではつまらない。姉と代われと言って追い返した。継母は悔しがったが仕方ない、姉はぼろ着を着せられて殿さまのところに言った。姉は妹を使わしたことを詫びた。殿さまは同じ題を出した。姉は「ぼん盆や、さらさらという山に雪降りて 雪を根にして育つ松かな」と詠んだ。殿さまは感心して、偉い娘だ。連れて帰って部屋住まいをさせると言って風呂をたてて入らせ、立派な衣装を着せた。継母は悔しくてそこにあった鍬や箒を投げた。姉はそこで「親とても 重ね重ねのはなむけに 箒の殿の知行取り」と詠んだ。
・「歌よみこぞう」(日本標準『島根のむかし話』)
昔々、殿さまが有馬の国の湯に行った。すると、ぼろぼろの着物を着た小僧が後からついてきた。どんどん歩いていくと、大きな杉の木が生えている森に来た。殿さまはこれは大きな杉の木だ。だが、不思議なことに三つの鳥が巣をかけている。一番下は鶴。その上は鷺。一番上は鷹だ。珍しいことだと言って見とれていた。歌の好きな殿さまは誰かこの杉を歌にしてみよと言ったが、誰も歌が作れなかった。ところが、そのぼろぼろの着物を着た小僧が私が詠んでみましょうと言って「元ヅルに 中白サギに 上ダカに 祝いこめたる杉の森かな」と詠んだ。これはいい歌だということで、ご褒美にむすびを分けてやった。それから殿さまはまた歩いていくと、今度は大きな大きな岩のある所にやって来た。そこに蜂が丸い巣をかけていた。誰かこの蜂の巣で歌を詠んでみよと言ったが、誰もできなかった。するとあの小僧が私が詠んでみましょうと言って「外は見る 内はまだ見ぬ極楽の 弥陀の浄土は ハチスなるらん」と「蜂の巣」と「蓮の花」をかけて詠んだ。殿さまは気に入ったから、そちの着物は汚れている。これを着よと着物を渡した。小僧は体を拭いてその着物を着てまた後をついていった。ずっと歩いていくと、梨の木が一杯あって花盛りだった。誰かこの花で歌を詠めと殿さまが言ったので、どの家来も小僧に負けまいと一生懸命に考えたが詠めなかった。そうしたら、またあの小僧が私が詠んでみましょうと言って「我が殿は 有馬の国の湯にござる 病はナシの花となるらん」と詠んだので殿さまはますます気に入って、とうとう有馬の国へ連れていって湯に入らせ、綺麗に洗って刀を与えた。そして、とうとう殿さまの家来にしてもらった。
◆コーディングルール
※コーディングルールのキーワードは重要と判断したものを人力でピックアップしている。そのため、恣意性を伴う分析となる。
※活用形でなく基本形で入力する。
※[前処理]→[語の抽出結果を確認]でキーワードがどのように分節されているか検索すると結果の一覧[語の抽出結果]が表示される。
※[Result]から確認したい行をクリックして選択、画面下の[詳細表示]ボタンをクリックするとサブ画面が表示され、活用形や基本形が確認できる。
※昔話では「否定/肯定」「肯定/否定」と属性が変化することが多いと考え、否定詞「ない」「まい」「ぬ」「ん」、また禁止を意味する「な」を共通のコードとして設定している。
※[関連語検索]で否定詞の共起語の一覧を表示させたところ、日本の昔話のように掌編レベルのボリュームだと、物語の動因となる箇所に関する語句が上位に表示される傾向が強いのではないか……といった印象があり、検証作業中である。
※無償版では強制抽出語の指定が機能制限で事実上使用できないため以下のような手法をとっている。
*殿さま
殿さま or 大名 or 殿
*娘
娘 or '小女子'
*継母
継母 or 自分 or 親
*着物
着物 or 衣装
*ぼろ着
'ぼろ着' or ( ぼろぼろ and 着物 )
*部屋住まい
'部屋住まい'
*鶴
鶴 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 | 6 (0.128) | 3 (0.600) | 0.375 |
| 2 | 言う | 動詞 | 12 (0.255) | 4 (0.800) | 0.3077 |
| 3 | 殿さま | 名詞 | 17 (0.362) | 4 (0.800) | 0.2222 |
| 4 | みよ | 人名 | 1 (0.021) | 1 (0.200) | 0.2 |
| 5 | 違い | ナイ形容 | 1 (0.021) | 1 (0.200) | 0.2 |
| 6 | 一生懸命 | 副詞可能 | 1 (0.021) | 1 (0.200) | 0.2 |
| 7 | 詠める | 動詞 | 1 (0.021) | 1 (0.200) | 0.2 |
| 8 | 帰りがけ | 副詞可能 | 1 (0.021) | 1 (0.200) | 0.2 |
| 9 | 好き | 形容動詞 | 1 (0.021) | 1 (0.200) | 0.2 |
| 10 | 考える | 動詞 | 1 (0.021) | 1 (0.200) | 0.2 |
歌の才覚によって殿さまの目に留まり取り立てられる……といった粗筋となっている。
短いお話の中で属性の転倒を多用するのが昔話の特徴の一つと考えられる。
ここで「/」(スラッシュ)を「転倒」を意味する記号として用いる。スラッシュは様々な場面で用いられていて文脈依存的な記号という欠点もあるが、視覚的にはイメージしやすいと判断した。
・[姉|歌:継子/部屋住み]
・[小僧|歌:孤独/家来]
・[継母|妹:派遣/返される]
こういった風にお話を転がしていると分析できる。歌の才覚によって己の置かれた状況を転倒させている。
◆類似度行列
・[コーディング単位]を[文]に変更して[集計]。Jaccard係数がマトリクス形式で確認できる。
・ある列を選択して画面右下の[コピー(選択列)]をクリックすると、当該のキーワードに関するJaccard係数がコピーされるので、それを表計算ソフトにペーストするといった利用が可能となる。
※当ブログでは[コーディング単位]が[段落][H5]の場合、Jacccard係数が1.0~0.5といった結果がほとんどで、意味のない結果となった。
◆多次元尺度構成法
・[コーディング単位]を[文]に変更して実行。
・共起関係を確認したいキーワードを指定。
・次元を「2」から「3」に変更して実行、三次元のマップとした。
継母が姉の代わりに妹を殿さまの許にやるくだりに関連したキーワードを指定したところ、「殿さま」が離れた位置にプロットされた。
※選択するキーワードによって相対的な位置関係は変わり得る。
※実行すると指定したキーワードの幾つかが除外されるとメッセージが表示される。テキストのボリューム不足のためか無償版の仕様によるものか判断がつかない。
※当ブログの事例では「文」以外、「段落」と「H5」では除外されるキーワードが増える傾向となった。
◆自己組織化マップ
[コーディング単位]を[文]に変更して実行。
記述内容が視覚的に整理され、類似性の高い内容が近くに配置される。概ねストーリーに沿った形で各クラスターが表示される。
※当ブログの事例では「文」以外、「段落」と「H5」ではエラーが返される結果となった。
※クラスター化の計算を繰り返すため処理に時間がかかるので要注意。
※クラスターの配置、距離に意味はない。
◆トピックの推定
・[ツール]→[文書]→[トピックモデル]→[トピックの推定]を選択。
・[集計単位]を[文]に変更。
・[OK]ボタンをクリックすると、[トピックの推定結果]画面が表示される。
・各トピックで高い確率で出現する語句がリストアップされる。
・[#1]といった欄をクリックすると、文書検索画面が表示される。
◆ベイズ学習による分類
・[ツール]→[文書]→[ベイズ学習による分類]→[外部変数から学習]を選択。
・[分類の単位]を[文]に変更。
・[学習する外部変数]は[書名]に変更する。
※「タイトル」のままでもよし。
・[OK]ボタンをクリックすると、ファイルの保存画面が表示されるので、任意のファイル名を記述して保存する。
・[ツール]→[文書]→[ベイズ学習による分類]→[学習結果ファイルの内容を確認]を選択。ファイル選択画面が開くので、先ほど保存したファイルを指定して開く。すると[学習結果ファイル]画面が開くので内容の確認を行う。
※[学習結果を用いた自動分類]については割愛する。
※[トピックの推定]と[ベイズ学習による分類]は固有名詞などを強制抽出語としてあらかじめ指定しておかないと正確に分析されないケースが生じる。正式に利用したい際は有償版の購入をお勧めする。当ブログのはあくまでテストケースとしてのものである。
※[トピックの推定]と[ベイズ学習による分類]はコーディング・ルールに依らない分析手法となるが、筆者の能力的に追及はしない。
◆参考文献
・『日本の民話 34 石見篇』(大庭良美/編, 未来社, 1978)pp.180-182.
・『島根のむかし話』(島根県小・中学校国語教育研究会/編著, 日本標準, 1976)pp.208-211.
・『動かして学ぶ!はじめてのテキストマイニング』(樋口耕一, ナカニシヤ出版, 2022)
・『社会調査のための計量テキスト分析 【第2版】 内容分析の継承と発展を目指して』(樋口耕一, ナカニシヤ出版, 2020)
| 固定リンク
◆はじめに
以下は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コンコーダンスでキーワード指定すれば指定したキーワードがどのような文脈で用いられているか一覧で抽出される。
◆関連語検索
・[集計単位]を[文]に変更、[集計]する。
・[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)
| 固定リンク
◆はじめに
以下はKH Coder(無償版:version 3.Beta.08e)を用いた昔話の計量テキスト分析である。昔話の類話の比較にツールを利用できないか試行してみた。
手持ちの資料が限られるため、分析の対象となる元データの文字数が少ないものの(※本来であれば5000字以上は欲しい)、分析自体は正常に処理されていると判断した。
KH Coderの操作に慣れる目的も兼ねて行った作業で、コーディングルールの記述の事例集、あるいは速習用のチュートリアルとしてでも読んで頂ければ……といったところである。
なお、KH Coderでよく用いられるのは共起ネットワークと対応分析とのことで、それ以外はおまけパートと思って頂いて構わない。操作に習熟するにはコーディングルールの記述に慣れるのが第一である。
◆ファイル
各ファイルをダウンロードしてKH Coderに読み込ませれば同様の分析が再現可能である。
ダウンロード - ca_pb_027_sitakirisuzume.xlsx
ダウンロード - ca_pb_027_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コンコーダンスでキーワード指定すれば指定したキーワードがどのような文脈で用いられているか一覧で抽出される。
◆関連語検索
・[集計単位]を[文]に変更、[集計]する。
・[Search Entry:]の一覧からキーワードを選択してダブルクリックすると[Result]に指定したキーワードの品詞や共起関係が表示される。
※[Result:]から行指定してダブルクリックするとKWICコンコーダンスに遷移する。
※[Result:]の一覧から範囲指定して[コピー]したものを表計算ソフトやテキストファイルにペーストすることも可能である。
[#直接入力]を指定して「タラタラ」といったキーワードで検索すると関連語が一覧で表示される。
◆属性の転倒
・「ない」の結果上位一覧
| N | 抽出語 | 品詞 | 全体 | 共起 | Jaccard |
| 1 | 舌 | 名詞C | 17 (0.250) | 8 (0.421) | 0.2857 |
| 2 | 言う | 動詞 | 31 (0.456) | 10 (0.526) | 0.25 |
| 3 | 汁 | 名詞C | 4 (0.059) | 4 (0.211) | 0.2105 |
| 4 | 男 | 名詞C | 4 (0.059) | 4 (0.211) | 0.2105 |
| 5 | 婆さん | 名詞 | 23 (0.338) | 7 (0.368) | 0.2 |
| 6 | 洗う | 動詞 | 5 (0.074) | 4 (0.211) | 0.2 |
| 7 | 雀 | 名詞C | 24 (0.353) | 7 (0.368) | 0.1944 |
| 8 | 爺さん | 名詞 | 18 (0.265) | 6 (0.316) | 0.1935 |
| 9 | 切る | 動詞 | 7 (0.103) | 4 (0.211) | 0.1818 |
| 10 | 飲む | 動詞 | 8 (0.118) | 4 (0.211) | 0.1739 |
・「ぬ」の結果上位一覧
| N | 抽出語 | 品詞 | 全体 | 共起 | Jaccard |
| 1 | これこれ | 感動詞 | 1 (0.015) | 1 (1.000) | 1 |
| 2 | 見つけ出す | 動詞 | 1 (0.015) | 1 (1.000) | 1 |
| 3 | 取り上げる | 動詞 | 1 (0.015) | 1 (1.000) | 1 |
| 4 | 背負う | 動詞 | 1 (0.015) | 1 (1.000) | 1 |
| 5 | 重い | 形容詞 | 2 (0.029) | 1 (1.000) | 0.5 |
| 6 | ご馳走 | サ変名詞 | 3 (0.044) | 1 (1.000) | 0.3333 |
| 7 | 腹 | 名詞C | 3 (0.044) | 1 (1.000) | 0.3333 |
| 8 | 訪ねる | 動詞 | 4 (0.059) | 1 (1.000) | 0.25 |
| 9 | 食べる | 動詞 | 5 (0.074) | 1 (1.000) | 0.2 |
| 10 | 洗い | 名詞 | 5 (0.074) | 1 (1.000) | 0.2 |
雀の悪戯に怒った婆さんによって舌を切られてしまい、雀はいなくなってしまう。それを探しに爺さんは出かけるが……といった粗筋となっている。
短いお話の中で属性の転倒を多用するのが昔話の特徴の一つと考えられる。
ここで「/」(スラッシュ)を「転倒」を意味する記号として用いる。スラッシュは様々な場面で用いられていて文脈依存的な記号という欠点もあるが、視覚的にはイメージしやすいと判断した。
・[雀|舌:正常/切られた]
・[雀|家:在/不在]
・[爺さん|つづら:小さい/宝]
・[婆さん|つづら:大きい/ガラクタ]
こういった風にお話を転がしていると分析できる。婆さんは欲張って大きいつづらを選んだ結果「生/死」へと転倒してしまう。
◆類似度行列
・[コーディング単位]を[文]に変更して[集計]。Jaccard係数がマトリクス形式で確認できる。
・ある列を選択して画面右下の[コピー(選択列)]をクリックすると、当該のキーワードに関するJaccard係数がコピーされるので、それを表計算ソフトにペーストするといった利用が可能となる。
※当ブログでは[コーディング単位]が[段落][H5]の場合、Jacccard係数が1.0~0.5といった結果がほとんどで、意味のない結果となった。
◆多次元尺度構成法
・[コーディング単位]を[文]に変更して実行。
・共起関係を確認したいキーワードを指定。
・次元を「2」から「3」に変更して実行、三次元のマップとした。
爺さんが雀を探して歩く場面に関連したキーワードを指定したところ、「馬」が離れた位置にプロットされた。
※選択するキーワードによって相対的な位置関係は変わり得る。
※実行すると指定したキーワードの幾つかが除外されるとメッセージが表示される。テキストのボリューム不足のためか無償版の仕様によるものか判断がつかない。
※当ブログの事例では「文」以外、「段落」と「H5」では除外されるキーワードが増える傾向となった。
◆自己組織化マップ
[コーディング単位]を[文]に変更して実行。
記述内容が視覚的に整理され、類似性の高い内容が近くに配置される。概ねストーリーに沿った形で各クラスターが表示される。
※当ブログの事例では「文」以外、「段落」と「H5」ではエラーが返される結果となった。
※クラスター化の計算を繰り返すため処理に時間がかかるので要注意。
※クラスターの配置、距離に意味はない。
◆トピックの推定
・[ツール]→[文書]→[トピックモデル]→[トピックの推定]を選択。
・[集計単位]を[文]に変更。
・[OK]ボタンをクリックすると、[トピックの推定結果]画面が表示される。
・各トピックで高い確率で出現する語句がリストアップされる。
・[#1]といった欄をクリックすると、文書検索画面が表示される。
◆ベイズ学習による分類
・[ツール]→[文書]→[ベイズ学習による分類]→[外部変数から学習]を選択。
・[分類の単位]を[文]に変更。
・[学習する外部変数]は[書名]に変更する。
※「タイトル」のままでもよし。
・[OK]ボタンをクリックすると、ファイルの保存画面が表示されるので、任意のファイル名を記述して保存する。
・[ツール]→[文書]→[ベイズ学習による分類]→[学習結果ファイルの内容を確認]を選択。ファイル選択画面が開くので、先ほど保存したファイルを指定して開く。すると[学習結果ファイル]画面が開くので内容の確認を行う。
※[学習結果を用いた自動分類]については割愛する。
※[トピックの推定]と[ベイズ学習による分類]は固有名詞などを強制抽出語としてあらかじめ指定しておかないと正確に分析されないケースが生じる。正式に利用したい際は有償版の購入をお勧めする。当ブログのはあくまでテストケースとしてのものである。
※[トピックの推定]と[ベイズ学習による分類]はコーディング・ルールに依らない分析手法となるが、筆者の能力的に追及はしない。
◆参考文献
・『日本の民話 34 石見篇』(大庭良美/編, 未来社, 1978)pp.285-288.
・『島根のむかし話』(島根県小・中学校国語教育研究会/編著, 日本標準, 1976)pp.49-57.
・『動かして学ぶ!はじめてのテキストマイニング』(樋口耕一, ナカニシヤ出版, 2022)
・『社会調査のための計量テキスト分析 【第2版】 内容分析の継承と発展を目指して』(樋口耕一, ナカニシヤ出版, 2020)
| 固定リンク
◆はじめに
以下はKH Coder(無償版:version 3.Beta.08e)を用いた昔話の計量テキスト分析である。昔話の類話の比較にツールを利用できないか試行してみた。
手持ちの資料が限られるため、分析の対象となる元データの文字数が少ないものの(※本来であれば5000字以上は欲しい)、分析自体は正常に処理されていると判断した。
KH Coderの操作に慣れる目的も兼ねて行った作業で、コーディングルールの記述の事例集、あるいは速習用のチュートリアルとしてでも読んで頂ければ……といったところである。
なお、KH Coderでよく用いられるのは共起ネットワークと対応分析とのことで、それ以外はおまけパートと思って頂いて構わない。操作に習熟するにはコーディングルールの記述に慣れるのが第一である。
◆ファイル
各ファイルをダウンロードしてKH Coderに読み込ませれば同様の分析が再現可能である。
ダウンロード - ca_pb_026_sarumuko.xlsx
ダウンロード - ca_pb_026_codingrules.txt
ダウンロード - kh_coder_startingedition_sagyotejunsho.txt (※作業手順書)
※「H5」とはHTMLでいうところのヘッダー(見出し)・レベル5で本文に相当すると考えればよい。
※[コーディング単位]は「文/段落/H5」から選べるが、状況に応じて適切と思われるものを選択する必要がある。処理が上手くいかないと感じた場合、コーディング単位を切り替えると上手く処理されるケースがままある。
※公式マニュアルでは「集計単位」という用語が使われている。共起関係について、
・「文」では一文単位での分析
・「段落」では段落単位の分析
・「H5」では表計算ソフトのセル単位とされ、改行を含めた一セルの中身全体が分析単位となる
※レファレンスでも索引で「コーディング単位」の項目は設けられていない。操作性に関わる重要項目であるものの、その仕様について不明瞭な感はある。
※当ブログの場合、表計算ソフトのフォーマットで読み込ませているからH5固定でいいだろうと思い込んでいたら、さにあらずだった。
◆あらすじ
・「猿の嫁さん」(未来社『石見の民話』)
昔、あるところにお爺さんがいた。ある日山へ行って畑をうっていたが、何分年をとっているので骨が折れて仕方ない。少しうっては休み、少しうっては休みしていた。その内にとうとうくたびれ込んでしまって、ああ、何ともしんどくていけない。誰か来てうってくれないかと独り言を言った。すると、ほとりの山から猿が一匹出てきた。お爺さん、あんたの娘をわしの嫁にくれ。畑をうってあげるからと言った。お爺さんはもうすっかりくたびれてしんどくていけないので喜んで、それはありがたい。娘はやるからうってくれと言った。猿は大喜びで、お爺さんの鍬をとると一寸の間にその畑をうってしまった。夕方になってお爺さんは猿を連れて家へ帰ってきた。二人の娘たちは湯を沸かして待っていた。お爺さんは足を洗ってあがると、今日のことを詳しく話して、姉娘にこういう訳だから、お前猿の嫁に行ってくれと言った。姉娘はすっかり腹をたてて、馬鹿を言うな、自分は一生涯嫁にいかなくても猿の嫁になど行きはしないと言った。お爺さんは仕方がないので、今度は妹娘に頼むと、それでは自分が行くから、鏡と大きな水瓶を一つ買ってくださいと言った。お爺さんが鏡と大きな水瓶を買ってやると、娘は鏡を懐に入れて、猿の婿に水瓶を負わせた。そして婿と花嫁は連れだって猿の家へ行った。途中に川があって橋がかかっていた。橋の中ほどまで行くと、嫁の鏡が川の中へ落ちた。早く行って取ってきてください。早く行かないと流れると言って大騒ぎをした。猿はびっくりして大きな水瓶を背負ったまま川へ入ったので、水瓶の中へ水が入って上がることができない。とうとう溺れ死んでしまった。そこで娘は家へ帰ってきた。姉娘はとうとう一生涯嫁入りをしなかった。
・「ひょうたん五十こ」(日本標準『島根のむかし話』)
昔、あるところに爺さんと三人の娘がいた。ある日、爺さんが広い広い畑を打っていたら、猿がやって来て、自分が畑を打つから娘をくれと言った。爺さんは承諾して猿に畑を打ってもらった。それから爺さんは家に帰って寝た。ところが朝になっても中々起きてこなかった。そこで一番上の娘が爺さんのところへ来て調子を訊いた。爺さんはどこも悪くないが、お前、猿のところに嫁に行ってくれないかと言ったら、誰が行くものかと逃げてしまった。今度は中の娘が来たのでまた言ったら、嫌だ。誰が行くものかと言って中の娘も逃げた。今度は一番末の娘が来たので、また言ったら、それでは行くから、ひょうたんを五十ほど買ってくださいなと言ったので、爺さんは喜んで買った。猿が迎えに来たので、娘はひょうたんを持ってついて行った。途中に川があったので、持って来たひょうたんを川へ流し、猿にあのひょうたんを拾ってくれたら本当にあなたの嫁になると言った。猿は娘の言う通り川へ飛び込んだが、ひょうたんが水の中でくるり、くるりと回ってよく拾えなかった。それでとうとう猿は溺れて死んでしまった。
・「猿婿」(ハーベスト出版『夕陽を招く長者』)
昔々、あるところに爺さんと婆さんがいた。爺さんは畑を耕しに行った。暑い日で、爺さんはくたびれていた。そこへ猿がやって来て、爺さんの娘を自分にくれたらこの畑をみんな耕してあげると言った。爺さんはあまりにしんどいので、それなら一人やるから耕してくれと頼んだ。そうしたら、猿は一生懸命になってその畑をみんな綺麗に耕した。爺さんは家に帰って娘に頼まなければいけない。一番姉の娘が朝、爺さんを起こしにいった。爺さんはお前が猿の女房になってくれれば目も覚めようが、そうでなければ茶も喉を通らないと言ったら、「あかいやのとうべい」と姉娘は尻を叩いて逃げた。それで大変なことだと思っていたら、中の娘が起こしに来たので、またお前が猿の女房になってくれれば目も覚めようが、そうでなければ茶も喉を通らないと言ったら、「あかいやのとうべい」と言って中の娘も駆けて逃げた。いよいよ爺さんは猿に申し訳がない。どうしたらよいかと途方に暮れていた。そこへ一番下の妹がやって来たので、爺さんはお前が猿の女房になってくれれば目も覚めようが、そうでなければ茶も喉を通らないと言ったらと言った。そうしたら、それは楽なことだ。自分が猿の女房になると言った。爺さんは喜んで何か欲しいものはないかと聞くと、大きな瓶が一つ欲しい。もう一つ、鏡が欲しいと妹娘は言った。それは楽なことだと爺さんは大きな瓶と鏡を持たせた。そうしたら、約束通りに猿が迎えに来た。いよいよ嫁に行くというので、猿が何か下げていくものはないかと聞くと、妹娘は親に貰った大きな瓶があるから、ひとつそれを負うてくれないかと言った。そこで、大きな瓶を猿へがんじがらめに結いつけて、どんどん奥へ行ったら、大きな川へ行きかかった。そこで猿がここを向こうへ渡ると言うと、妹娘はそれならあなたが先に渡りなさいと答えた。猿がだんだん深い所へ行くと、嫁が泣き出した。何が悲しいのか問うと、形見に貰った鏡が落ちたと泣いた。心配するな、自分が取ってやると猿が聞くと、妹娘は鏡を下げていて、だんだん他の方へ向けて鏡を映していくから、どこまででも鏡が行くので、猿はそれを拾おうと思う。一生懸命ずっと追って行ったら、背に負った瓶に水ががぶがぶと入って沈んだ。そうして妹娘はさもやったような顔をして、婿が死んだからもう行くことはないと戻った。
◆コーディングルール
※コーディングルールのキーワードは重要と判断したものを人力でピックアップしている。そのため、恣意性を伴う分析となる。
※活用形でなく基本形で入力する。
※[前処理]→[語の抽出結果を確認]でキーワードがどのように分節されているか検索すると結果の一覧[語の抽出結果]が表示される。
※[Result]から確認したい行をクリックして選択、画面下の[詳細表示]ボタンをクリックするとサブ画面が表示され、活用形や基本形が確認できる。
※昔話では「否定/肯定」「肯定/否定」と属性が変化することが多いと考え、否定詞「ない」「まい」「ぬ」「ん」、また禁止を意味する「な」を共通のコードとして設定している。
※[関連語検索]で否定詞の共起語の一覧を表示させたところ、日本の昔話のように掌編レベルのボリュームだと、物語の動因となる箇所に関する語句が上位に表示される傾向が強いのではないか……といった印象があり、検証作業中である。
※無償版では強制抽出語の指定が機能制限で事実上使用できないため以下のような手法をとっている。
*打つ
打つ or うつ or 耕す
*しんどい
( 骨 and 折れる ) or しんどい
*嫁
嫁 or 花嫁 or 女房
*姉娘
'姉娘' or ( 上 and 娘 ) or ( 中 and 娘 ) or ( 一番 and 姉 and 娘 )
*馬鹿
馬鹿 or 'あかいやのとうべい'
*妹娘
'妹娘' or ( 末 and 娘 ) or ( 下 and 妹 )
*瓶
水瓶 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 | 言う | 動詞 | 22 (0.328) | 10 (0.500) | 0.3125 |
| 2 | 娘 | 名詞C | 27 (0.403) | 9 (0.450) | 0.2368 |
| 3 | 猿 | 名詞C | 28 (0.418) | 9 (0.450) | 0.2308 |
| 4 | 行く | 動詞 | 15 (0.224) | 6 (0.300) | 0.2069 |
| 5 | 爺さん | 名詞 | 19 (0.284) | 6 (0.300) | 0.1818 |
| 6 | 妹 | 名詞C | 7 (0.104) | 4 (0.200) | 0.1739 |
| 7 | 覚める | 動詞 | 3 (0.045) | 3 (0.150) | 0.15 |
| 8 | 喉 | 名詞C | 3 (0.045) | 3 (0.150) | 0.15 |
| 9 | 茶 | 名詞C | 3 (0.045) | 3 (0.150) | 0.15 |
| 10 | 通る | 動詞 | 3 (0.045) | 3 (0.150) | 0.15 |
爺さんの独り言が思わぬ難題となってしまうが、末娘の知恵で解決する……といった粗筋となっている。
短いお話の中で属性の転倒を多用するのが昔話の特徴の一つと考えられる。
ここで「/」(スラッシュ)を「転倒」を意味する記号として用いる。スラッシュは様々な場面で用いられていて文脈依存的な記号という欠点もあるが、視覚的にはイメージしやすいと判断した。
・[爺さん|畑:独白/難題]
・[末娘|爺さん:難題/解決]
・[猿|水:生/死]
こういった風にお話を転がしていると分析できる。末娘は「娘/花嫁」と転倒してしまうが、難題を解決することで「花嫁/娘」へと再転倒する。
◆類似度行列
・[コーディング単位]を[文]に変更して[集計]。Jaccard係数がマトリクス形式で確認できる。
・ある列を選択して画面右下の[コピー(選択列)]をクリックすると、当該のキーワードに関するJaccard係数がコピーされるので、それを表計算ソフトにペーストするといった利用が可能となる。
※当ブログでは[コーディング単位]が[段落][H5]の場合、Jacccard係数が1.0~0.5といった結果がほとんどで、意味のない結果となった。
◆多次元尺度構成法
・[コーディング単位]を[文]に変更して実行。
・共起関係を確認したいキーワードを指定。
・次元を「2」から「3」に変更して実行、三次元のマップとした。
姉娘の粗筋に関連したキーワードを指定したところ、「嫁入り」が離れた位置にプロットされた。これは妹娘に関する言葉だからと思われる。
※選択するキーワードによって相対的な位置関係は変わり得る。
※実行すると指定したキーワードの幾つかが除外されるとメッセージが表示される。テキストのボリューム不足のためか無償版の仕様によるものか判断がつかない。
※当ブログの事例では「文」以外、「段落」と「H5」では除外されるキーワードが増える傾向となった。
◆自己組織化マップ
[コーディング単位]を[文]に変更して実行。
記述内容が視覚的に整理され、類似性の高い内容が近くに配置される。概ねストーリーに沿った形で各クラスターが表示される。
※当ブログの事例では「文」以外、「段落」と「H5」ではエラーが返される結果となった。
※クラスター化の計算を繰り返すため処理に時間がかかるので要注意。
※クラスターの配置、距離に意味はない。
◆トピックの推定
・[ツール]→[文書]→[トピックモデル]→[トピックの推定]を選択。
・[集計単位]を[文]に変更。
・[OK]ボタンをクリックすると、[トピックの推定結果]画面が表示される。
・各トピックで高い確率で出現する語句がリストアップされる。
・[#1]といった欄をクリックすると、文書検索画面が表示される。
◆ベイズ学習による分類
・[ツール]→[文書]→[ベイズ学習による分類]→[外部変数から学習]を選択。
・[分類の単位]を[文]に変更。
・[学習する外部変数]は[書名]に変更する。
※「タイトル」のままでもよし。
・[OK]ボタンをクリックすると、ファイルの保存画面が表示されるので、任意のファイル名を記述して保存する。
・[ツール]→[文書]→[ベイズ学習による分類]→[学習結果ファイルの内容を確認]を選択。ファイル選択画面が開くので、先ほど保存したファイルを指定して開く。すると[学習結果ファイル]画面が開くので内容の確認を行う。
※[学習結果を用いた自動分類]については割愛する。
※[トピックの推定]と[ベイズ学習による分類]は固有名詞などを強制抽出語としてあらかじめ指定しておかないと正確に分析されないケースが生じる。正式に利用したい際は有償版の購入をお勧めする。当ブログのはあくまでテストケースとしてのものである。
※[トピックの推定]と[ベイズ学習による分類]はコーディング・ルールに依らない分析手法となるが、筆者の能力的に追及はしない。
◆参考文献
・『日本の民話 34 石見篇』(大庭良美/編, 未来社, 1978)pp.409-411.
・『島根のむかし話』(島根県小・中学校国語教育研究会/編著, 日本標準, 1976)pp.199-201.
・「夕陽を招く長者 山陰民話語り部シリーズ1」(民話の会「石見」/編, ハーベスト出版, 2013)pp.71-75.
・『動かして学ぶ!はじめてのテキストマイニング』(樋口耕一, ナカニシヤ出版, 2022)
・『社会調査のための計量テキスト分析 【第2版】 内容分析の継承と発展を目指して』(樋口耕一, ナカニシヤ出版, 2020)
| 固定リンク
中国新聞の見出しによると、ロピア(本社・川崎市)が広島市内にオープンするとのこと。ロピアは港北109のテナントだったか、お惣菜の質は高かったと記憶しているので、広島の同業者にとっては脅威かもしれない。
| 固定リンク
◆はじめに
以下はKH Coder(無償版:version 3.Beta.08e)を用いた昔話の計量テキスト分析である。昔話の類話の比較にツールを利用できないか試行してみた。
手持ちの資料が限られるため、分析の対象となる元データの文字数が少ないものの(※本来であれば5000字以上は欲しい)、分析自体は正常に処理されていると判断した。
KH Coderの操作に慣れる目的も兼ねて行った作業で、コーディングルールの記述の事例集、あるいは速習用のチュートリアルとしてでも読んで頂ければ……といったところである。
なお、KH Coderでよく用いられるのは共起ネットワークと対応分析とのことで、それ以外はおまけパートと思って頂いて構わない。操作に習熟するにはコーディングルールの記述に慣れるのが第一である。
◆ファイル
各ファイルをダウンロードしてKH Coderに読み込ませれば同様の分析が再現可能である。
ダウンロード - ca_pb_025_awanomeshi.xlsx
ダウンロード - ca_pb_025_codingrules.txt
ダウンロード - kh_coder_startingedition_sagyotejunsho.txt (※作業手順書)
※「H5」とはHTMLでいうところのヘッダー(見出し)・レベル5で本文に相当すると考えればよい。
※[コーディング単位]は「文/段落/H5」から選べるが、状況に応じて適切と思われるものを選択する必要がある。処理が上手くいかないと感じた場合、コーディング単位を切り替えると上手く処理されるケースがままある。
※公式マニュアルでは「集計単位」という用語が使われている。共起関係について、
・「文」では一文単位での分析
・「段落」では段落単位の分析
・「H5」では表計算ソフトのセル単位とされ、改行を含めた一セルの中身全体が分析単位となる
※レファレンスでも索引で「コーディング単位」の項目は設けられていない。操作性に関わる重要項目であるものの、その仕様について不明瞭な感はある。
※当ブログの場合、表計算ソフトのフォーマットで読み込ませているからH5固定でいいだろうと思い込んでいたら、さにあらずだった。
◆あらすじ
・「粟の飯」(未来社『石見の民話』)
昔、鴻池に聟がいることになった。大金持ちだから聟にしてくれという人は沢山あった。そこで鴻池では「粟ばかりのご飯を茶碗いっぱい盛り付けて何杯でも出しておいて一粒もこぼさぬ様に食べた者を聟にする」と立札を立てた。そこで我こそはという者がどんどん出かけて食べかけるが、ご飯があまりにこわい(かたい)ので、ぽろぽろこぼれて皆失敗した。ここに息子をもった父親がいた。この話を聞いて何とかして自分の息子を聟にやりたいと思って「中、食うちゃあへりをいれ 中、食うちゃあへりをいれ」という歌を作って、その歌を歌いながら歌の通りに中を食べてはほとりを中へ入れて食べる様にしつけた。そうして長いことやっている内に粟を一粒もこぼさずに食べられるようになった。そこで息子は鴻池へ行って粟飯を食べることになった。そしてこれまで教えられた通りに口の中で歌いながら食べたところ、見事一粒もこぼさずに食べることができた。それでめでたく鴻池の聟になった。我が子を出世させるためには、親はこうまで苦心をし、一粒のご飯もこぼさぬようなものでなければ出世はできない。
・「難題むこ」(日本標準『島根のむかし話』)
昔々、山奥の里に庄屋さんがあった。それはそれは大きな身上の庄屋だった。金持ち、家持ち、倉持ちで、米倉、粟倉、麦倉、ヒエ倉、豆倉、はぜ倉、酒倉、しょうゆ倉。こたつやぐらに枕が六つ。それは家にもあるが。その庄屋に一人娘がいた。器量よしで働き者で気立てが良くて年は十六、花ならつぼみ。しっかり者だった。そろそろ娘に婿を取って跡を継がせようと言ったところ、まあ来るわ来るわ。若い者が次から次へと来た。さて、あまりにも来手が多くて誰がいいのか迷ってしまった。何かいい決め方はないものか。ああか、こうかと庄屋さんとおかみさんは考えた。その内庄屋さんがおかみさんの耳に口をつけ何やら内緒話をした。それでいよいよ婿選びの日になった。皆、めかしこんで集まってきた。庄屋さんは皆を表へ上げて待たせておいて、一人ずつ座敷へ呼びこんで、何のご馳走もできないが、粟飯なら沢山ある。腹いっぱい食べなさい。この粟飯を一粒もこぼさずに食べたら娘の婿にもらおうと言って粟飯を茶碗にこてこて盛りつけて山のように高くよそって出した。ご馳走になりますと箸をつけたところ、粟のままだからぽろぽろ、ぽろぽろこぼれる。慌てて拾おうと思っても庄屋さんは見ているし箸をつければ粟飯の山がばらばら崩れ周りじゅう粟だらけ。食べるどころではない。粟飯もろくに食べられないような者は婿にはできないと言われて真っ赤な顔をして飛び出て去った。その次もその次も皆ぽろぽろばらばら周りじゅう粟だらけにしていた。しまいに一人、仕事着のままの男がちょこんと座っていた。他の者は皆めかしこんで来たのに、この男はぼろぼろのつぎはぎだらけの仕事着のまま座敷に上がり込んだ。どっかと座るとどこやらで糸を繰る車の音がしていい声がしてきた。「粟のまんまを食うにゃあ 箸の先を 濡らして なかくぼ くぼり なかくぼ くぼり」。男は湯のみの中へ箸の先をつけて濡らして真ん中がくぼむようにして食べると、濡れた箸に粟飯がひっついて一粒もこぼれなかった。それで箸の先を濡らしては食い、濡らしては食いで、とうとう一粒もこぼさずに残さず食べてしまった。しまいにお茶も飲み干してご馳走様と言った。庄屋さんもおかみさんもびっくりして、これは見事だ。お前こそ家の婿どのだ。一粒も粗末にしなかった。見事だと言って婿にした。それからそこの娘と仲良く精出していい庄屋になった。めでたしめでたし。
◆コーディングルール
※コーディングルールのキーワードは重要と判断したものを人力でピックアップしている。そのため、恣意性を伴う分析となる。
※活用形でなく基本形で入力する。
※[前処理]→[語の抽出結果を確認]でキーワードがどのように分節されているか検索すると結果の一覧[語の抽出結果]が表示される。
※[Result]から確認したい行をクリックして選択、画面下の[詳細表示]ボタンをクリックするとサブ画面が表示され、活用形や基本形が確認できる。
※昔話では「否定/肯定」「肯定/否定」と属性が変化することが多いと考え、否定詞「ない」「まい」「ぬ」「ん」、また禁止を意味する「な」を共通のコードとして設定している。
※[関連語検索]で否定詞の共起語の一覧を表示させたところ、日本の昔話のように掌編レベルのボリュームだと、物語の動因となる箇所に関する語句が上位に表示される傾向が強いのではないか……といった印象があり、検証作業中である。
※無償版では強制抽出語の指定が機能制限で事実上使用できないため以下のような手法をとっている。
*聟
聟 or 婿
*人
人 or 者
*粟飯
( 粟 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コンコーダンスでキーワード指定すれば指定したキーワードがどのような文脈で用いられているか一覧で抽出される。
◆関連語検索
・[集計単位]を[文]に変更、[集計]する。
・[Search Entry:]の一覧からキーワードを選択してダブルクリックすると[Result]に指定したキーワードの品詞や共起関係が表示される。
※[Result:]から行指定してダブルクリックするとKWICコンコーダンスに遷移する。
※[Result:]の一覧から範囲指定して[コピー]したものを表計算ソフトやテキストファイルにペーストすることも可能である。
[#直接入力]を指定して「ぽろぽろ」といったキーワードで検索すると関連語が一覧で表示される。
◆属性の転倒
・「ない」の結果上位一覧
| N | 抽出語 | 品詞 | 全体 | 共起 | Jaccard |
| 1 | 飯 | 名詞C | 6 (0.125) | 3 (0.429) | 0.3 |
| 2 | 食べる | 動詞 | 12 (0.250) | 3 (0.429) | 0.1875 |
| 3 | 粟 | 地名 | 1 (0.021) | 1 (0.143) | 0.1429 |
| 4 | 顔 | 名詞C | 1 (0.021) | 1 (0.143) | 0.1429 |
| 5 | 去る | 動詞 | 1 (0.021) | 1 (0.143) | 0.1429 |
| 6 | 苦心 | サ変名詞 | 1 (0.021) | 1 (0.143) | 0.1429 |
| 7 | 決め方 | 名詞 | 1 (0.021) | 1 (0.143) | 0.1429 |
| 8 | 呼ぶ | 動詞 | 1 (0.021) | 1 (0.143) | 0.1429 |
| 9 | 子 | 名詞C | 1 (0.021) | 1 (0.143) | 0.1429 |
| 10 | 出世 | サ変名詞 | 1 (0.021) | 1 (0.143) | 0.1429 |
・「ぬ」の結果上位一覧
| N | 抽出語 | 品詞 | 全体 | 共起 | Jaccard |
| 1 | 食べる | 動詞 | 12 (0.250) | 5 (0.833) | 0.3846 |
| 2 | 出す | 動詞 | 2 (0.042) | 2 (0.333) | 0.3333 |
| 3 | 茶碗 | 名詞 | 2 (0.042) | 2 (0.333) | 0.3333 |
| 4 | ご飯 | 名詞 | 3 (0.063) | 2 (0.333) | 0.2857 |
| 5 | 粟 | 名詞C | 10 (0.208) | 3 (0.500) | 0.2308 |
| 6 | 教える | 動詞 | 1 (0.021) | 1 (0.167) | 0.1667 |
| 7 | 苦心 | サ変名詞 | 1 (0.021) | 1 (0.167) | 0.1667 |
| 8 | 高い | 形容詞 | 1 (0.021) | 1 (0.167) | 0.1667 |
| 9 | 残す | 動詞 | 1 (0.021) | 1 (0.167) | 0.1667 |
| 10 | 子 | 名詞C | 1 (0.021) | 1 (0.167) | 0.1667 |
茶碗一杯に盛られた粟の飯を一粒もこぼさずに食べるという難題を父親のしつけや相手の娘の歌によって解決する……といった粗筋となっている。
短いお話の中で属性の転倒を多用するのが昔話の特徴の一つと考えられる。
ここで「/」(スラッシュ)を「転倒」を意味する記号として用いる。スラッシュは様々な場面で用いられていて文脈依存的な記号という欠点もあるが、視覚的にはイメージしやすいと判断した。
・[父親|息子:難題/解決]
・[娘|男:難題/解決]
・[箸|濡らす:こぼれる/こぼれない]
こういった風にお話を転がしていると分析できる。難題を解決することで「みすぼらしい/出世」へと転倒する。
◆類似度行列
・[コーディング単位]を[文]に変更して[集計]。Jaccard係数がマトリクス形式で確認できる。
・ある列を選択して画面右下の[コピー(選択列)]をクリックすると、当該のキーワードに関するJaccard係数がコピーされるので、それを表計算ソフトにペーストするといった利用が可能となる。
※当ブログでは[コーディング単位]が[段落][H5]の場合、Jacccard係数が1.0~0.5といった結果がほとんどで、意味のない結果となった。
◆多次元尺度構成法
・[コーディング単位]を[文]に変更して実行。
・共起関係を確認したいキーワードを指定。
・次元を「2」から「3」に変更して実行、三次元のマップとした。
粟飯をこぼさず食べる粗筋に関連したキーワードを指定したところ、「へり」「くぼ」が離れた位置にプロットされた。
※選択するキーワードによって相対的な位置関係は変わり得る。
※実行すると指定したキーワードの幾つかが除外されるとメッセージが表示される。テキストのボリューム不足のためか無償版の仕様によるものか判断がつかない。
※当ブログの事例では「文」以外、「段落」と「H5」では除外されるキーワードが増える傾向となった。
◆自己組織化マップ
[コーディング単位]を[文]に変更して実行。
記述内容が視覚的に整理され、類似性の高い内容が近くに配置される。概ねストーリーに沿った形で各クラスターが表示される。
※当ブログの事例では「文」以外、「段落」と「H5」ではエラーが返される結果となった。
※クラスター化の計算を繰り返すため処理に時間がかかるので要注意。
※クラスターの配置、距離に意味はない。
◆トピックの推定
・[ツール]→[文書]→[トピックモデル]→[トピックの推定]を選択。
・[集計単位]を[文]に変更。
・[OK]ボタンをクリックすると、[トピックの推定結果]画面が表示される。
・各トピックで高い確率で出現する語句がリストアップされる。
・[#1]といった欄をクリックすると、文書検索画面が表示される。
◆ベイズ学習による分類
・[ツール]→[文書]→[ベイズ学習による分類]→[外部変数から学習]を選択。
・[分類の単位]を[文]に変更。
・[学習する外部変数]は[書名]に変更する。
※「タイトル」のままでもよし。
・[OK]ボタンをクリックすると、ファイルの保存画面が表示されるので、任意のファイル名を記述して保存する。
・[ツール]→[文書]→[ベイズ学習による分類]→[学習結果ファイルの内容を確認]を選択。ファイル選択画面が開くので、先ほど保存したファイルを指定して開く。すると[学習結果ファイル]画面が開くので内容の確認を行う。
※[学習結果を用いた自動分類]については割愛する。
※[トピックの推定]と[ベイズ学習による分類]は固有名詞などを強制抽出語としてあらかじめ指定しておかないと正確に分析されないケースが生じる。正式に利用したい際は有償版の購入をお勧めする。当ブログのはあくまでテストケースとしてのものである。
※[トピックの推定]と[ベイズ学習による分類]はコーディング・ルールに依らない分析手法となるが、筆者の能力的に追及はしない。
◆参考文献
・『日本の民話 34 石見篇』(大庭良美/編, 未来社, 1978)pp.191-192.
・『島根のむかし話』(島根県小・中学校国語教育研究会/編著, 日本標準, 1976)pp.44-48.
・『動かして学ぶ!はじめてのテキストマイニング』(樋口耕一, ナカニシヤ出版, 2022)
・『社会調査のための計量テキスト分析 【第2版】 内容分析の継承と発展を目指して』(樋口耕一, ナカニシヤ出版, 2020)
| 固定リンク
◆はじめに
以下はKH Coder(無償版:version 3.Beta.08e)を用いた昔話の計量テキスト分析である。昔話の類話の比較にツールを利用できないか試行してみた。
手持ちの資料が限られるため、分析の対象となる元データの文字数が少ないものの(※本来であれば5000字以上は欲しい)、分析自体は正常に処理されていると判断した。
KH Coderの操作に慣れる目的も兼ねて行った作業で、コーディングルールの記述の事例集、あるいは速習用のチュートリアルとしてでも読んで頂ければ……といったところである。
なお、KH Coderでよく用いられるのは共起ネットワークと対応分析とのことで、それ以外はおまけパートと思って頂いて構わない。操作に習熟するにはコーディングルールの記述に慣れるのが第一である。
◆ファイル
各ファイルをダウンロードしてKH Coderに読み込ませれば同様の分析が再現可能である。
ダウンロード - ca_pb_024_hahanomen.xlsx
ダウンロード - ca_pb_024_codingrules.txt
ダウンロード - kh_coder_startingedition_sagyotejunsho.txt (※作業手順書)
※「H5」とはHTMLでいうところのヘッダー(見出し)・レベル5で本文に相当すると考えればよい。
※[コーディング単位]は「文/段落/H5」から選べるが、状況に応じて適切と思われるものを選択する必要がある。処理が上手くいかないと感じた場合、コーディング単位を切り替えると上手く処理されるケースがままある。
※公式マニュアルでは「集計単位」という用語が使われている。共起関係について、
・「文」では一文単位での分析
・「段落」では段落単位の分析
・「H5」では表計算ソフトのセル単位とされ、改行を含めた一セルの中身全体が分析単位となる
※レファレンスでも索引で「コーディング単位」の項目は設けられていない。操作性に関わる重要項目であるものの、その仕様について不明瞭な感はある。
※当ブログの場合、表計算ソフトのフォーマットで読み込ませているからH5固定でいいだろうと思い込んでいたら、さにあらずだった。
◆あらすじ
・「母の面と鬼の面」(未来社『石見の民話』)
親孝行な娘がいた。隣の村の財産家に子守り奉公していた。あるときお祭りがあったので、子供を背負ってお宮へ行った。すると、お母さんによく似た面を売っていたので買って帰った。それからは毎晩寝るときに、その面を箱から出して「お母さん、おやすみなさい」と言い、朝起きたときには「お母さん、お早うございます」と挨拶をした。それを下男が見つけて、ある日鬼の面とすり替えておいた。娘はそんなことは知らず、いつもの様に寝る前に取り出してみると、大変恐ろしい顔になっているので、びっくりした。どうしてこんなに機嫌が悪いのだろうか、それともどこか具合が悪いのだろうかと思うと、どうしても眠ることができない。そこで夜が明けるのを待ちきれないので主人に訳を話して親元へ泊まりに行かしてもらうよう頼むと、主人は泊まりに行ってもよいが、明日の朝にしてはどうかと言ったが、娘は心配でたまらないからすぐ行かせてくれと頼んだ。主人はそれなら行きなさいと言ったので、娘は喜んで早速出発した。隣村との境に峠があった。そこへ差し掛かると山賊が五六人出て娘を捕まえてしまった。山賊は自分たちは男ばかりで女がいないので困っている。お前はこれから飯炊きをせよと言うので、娘は仕方なく火を焚きはじめたが、中々うまく燃えない。煙たくてたまらないので、娘は箱の中から鬼の面を取りだして、それを被って火を焚いていると、ようやく火がボーッと燃え上がった。その灯りで山賊たちが娘の顔を見ると、いつの間にか鬼になっているので、びっくり仰天して「鬼が来た」と言って一目散に逃げ出した。娘は山賊たちが置いていったお金を持って家へ帰ってみるとお母さんは何のこともなく、元気で迎えてくれた。
・「おにの面」(日本標準『島根のむかし話』)
昔、仁多の奥の娘が町に奉公することになった。娘は母親思いだったから、町で母によく似た面を買って行李に入れて奉公先に行った。そうして毎日毎日、夜になると「お母さん、今日も無事で暮らしました。お母さんも無事で暮らしてください」と話しかけていた。そうしたらある日、そこの親方がこっそりそれを見て「何を見て毎日ぶつぶつ言っているのか」と行李をそっと開けてみた。すると、行李の中に女の面が入っていたから「それならこうしてやれ」と代わりに鬼の面を入れておいた。明くる晩、「里のお母さんはどうしているか」と思って行李の蓋をとってみたら、母親の面が鬼の面になっていた。これはどうしたことか。なにか変わったことがあったに違いない。急いで帰らなければと親方に暇をもらって里へ帰らせてもらうことにした。あくる朝、早く出たが峠まで来たら日が暮れてしまった。それでも歩いていってたら、向こうに灯りが見えてきた。やれ嬉しやとどんどん急いでいった。行ってみたら、恐ろし気な顔をした男たちが焚火をして酒を飲んでいた。その中の男が娘を見つけてお前はこんな晩にどこへ行くのか。ここで火焚きの手伝いでもせよと捕まえてしまった。許してください。自分は帰らないといけないからと言ったけれども、こらえてくれない。夜が明けるまでは仕方ないと思って火を焚いてやった。が、生の木もあったので煙が出て煙たくていけない。仕方がないので荷物の中から鬼の面を取り出して被った。そうしたら、男の中の一人がこれを見て、あの娘が鬼になってしまった。あれは鬼だったと皆、飛んで逃げてしまった。後には沢山の銭が残っていたので風呂敷に包んで持って帰った。帰ってみると、母親は病気でなかったし、家も変わりなかった。二人はそれから仲良く暮らした。
◆コーディングルール
※コーディングルールのキーワードは重要と判断したものを人力でピックアップしている。そのため、恣意性を伴う分析となる。
※活用形でなく基本形で入力する。
※[前処理]→[語の抽出結果を確認]でキーワードがどのように分節されているか検索すると結果の一覧[語の抽出結果]が表示される。
※[Result]から確認したい行をクリックして選択、画面下の[詳細表示]ボタンをクリックするとサブ画面が表示され、活用形や基本形が確認できる。
※昔話では「否定/肯定」「肯定/否定」と属性が変化することが多いと考え、否定詞「ない」「まい」「ぬ」「ん」、また禁止を意味する「な」を共通のコードとして設定している。
※[関連語検索]で否定詞の共起語の一覧を表示させたところ、日本の昔話のように掌編レベルのボリュームだと、物語の動因となる箇所に関する語句が上位に表示される傾向が強いのではないか……といった印象があり、検証作業中である。
※無償版では強制抽出語の指定が機能制限で事実上使用できないため以下のような手法をとっている。
*隣村
隣村 or ( 隣 and 村 )
*財産家
'財産家'
*母
お母さん or 母親 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)から点線が伸び交差した箇所が原点となる。原点から離れるほど特徴的なキーワードだと分析される。
原点付近に「娘」「母」「面」「鬼」といったキーワードが多数プロットされている。未来社版では「山賊」「下男」「主人」といったキーワードが原点から離れてプロットされている。日本標準版では「仁多」「親方」「暇」といったキーワードが特徴的なキーワードとされている。
◆解釈
どちらもほぼ同じ内容である。山中で娘を捕まえるのが未来社版では山賊、日本標準版では恐ろし気な男たちといった程度の差である。
◆階層的クラスター分析
・[コーディング単位]を[文]に変更、実行するとデンドログラム(樹状図)で可視化される。
※キーワード指定しても可。
概ねストーリーに沿った内容でクラスター化されている。
※当ブログの場合、[コーディング単位]が[段落][H5]だと、コードを全て選択するとエラーが返される結果となった。
◆クロス集計
・[コーディング単位]を[文]に変更、[集計]する。
※「タイトル」で集計をかけた。
クロス集計をかけたところ、「娘」といったキーワードでカイ(χ)2乗値で相関関係を示す結果(※マーク)が得られた。
マップとして描画したところ、「娘」「隣村」「山賊」といったキーワードの残差が大きく(濃く)表示される結果となった。バブルとしては「娘」が大きく描画された。
◆KWICコンコーダンス
現状ではテキストマイニングのツールに文脈を読む性能はないため実際に該当箇所を読んで人力で判断する他ない。KWICコンコーダンスでキーワード指定すれば指定したキーワードがどのような文脈で用いられているか一覧で抽出される。
◆関連語検索
・[集計単位]を[文]に変更、[集計]する。
・[Search Entry:]の一覧からキーワードを選択してダブルクリックすると[Result]に指定したキーワードの品詞や共起関係が表示される。
※[Result:]から行指定してダブルクリックするとKWICコンコーダンスに遷移する。
※[Result:]の一覧から範囲指定して[コピー]したものを表計算ソフトやテキストファイルにペーストすることも可能である。
[#直接入力]を指定して「煙たい」といったキーワードで検索すると関連語が一覧で表示される。
◆属性の転倒
・「ない」の結果上位一覧
| N | 抽出語 | 品詞 | 全体 | 共起 | Jaccard |
| 1 | 帰る | 動詞 | 6 (0.140) | 4 (0.333) | 0.2857 |
| 2 | 仕方 | ナイ形容 | 3 (0.070) | 3 (0.250) | 0.25 |
| 3 | 言う | 動詞 | 7 (0.163) | 3 (0.250) | 0.1875 |
| 4 | 家 | 名詞C | 2 (0.047) | 2 (0.167) | 0.1667 |
| 5 | 自分 | 名詞 | 2 (0.047) | 2 (0.167) | 0.1667 |
| 6 | 変わる | 動詞 | 2 (0.047) | 2 (0.167) | 0.1667 |
| 7 | 明ける | 動詞 | 2 (0.047) | 2 (0.167) | 0.1667 |
| 8 | 思う | 動詞 | 3 (0.070) | 2 (0.167) | 0.1538 |
| 9 | 夜 | 副詞可能 | 3 (0.070) | 2 (0.167) | 0.1538 |
| 10 | 火 | 名詞C | 4 (0.093) | 2 (0.167) | 0.1429 |
| 11 | 山賊 | 名詞 | 4 (0.093) | 2 (0.167) | 0.1429 |
| 12 | 焚く | 動詞 | 4 (0.093) | 2 (0.167) | 0.1429 |
大事にしていた母の面が鬼の面に変わっていたので、もしや母の身に何か異変が起きたのではないかと娘は村へ戻ろうとするが、途中で山賊に捕まってしまい……といった粗筋となっている。
短いお話の中で属性の転倒を多用するのが昔話の特徴の一つと考えられる。
ここで「/」(スラッシュ)を「転倒」を意味する記号として用いる。スラッシュは様々な場面で用いられていて文脈依存的な記号という欠点もあるが、視覚的にはイメージしやすいと判断した。
・[娘|面:母/鬼]
・[山賊|娘:娘/鬼]
・[娘|母:案じる/安心]
こういった風にお話を転がしていると分析できる。娘は母を「案じる/安心」へと転倒する。
◆類似度行列
・[コーディング単位]を[文]に変更して[集計]。Jaccard係数がマトリクス形式で確認できる。
・ある列を選択して画面右下の[コピー(選択列)]をクリックすると、当該のキーワードに関するJaccard係数がコピーされるので、それを表計算ソフトにペーストするといった利用が可能となる。
※当ブログでは[コーディング単位]が[段落][H5]の場合、Jacccard係数が1.0~0.5といった結果がほとんどで、意味のない結果となった。
◆多次元尺度構成法
・[コーディング単位]を[文]に変更して実行。
・共起関係を確認したいキーワードを指定。
・次元を「2」から「3」に変更して実行、三次元のマップとした。
母の面が鬼の面にすり替えられる粗筋に関連したキーワードを指定したところ、「母」「親方」が離れた位置にプロットされた。
※選択するキーワードによって相対的な位置関係は変わり得る。
※実行すると指定したキーワードの幾つかが除外されるとメッセージが表示される。テキストのボリューム不足のためか無償版の仕様によるものか判断がつかない。
※当ブログの事例では「文」以外、「段落」と「H5」では除外されるキーワードが増える傾向となった。
◆自己組織化マップ
[コーディング単位]を[文]に変更して実行。
記述内容が視覚的に整理され、類似性の高い内容が近くに配置される。概ねストーリーに沿った形で各クラスターが表示される。
※当ブログの事例では「文」以外、「段落」と「H5」ではエラーが返される結果となった。
※クラスター化の計算を繰り返すため処理に時間がかかるので要注意。
※クラスターの配置、距離に意味はない。
◆トピックの推定
・[ツール]→[文書]→[トピックモデル]→[トピックの推定]を選択。
・[集計単位]を[文]に変更。
・[OK]ボタンをクリックすると、[トピックの推定結果]画面が表示される。
・各トピックで高い確率で出現する語句がリストアップされる。
・[#1]といった欄をクリックすると、文書検索画面が表示される。
◆ベイズ学習による分類
・[ツール]→[文書]→[ベイズ学習による分類]→[外部変数から学習]を選択。
・[分類の単位]を[文]に変更。
・[学習する外部変数]は[書名]に変更する。
※「タイトル」のままでもよし。
・[OK]ボタンをクリックすると、ファイルの保存画面が表示されるので、任意のファイル名を記述して保存する。
・[ツール]→[文書]→[ベイズ学習による分類]→[学習結果ファイルの内容を確認]を選択。ファイル選択画面が開くので、先ほど保存したファイルを指定して開く。すると[学習結果ファイル]画面が開くので内容の確認を行う。
※[学習結果を用いた自動分類]については割愛する。
※[トピックの推定]と[ベイズ学習による分類]は固有名詞などを強制抽出語としてあらかじめ指定しておかないと正確に分析されないケースが生じる。正式に利用したい際は有償版の購入をお勧めする。当ブログのはあくまでテストケースとしてのものである。
※[トピックの推定]と[ベイズ学習による分類]はコーディング・ルールに依らない分析手法となるが、筆者の能力的に追及はしない。
◆参考文献
・『日本の民話 34 石見篇』(大庭良美/編, 未来社, 1978)pp.215-216.
・『島根のむかし話』(島根県小・中学校国語教育研究会/編著, 日本標準, 1976)pp.71-74.
・『動かして学ぶ!はじめてのテキストマイニング』(樋口耕一, ナカニシヤ出版, 2022)
・『社会調査のための計量テキスト分析 【第2版】 内容分析の継承と発展を目指して』(樋口耕一, ナカニシヤ出版, 2020)
| 固定リンク
◆はじめに
以下はKH Coder(無償版:version 3.Beta.08e)を用いた昔話の計量テキスト分析である。昔話の類話の比較にツールを利用できないか試行してみた。
手持ちの資料が限られるため、分析の対象となる元データの文字数が少ないものの(※本来であれば5000字以上は欲しい)、分析自体は正常に処理されていると判断した。
KH Coderの操作に慣れる目的も兼ねて行った作業で、コーディングルールの記述の事例集、あるいは速習用のチュートリアルとしてでも読んで頂ければ……といったところである。
なお、KH Coderでよく用いられるのは共起ネットワークと対応分析とのことで、それ以外はおまけパートと思って頂いて構わない。操作に習熟するにはコーディングルールの記述に慣れるのが第一である。
◆ファイル
各ファイルをダウンロードしてKH Coderに読み込ませれば同様の分析が再現可能である。
ダウンロード - ca_pb_023_hehiriji.xlsx
ダウンロード - ca_pb_023_codingrules.txt
ダウンロード - kh_coder_startingedition_sagyotejunsho.txt (※作業手順書)
※「H5」とはHTMLでいうところのヘッダー(見出し)・レベル5で本文に相当すると考えればよい。
※[コーディング単位]は「文/段落/H5」から選べるが、状況に応じて適切と思われるものを選択する必要がある。処理が上手くいかないと感じた場合、コーディング単位を切り替えると上手く処理されるケースがままある。
※公式マニュアルでは「集計単位」という用語が使われている。共起関係について、
・「文」では一文単位での分析
・「段落」では段落単位の分析
・「H5」では表計算ソフトのセル単位とされ、改行を含めた一セルの中身全体が分析単位となる
※レファレンスでも索引で「コーディング単位」の項目は設けられていない。操作性に関わる重要項目であるものの、その仕様について不明瞭な感はある。
※当ブログの場合、表計算ソフトのフォーマットで読み込ませているからH5固定でいいだろうと思い込んでいたら、さにあらずだった。
◆あらすじ
・「屁ひり爺」(未来社『石見の民話』)
昔あるところに爺さんがいた。ある日お殿さまの山で木を伐っていたら、お殿さまの行列が通った。お殿さまが人の山で木を伐るのはどいつだと言った。爺さんは日本一の屁ひりじいと言った。それなら屁を一つひってみよとなり、ここには尻にとげがたってひられない、板の間は冷たくてひられない、畳はつるつるしてひられないとなり、毛氈ならひられるとなった。毛氈の上で錦ざらざら黄金ざらざら五葉の松原はスッポロポンのポンと大きな屁を見事にひった。お殿さまは大層喜ばれて、まさしく日本一の屁こき爺だ。褒美をとらせると言った。爺さんは褒美をもらった。それを聞いた隣の欲張り爺さんが自分も褒美を貰わねばと、お殿さまの山で木を伐っていた。お殿さまの行列が通って人の山で木を伐るのはどいつだと言った。欲張り爺さんは日本一の屁ひり爺と言った。それでは屁をひとつひってみせよとなった。ここには尻にとげがたってひられない、板の間は冷たくてひられない、畳はつるつるしてひられないとなり、毛氈ならひられるとなった。毛氈の上で錦ざらざら黄金ざらざら五葉の松原とやったが屁が出ない。そこで隣の爺さんは錦ざらざら黄金ざらざら五葉の松原はスッポロポンのポンとやったが、出たのは屁ではなく大きな黄色なのがポン。お殿さまは怒って、よくも嘘をついたなと一刀のもとに尻を切ってしまった。だから欲張りをして人まねをしてはいけない。
・日本一のへこきじい(日本標準『島根のむかし話』)
昔々あるところに屁の上手な爺さんがいた。畑で芋を掘るのに一鍬掘ってはプーン、二鍬掘ってはプーンと上手に屁をこいていた。そうしたら、そこへ殿さまが通りかかって「あれは何か」と聞いた。家来があれは爺さんの屁ですと答えると、面白い。ここへ呼んで屁をこかせろと命じた。家来は爺さんを呼びに行った。爺さんは叱られるかと思ってそろそろと殿さまの前へ出ると、殿さまが本当に屁が上手かと聞いたので、日本一の屁こきだと答えた。それではそこでこいてみよと言われたが、泥の上ではこかれない。むしろの上ではこかれない。ござの上でもこかれない。金襴緞子の布団を敷いてならこかれますと答えたので殿さまは布団を敷いた。爺さんは尻をまくって「米ブンブン。粟ブンブン。黄金のまさかりヤッポンポン」とこいた。そうしたら殿さまはこれは上手だと褒美をくれた。隣の爺さんがそれを聞いて、屁をこいて褒美をもらえるなら自分もできると殿さまが通りかかるのを畑で待っていた。そうしたら、殿さまが通りかかったので、ブーンとこいていたら、「おお、こないだの爺か。今日も一つこいてみせよ」と金襴緞子の布団を敷いた。隣の爺さんはここうと思ったけれども中々いい具合に出ない。力んだけれども中々出ない。今度は「やっぷら、ぷーん」と言ったら大きな屁がブーンと殿さまの顔に飛んでいった。殿さまは怒ってしまい隣の爺さんは縛られて牢屋へ入れられてしまった。
◆コーディングルール
※コーディングルールのキーワードは重要と判断したものを人力でピックアップしている。そのため、恣意性を伴う分析となる。
※活用形でなく基本形で入力する。
※[前処理]→[語の抽出結果を確認]でキーワードがどのように分節されているか検索すると結果の一覧[語の抽出結果]が表示される。
※[Result]から確認したい行をクリックして選択、画面下の[詳細表示]ボタンをクリックするとサブ画面が表示され、活用形や基本形が確認できる。
※昔話では「否定/肯定」「肯定/否定」と属性が変化することが多いと考え、否定詞「ない」「まい」「ぬ」「ん」、また禁止を意味する「な」を共通のコードとして設定している。
※[関連語検索]で否定詞の共起語の一覧を表示させたところ、日本の昔話のように掌編レベルのボリュームだと、物語の動因となる箇所に関する語句が上位に表示される傾向が強いのではないか……といった印象があり、検証作業中である。
※無償版では強制抽出語の指定が機能制限で事実上使用できないため以下のような手法をとっている。
*爺さん
爺さん or 爺
*ひる
ひる or 出る or こく
*板の間
'板の間'
*隣の爺さん
( 隣 and 爺さん ) 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 | 出る | 動詞 | 5 (0.125) | 4 (0.400) | 0.3636 |
| 2 | 毛氈 | 名詞 | 4 (0.100) | 3 (0.300) | 0.2727 |
| 3 | 畳 | 名詞C | 2 (0.050) | 2 (0.200) | 0.2 |
| 4 | 中 | 地名 | 2 (0.050) | 2 (0.200) | 0.2 |
| 5 | 板の間 | 名詞 | 2 (0.050) | 2 (0.200) | 0.2 |
| 6 | 冷たい | 形容詞 | 2 (0.050) | 2 (0.200) | 0.2 |
| 7 | 錦 | 名詞C | 3 (0.075) | 2 (0.200) | 0.1818 |
| 8 | 松原 | 名詞 | 3 (0.075) | 2 (0.200) | 0.1818 |
| 9 | 黄金 | 名詞 | 4 (0.100) | 2 (0.200) | 0.1667 |
| 10 | 尻 | 名詞C | 4 (0.100) | 2 (0.200) | 0.1667 |
爺さんの真似をしようとした隣の爺さんだったが、屁をこくつもりが実が出てしまって殿さまの怒りを買ってしまう……といった粗筋となっている。
このように短いお話の中で属性の転倒を多用するのが昔話の特徴の一つと考えられる。
ここで「/」(スラッシュ)を「転倒」を意味する記号として用いる。スラッシュは様々な場面で用いられていて文脈依存的な記号という欠点もあるが、視覚的にはイメージしやすいと判断した。
・[爺さん|芸:屁/褒美]
・[隣の爺さん|真似:屁/実]
・[殿さま|態度:喜び/怒り]
こういった風にお話を転がしていると分析できる。隣の爺さんは「欲張り/罰」へと転倒する。
◆類似度行列
・[コーディング単位]を[文]に変更して[集計]。Jaccard係数がマトリクス形式で確認できる。
・ある列を選択して画面右下の[コピー(選択列)]をクリックすると、当該のキーワードに関するJaccard係数がコピーされるので、それを表計算ソフトにペーストするといった利用が可能となる。
※当ブログでは[コーディング単位]が[段落][H5]の場合、Jacccard係数が1.0~0.5といった結果がほとんどで、意味のない結果となった。
◆多次元尺度構成法
・[コーディング単位]を[文]に変更して実行。
・共起関係を確認したいキーワードを指定。
・次元を「2」から「3」に変更して実行、三次元のマップとした。
隣の爺さんに関する粗筋に関連したキーワードを指定したところ、「顔」が離れた位置にプロットされた。
※選択するキーワードによって相対的な位置関係は変わり得る。
※実行すると指定したキーワードの幾つかが除外されるとメッセージが表示される。テキストのボリューム不足のためか無償版の仕様によるものか判断がつかない。
※当ブログの事例では「文」以外、「段落」と「H5」では除外されるキーワードが増える傾向となった。
◆自己組織化マップ
[コーディング単位]を[文]に変更して実行。
記述内容が視覚的に整理され、類似性の高い内容が近くに配置される。概ねストーリーに沿った形で各クラスターが表示される。
※当ブログの事例では「文」以外、「段落」と「H5」ではエラーが返される結果となった。
※クラスター化の計算を繰り返すため処理に時間がかかるので要注意。
※クラスターの配置、距離に意味はない。
◆トピックの推定
・[ツール]→[文書]→[トピックモデル]→[トピックの推定]を選択。
・[集計単位]を[文]に変更。
・[OK]ボタンをクリックすると、[トピックの推定結果]画面が表示される。
・各トピックで高い確率で出現する語句がリストアップされる。
・[#1]といった欄をクリックすると、文書検索画面が表示される。
◆ベイズ学習による分類
・[ツール]→[文書]→[ベイズ学習による分類]→[外部変数から学習]を選択。
・[分類の単位]を[文]に変更。
・[学習する外部変数]は[書名]に変更する。
※「タイトル」のままでもよし。
・[OK]ボタンをクリックすると、ファイルの保存画面が表示されるので、任意のファイル名を記述して保存する。
・[ツール]→[文書]→[ベイズ学習による分類]→[学習結果ファイルの内容を確認]を選択。ファイル選択画面が開くので、先ほど保存したファイルを指定して開く。すると[学習結果ファイル]画面が開くので内容の確認を行う。
※[学習結果を用いた自動分類]については割愛する。
※[トピックの推定]と[ベイズ学習による分類]は固有名詞などを強制抽出語としてあらかじめ指定しておかないと正確に分析されないケースが生じる。正式に利用したい際は有償版の購入をお勧めする。当ブログのはあくまでテストケースとしてのものである。
※[トピックの推定]と[ベイズ学習による分類]はコーディング・ルールに依らない分析手法となるが、筆者の能力的に追及はしない。
◆参考文献
・『日本の民話 34 石見篇』(大庭良美/編, 未来社, 1978)pp.134-136.
・『島根のむかし話』(島根県小・中学校国語教育研究会/編著, 日本標準, 1976)pp.107-111.
・『動かして学ぶ!はじめてのテキストマイニング』(樋口耕一, ナカニシヤ出版, 2022)
・『社会調査のための計量テキスト分析 【第2版】 内容分析の継承と発展を目指して』(樋口耕一, ナカニシヤ出版, 2020)
| 固定リンク