« 2026年2月 | トップページ | 2026年4月 »

2026年3月

2026年3月31日 (火)

昔話の計量テキスト分析――弓の名人

◆はじめに

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

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

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

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

◆ファイル

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

ダウンロード - ca_pb_022_yuminomeijin.xlsx

ダウンロード - ca_pb_022_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 ( いい and 格好 and ない ) or ( 出来 and 悪い )
*女房
娘 or 女房
*名人
名人 or ( 手 and 立つ )
*肛門
尻 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コンコーダンスでキーワード指定すれば指定したキーワードがどのような文脈で用いられているか一覧で抽出される。

KWICコンコーダンス
KWICコンコーダンス・文書表示

◆関連語検索

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

 

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

関連語検索 

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

関連語検索

◆属性の転倒

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

N 抽出語 品詞 全体 共起 Jaccard
1 名詞C  1 (0.005)  1 (0.250) 0.25
2 何とか 副詞  1 (0.005)  1 (0.250) 0.25
3 古狸 名詞  1 (0.005)  1 (0.250) 0.25
4 済む 動詞  1 (0.005)  1 (0.250) 0.25
5 少し 副詞  1 (0.005)  1 (0.250) 0.25
6 名詞C  1 (0.005)  1 (0.250) 0.25
7 名詞C  1 (0.005)  1 (0.250) 0.25
8 痛める 動詞  1 (0.005)  1 (0.250) 0.25

殿さまの頼みで息子は山賊退治にでかける。姫さまは息子が気に入らないので毒入りのむすび飯を持たせて密かに殺してしまおうとするが、その毒むすびを山賊たちが食べてしまい、山賊たちは退治された……といった粗筋となっている。

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

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

・[姫|息子:気に入らない/認める]
・[山賊|毒むすび:生/死]
・[男|偶然:ほら/実現]

こういった風にお話を転がしていると分析できる。旅に出た息子の立場は「百姓/侍」へと転倒する。

◆類似度行列

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

類似度行列

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

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

◆多次元尺度構成法

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

多次元尺度構成法

息子ないし男が山賊を退治する粗筋に関連したキーワードを指定したところ、「しびれる」「首」がやや離れた位置にプロットされた。

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

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

◆自己組織化マップ

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

自己組織化マップ

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

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

◆トピックの推定

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

トピックの推定

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

トピックの推定・文書検索

◆ベイズ学習による分類

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

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

ベイズ学習による分類

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

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

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

◆参考文献
・『日本の民話 34 石見篇』(大庭良美/編, 未来社, 1978)pp.156-159, 437-444.
・『島根県の民話 やまたのおろちほか』(日本児童文学者協会/編, 偕成社, 2000)pp.173-180.
・『動かして学ぶ!はじめてのテキストマイニング』(樋口耕一, ナカニシヤ出版, 2022)
・『社会調査のための計量テキスト分析 【第2版】 内容分析の継承と発展を目指して』(樋口耕一, ナカニシヤ出版, 2020)

|

2026年3月30日 (月)

鳥取市長選――鳥取の今後はどうなる?

【記者解説】鳥取市長選、三つどもえの背景 深沢市政4期目に求められる「次の一手」 
https://www.sanin-chuo.co.jp/articles/-/976374

先日実施された鳥取市長選の解説記事。読んでいて、鳥取三洋が消滅して久しいとあった。企業城下町だった自治体がその企業の撤退や衰退で低迷することは珍しくない。社会学でもそんな研究があった。

関西から比較的近いという地の利はあると思うが。鳥取大学の入学者で関西出身者の割合は少なくないようだ。鳥取大学は理系にシフトした国立大学で、工学部と農学部が同じキャンパス内にあるのが強みかもしれない。中山間地域向けスマート農法の開発で実績を挙げているとのこと。

なお、島根大学でも総合理工学部と生物資源科学部とで同様の研究は行われているとのこと。

ちなみに、スマート農業の本を読んだら、農家では普段の農作業のドキュメント化が進んでおらず、そこから手をつけないといけないとか何とか。高齢者はともかく今どきの人は中高年でもパソコン自体は使える人が多いのだけど、ドキュメント化を終えるだけでも数年ほどかかるとか。

|

非公開の飛雲閣の映像が流れる――NHKスペシャル「秀吉と京都の秘密 ~最新探査 豊臣家の興亡~」

NHKスペシャル「秀吉と京都の秘密 ~最新探査 豊臣家の興亡~」をNHK ONEで視聴する。聚楽第(じゅらくだい)というと番組中で登場した飛雲閣のことだと思い込んでいた。本願寺の飛雲閣は従来、聚楽第の遺構を移築したものと考えられてきたが、現在は近年発見された京都新城の遺構と考えられているらしい。昔、モノクロだけと写真でみて美しい建物だと思った。非公開だそうで、近くまで行ったけれど、壁で遮られて屋根のてっぺんがちょっと見える程度だったと記憶している。門扉は当時のものだったか、安土桃山時代の傾いたセンスだと思った。多分、京都駅から歩いて行ける範囲にあったのだろう。屋内の映像も流された。金閣寺や銀閣寺のようなイメージだったけれど建物の規模的にはもっと大きいようだ。

|

昔話の計量テキスト分析――金のなるエノキ

◆はじめに

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

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

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

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

◆ファイル

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

ダウンロード - ca_pb_021_goldenenoki.xlsx

ダウンロード - ca_pb_021_codingrules.txt

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

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

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

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

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

◆あらすじ

・「榎の実ならいで金がなる」(未来社『石見の民話』)
昔、二人の兄弟がいた。弟は横着者で、兄の財産を皆もって分家した。兄は年取った母を養わねばならないのに、財産は皆弟に取られて貧乏していたので、除夜がきても餅もつけない有様だった。弟は餅をたくさん搗いたが兄へはひとつもやらない。兄はせめて母だけでも餅を食べさせたいと思って弟のところへ餅をもらいに行った。弟の家ではたくさん餅を並べていたが、兄に一つでも食えとは言わない。自分で搗いて食べさせたらいいだろうと言ってくれようとしなかった。兄はすごすごと戻ってきたが、つくづく情けなくなって自分は年の暮れになっても餅さえよく搗かぬと言って杵を海に捨ててしまった。すると竜宮から使いが来て兄を竜宮へ連れていった。竜宮では唐金の馬を一匹くれた。そしてこの馬に一日を米を五合ずつ食べさせよ。五合しか食べさせてはいけないと言った。兄は喜んで馬を連れて帰ると、米を五合食べさせた。すると馬は金を一升ひった。そして毎日五合ずつ食べさせたので、まもなく沢山の金が貯まった。それを聞いて弟がやって来て、いい馬を貰ったそうだが兄弟の間柄だ、少し貸してくれないかと言った。兄は正月の餅をせめて母に食べさせたいと思って弟のところに貰いにいったが、一つもくれなかったと言って馬を貸さなかった。すると母がそれでは二日だけ貸してやらぬかと言ったので、とうとう馬を貸してやった。そして決して一日に米を五合しか食わせてはいけないぞと言った。弟は馬を連れて帰ると、欲張りだから一日に一升の米を食べさせた。すると馬はぽっくり死んでしまった。弟は馬を背戸の柿の木の根元へ埋めた。兄は弟がいつまで待っても馬を返さないので、馬を戻すように弟のところへやって来た。弟は馬は死んだから柿の木の根元へ埋めたと言った。兄はお前が米を余計に食わせたからだと言って、大層力を落として柿の木の根元に埋めてある馬を掘りあてて持って帰り、自分の家の背戸の畑へ埋めて、墓印に榎を一本植えておいた。ところが榎には葉が出ないで黄金がいっぱいついて出た。それで「これのお背戸の三つ又榎 榎の実ならいで金がなる」というのだそうだ。


・「金のなるエノキ」(偕成社『島根県の民話』)
昔、あるところに二人の兄弟がいた。弟は横着者で何もせず毎日ぶらぶらしてばかりだった。兄は働き者で朝から晩まで働いたので銭も貯まるし田畑もだんだんと沢山になった。ところで、弟は働かないので銭がない。そこで兄のところへ行ってすぐ返すからといい加減な嘘をついては兄から銭を借りていた。兄は人がいいので返してくれるなら貸してやろうと承諾した。だが、何年経っても弟は少しも銭を返さない。あまり貸しが溜まったので兄の方も自分の暮らしがだんだん困るようになってきた。そこで弟に返済を求めると、その内と全く取り合わなかった。そうする内に兄は本当に貧乏になってしまった。それに比べ弟の方はなんだかんだと兄から持っていった銭のおかげで大きな家を建て楽に暮らしていた。兄は年取った母親を養わなければならないから困ってしまった。もうすぐお正月が来るのに餅も搗けない。そこで弟の所に行って、餅を分けて貰えないだろうか。母親にも食べさせたいのだがと言ったが、弟は家は少ししか搗いてないから分けてあげるほど無いと断ってしまった。そう言いながら隣の部屋をみると沢山の餅があった。兄は家へ帰ってから、自分は正月の餅も搗けなくなってしまった。情けない。もう杵も要らないと海へ投げてしまった。その晩、竜宮からの使いの者と名乗ってきれいな女の人が兄の家へやってきた。今日、竜宮で餅つきをしようとしたら杵が折れてしまった。困っているところにあなたが杵を投げてくれた。おかげで餅つきができた。乙姫さまがあなたをお呼びするようにとのことでと告げて兄を竜宮へ連れていった。竜宮に行くと乙姫さまが出迎えた。そして大層ご馳走になり、魚たちの踊りや歌も見せてくれた。帰るときに乙姫さまは唐金の馬を一匹くれた。この馬に毎日米を五合ずつやると、お金を一升出す。けれども、あまり沢山食べさせると馬が死んでしまうから気をつけろ。くれぐれもお米をたくさんやるなと教えてくれた。兄は喜んで馬を連れ帰った。そうして毎日米を五合やっては金を一升出させた。そうしたらだんだん金持ちになった。ところで、金持ちになった兄をみた弟はこっそり兄の家を外から見ておった。そうしたら黄金の馬に米を食べさせると銭が出てくるのだから自分も欲しくなった。それで、あくる日、兄の家へ行ってひとつその馬を貸してくれないかと頼んだ。すると、人のいい兄はいいけれども一日に米を五合しか食わしてはいけないぞ。余計に食わせたら死んでしまうぞとよくよく教えてやった。弟は喜んで唐金の馬を連れて帰った。初めは教えられた通り五合ずつ米を食わせておったが、その内もっと余計に銭を出させようと思って米を一升ほど食わせた。そうしたら、馬は苦しんでぽっくり死んでしまった。やれやれ、これはつまらないと弟は背戸の柿の木の根元へ唐金の馬を埋めてしまった。兄は幾ら待っても弟が馬を返してくれないので弟の所へ行った。すると、死んだのであそこの柿の木の下に埋めてしまったと弟はそっぽを向いてしまった。兄は大層力を落として柿の木の根元にあった馬を掘り出し持って帰ると、自分の家の背戸に埋めた。そしてその上にエノキを植えた。そうしたら、どうしたことか、そのエノキには葉が出ないで小金が鈴なりに成っていた。それでいつの間にか「これのお背戸の 三またエノキ えの実ならいで 金がなる」と誰もが言うようになった。


◆コーディングルール

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

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

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

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

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

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

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


*正月
正月 or ( 年 and 暮れ )
*五合
'五合'
*金
金 or 黄金 or 銭
*一升
'一升'
*返す
返す or 戻す or 返済
*榎
榎 or 'エノキ'
*実
実 or 葉

*ない
ない
*ぬ

*ん

*るな
'るな'
*るまい
'るまい'

*弟

*横着
横着
*兄

*財産
財産
*分家
分家
*母

*貧乏
貧乏
*餅

*杵

*海

*竜宮
竜宮
*馬

*一日
一日
*米

*貸す
貸す
*死ぬ
死ぬ
*埋める
埋める
*借りる
借りる
*乙姫
乙姫
*いける
いける


◆共起ネットワーク

・[コーディング単位]を[H5]に設定する。

※[描画する共起関係(edge)の選択]で「係数」を「0.2」から「0.3」に修正する。
※[強い共起関係ほど濃い線に]にチェックを入れる。

Jaccard係数が0.3以上はかなり強い共起関係にあることを示しているが、分析対象となる元データの文字数が少ないため係数が高めに出てしまう傾向にあるため、こうしている。

※Jaccard係数は共起関係(※ある言葉に続いて出てくる関係)の強さを表し 0≦係数≦1 の範囲の値をとる。

【Jaccard係数】
・0.1 →関連あり
・0.2 →強い関連あり
・0.3以上 →とても強い関連あり
※ただし、あくまで目安であって絶対ではない。

共起ネットワーク

ざっと確認したところ、共通するキーワードが中央のサブグラフ(バブルが島状に集まった一塊)に表示され、類話によって異なるキーワードがそれぞれのサブグラフとして周辺に表示される形となっている。

※なお、各バブル間の距離や配置に意味はない。

◆対応分析

・[コーディング単位]を[H5]に設定する。

※[外部変数]は[タイトル]のまま続行。
※[差異が顕著なコードを分析に使用]で上位「40」とした。また[バブルプロット]にチェックを入れている。これらは文字の重なりを極力避けるためである。
※文字が重なって読みづらい場合、オプション画面の[コード選択]で不要なコードのチェックを外してもよい。

対応分析

x、y軸上の原点(0.0)から点線が伸び交差した箇所が原点となる。原点から離れるほど特徴的なキーワードだと分析される。

原点付近に「竜宮」「兄」「弟」といったキーワードが多数プロットされている。未来社版では「母」「財産」「分家」といったキーワードが離れてプロットされている。偕成社版では「乙姫」「借りる」「るな」が原点から離れた特徴的なキーワードとされている。

◆解釈

いずれもほぼ同じ内容であるが、偕成社版では元は裕福だった兄が弟の所為で貧しくなっていく様子が描かれている。その後の展開はほぼ同じである。禁止を意味する「るな」が対応分析で特徴的なキーワードとして抽出されたのが目立つところか。

◆階層的クラスター分析

・[コーディング単位]を[文]に変更、実行するとデンドログラム(樹状図)で可視化される。

※キーワード指定しても可。

階層的クラスター分析・デンドログラム(樹状図)
階層的クラスター分析・デンドログラム(樹状図)

概ねストーリーに沿った内容でクラスター化されている。

※当ブログの場合、[コーディング単位]が[段落][H5]だと、コードを全て選択するとエラーが返される結果となった。

◆クロス集計

・[コーディング単位]を[文]に変更、[集計]する。

※「タイトル」で集計をかけた。

クロス集計

クロス集計をかけたところ、「母」「馬」といったキーワードでカイ(χ)2乗値で相関関係を示す結果(※マーク)が得られた。

クロス集計・バブルマップ

マップとして描画したところ、「母」というキーワードの残差が大きく(濃く)表示される結果となった。バブルとしては「弟」「兄」「馬」が大きく描画された。

◆KWICコンコーダンス

現状ではテキストマイニングのツールに文脈を読む性能はないため実際に該当箇所を読んで人力で判断する他ない。KWICコンコーダンスでキーワード指定すれば指定したキーワードがどのような文脈で用いられているか一覧で抽出される。

KWICコンコーダンス
KWICコンコーダンス・文書表示

◆関連語検索

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

関連語検索

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

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

関連語検索

◆属性の転倒

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

N 抽出語 品詞 全体 共起 Jaccard
1 名詞C  23 (0.307)  12 (0.522) 0.3529
2 名詞C  27 (0.360)  10 (0.435) 0.25
3 名詞C  12 (0.160)  7 (0.304) 0.25
4 言う 動詞  13 (0.173)  7 (0.304) 0.2414
5 搗く 動詞  6 (0.080)  5 (0.217) 0.2083
6 名詞C  9 (0.120)  4 (0.174) 0.1429
7 食べる 動詞  11 (0.147)  4 (0.174) 0.1333
8 少し 副詞  3 (0.040)  3 (0.130) 0.1304
9 貸す 動詞  5 (0.067)  3 (0.130) 0.12
10 返す 動詞  5 (0.067)  3 (0.130) 0.12

・「ん」の結果上位一覧

N 抽出語 品詞 全体 共起 Jaccard
1 名詞C  4 (0.053)  2 (0.500) 0.3333
2 捨てる 動詞  1 (0.013)  1 (0.250) 0.25
3 取る 動詞  1 (0.013)  1 (0.250) 0.25
4 除夜 名詞  1 (0.013)  1 (0.250) 0.25
5 年の暮れ 名詞  1 (0.013)  1 (0.250) 0.25
6 貧乏 サ変名詞  1 (0.013)  1 (0.250) 0.25
7 戻る 動詞  1 (0.013)  1 (0.250) 0.25
8 有様 名詞  1 (0.013)  1 (0.250) 0.25
9 横着 形容動詞  2 (0.027)  1 (0.250) 0.2
10 名詞C  2 (0.027)  1 (0.250) 0.2

善良な兄が杵を竜宮に献上したところ、お礼に金をひる馬を得た。が、横着な弟に貸したところ、米を過剰に食べさせ死なせてしまう………といった粗筋となっている。

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

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

・[馬|米五合:糞/黄金]
・[馬|米一升:生/死]
・[榎|馬:葉/黄金]

こういった風にお話を転がしていると分析できる。死んだ馬を埋葬して榎を植えたところ、「葉/黄金」と転倒する。

◆類似度行列

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

関連語検索

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

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

◆多次元尺度構成法

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

多次元尺度構成法

弟が過剰な米を馬に食べさせる粗筋に関連したキーワードを指定したところ、「るな」「金」がやや離れた位置にプロットされた。

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

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

◆自己組織化マップ

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

自己組織化マップ

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

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

◆トピックの推定

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

トピックの推定

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

トピックの推定

◆ベイズ学習による分類

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

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

ベイズ学習による分類

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

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

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

◆参考文献
・『日本の民話 34 石見篇』(大庭良美/編, 未来社, 1978)pp.137-139.
・『島根県の民話 やまたのおろちほか』(日本児童文学者協会/編, 偕成社, 2000)pp.99-105.
・『動かして学ぶ!はじめてのテキストマイニング』(樋口耕一, ナカニシヤ出版, 2022)
・『社会調査のための計量テキスト分析 【第2版】 内容分析の継承と発展を目指して』(樋口耕一, ナカニシヤ出版, 2020)

|

2026年3月29日 (日)

昔話の計量テキスト分析――とりつくひっつく

◆はじめに

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

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

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

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

◆ファイル

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

ダウンロード - ca_pb_020_tottsukuhittsuku.xlsx

ダウンロード - ca_pb_020_codingrules.txt

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

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

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

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

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

◆あらすじ

・「とりつこうかひっつこうか」(未来社『石見の民話』)
昔、あるところに爺さんと婆さんがいた。爺さんは山へ木こりに行った。婆さんは後から弁当を持っていった。松の木原を通りかかると「とりつこうかひっつこうか」と声がした。恐ろしくなった婆さんは急いで爺さんのところへ行った。帰りはどうしようかと婆さんが言うと「とりつかばとりつけ、ひっつかばひっつけ、黄金、白金、大判も小判もひっつけ」と言えと教えた。そこで婆さんが帰りに松の木原を通りかかると「とりつこうかひっつこうか」と声がしたのでは婆さんは爺さんに聞いた通りに言った。そうしたら大判、小判、白金が手も足も動かないほどに引っ付いた。婆さんはうんうん唸って家に戻って、身体にひっついた黄金、白金、大判、小判をむしりとって大金持ちになった。これを隣の婆さんが聞いて、隣の爺さんを無理やり山へ木こりにやった。そして後から弁当を持っていった。松の木原を通りかかると「とりつこうかひっつこうか」と声がした。帰りにまた声がした。隣の婆さんは「とりつかばとりつけ、ひっつかばひっつけ」と言った。すると隣の婆さんの身体に松やにが一杯引っ付いた。そこへ六部さんが通りかかった。隣の婆さんがうんうん唸っているので具合が悪いのか訊いたところ、「具合どころではない。松やにだらけで手も足も動かされん」と言った。そこで六部さんがこの松やにを取るには家へ帰って大火を焚いて焙れと言った。そこで隣の婆さんは家へ帰って大火を焚いて焙った。そうしたら、隣の婆さんの身体に火がついて、隣の婆さんは焼け死んだ。人まねをして欲張るものではない。


・「とっつかばとっつけ」(日本標準『島根のむかし話』)
昔々、あるところに爺さんと婆さんが暮らしていたそうな。この二人は心のよい人たちだった。爺さんが毎日山へ仕事に出かけると、婆さんは爺さんの弁当を持って後から行くことにしていた。ある日、婆さんがいつものように弁当を持って山へ行くと、どこからか「とっつかかあ、ひっつかかあ」という声がした。婆さんはおかしなこともあるものだと思ったが、「とっつかば、とっつけ。ひっつかば、ひっつけ」と言った。そうしたら上の方から沢山のむかごが跳んできて婆さんの身体にひっついた。婆さんは喜んでむかごを袋の中に入れ、爺さんのところに行って事の次第を話した。婆さんは家へ帰って早速むかご飯をこしらえて二人で食べた。このことを聞いた隣の欲張り婆さんが隣の爺さんにお前も早く山へ上がれ。後から弁当を持っていくからと急き立てて山へ行かせた。隣の婆さんが後から弁当を持って山に上がると、「とっつかかあ、ひっつかかあ」と声がした。婆さんはすぐに「とっつかば、とっつけ。ひっつかば、ひっつけ」と大声で言った。そうしたら、あちこちの松の木からべたべたと松やにが落ちてきた。これはいかんと逃げようとしたが、松やにが固くなって動けなくなってしまった。


・「取りつく引っつく」(ハーベスト出版『夕陽を招く長者』)
ある日のこと、爺さんは山へ木こりに行っていた。婆さんは後から弁当を持っていった。そうしたら、山が「ひっつこうかい、もっつこうかい」と言った。婆さんはどう言えばいいか分からなかったので黙って通って、爺さんの所へ行って先ほどの件を話したら、「それなら『ひっつくなら、ひっつけ。もっつくなら、もっつけ』と言ってやればいい」と言ってくれたので、今度は帰るときにそこを通ったら、やはり山が「ひっつこうかい、もっつこうかい」と言った。それで婆さんは「ひっつくなら、ひっつけ。もっつくなら、もっつけ」と言ったら、まかごが一杯引っ付いた。それで婆さんは喜んで家へ持って帰ってまかご飯を炊いた。爺さんも山から帰ってきて、これは美味しいと食べた。それで隣にもあげた。そうしたら隣の爺さんと婆さんが美味しかったものだから真似をして「まかごを家にも貰ってこよう」と相談して、「爺さん、山へ行きなさい。自分が後から弁当を持っていくから」と言って爺さんを先に行かせて、婆さんが弁当をこしらえて持っていったら、やはり山が「ひっつこうかい、もっつこうかい」と言った。隣の婆さんは真似をして黙って通って隣の爺さんの所へ行って同じことを聞いたら「『ひっつくなら、ひっつけ。もっつくなら、もっつけ』と言ってやれ」と同じことを言った。それで帰っていたら山がまた「ひっつこうかい、もっつこうかい」と言ったので、婆さんは「ひっつくなら、ひっつけ。もっつくなら、もっつけ」と言ったら今度は松やにが一杯引っ付いた。松やにだから家へ帰ってもごうとしてももげない。隣の爺さんが帰ってからもごうとしたが、やはりもげない。それで火を焚いて焙ってみたところ、火が松やにについてしまって焼け死んでしまった。人まねはするものでない。


◆コーディングルール

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

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

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

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

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

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

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


*大判小判
黄金 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コンコーダンスでキーワード指定すれば指定したキーワードがどのような文脈で用いられているか一覧で抽出される。

KWICコンコーダンス
KWICコンコーダンス・文書表示

◆関連語検索

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

関連語検索

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

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

関連語検索

◆属性の転倒

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

N 抽出語 品詞 全体 共起 Jaccard
1 人まね 名詞  2 (0.034)  2 (0.250) 0.25
2 松やに 名詞  8 (0.138)  2 (0.250) 0.1429
3 帰る 動詞  10 (0.172)  2 (0.250) 0.125
4 悪い 形容詞  1 (0.017)  1 (0.125) 0.125
5 具合 名詞  1 (0.017)  1 (0.125) 0.125
6 名詞C  1 (0.017)  1 (0.125) 0.125
7 固い 形容詞  1 (0.017)  1 (0.125) 0.125
8 訊く 動詞  1 (0.017)  1 (0.125) 0.125

・「ん」の結果上位一覧

N 抽出語 品詞 全体 共起 Jaccard
1 固い 形容詞  1 (0.017)  1 (0.500) 0.5
2 逃げる 動詞  1 (0.017)  1 (0.500) 0.5
3 動かす 動詞  1 (0.017)  1 (0.500) 0.5
4 動ける 動詞  1 (0.017)  1 (0.500) 0.5
5 名詞C  2 (0.034)  1 (0.500) 0.3333
6 名詞C  2 (0.034)  1 (0.500) 0.3333
7 松やに 名詞  8 (0.138)  2 (1.000) 0.25
8 言う 動詞  15 (0.259)  1 (0.500) 0.0625

隣の婆さんが人まねをして「とっつかばとっつけ」と言ったところ、むかごや大判小判ではなく松やにが身体について身動きできなくなってしまった。更にはそれを取り除こうとして隣の婆さんは焼け死んでしまう。

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

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

・[隣の婆さん|松やに:動ける/動けない]
・[隣の婆さん|火:生/死]

こういった風にお話を転がしていると分析できる。隣の婆さんは松やにが身体にくっついた結果、「動く/動けない」へと転倒し、更に「生/死」と転倒してしまう。

◆類似度行列

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

類似度行列

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

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

◆多次元尺度構成法

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

多次元尺度構成法

隣の婆さんが人まねをする粗筋に関連したキーワードを指定したところ、「動く」がやや離れた位置にプロットされた。

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

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

◆自己組織化マップ

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

自己組織化マップ

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

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

◆トピックの推定

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

トピックの推定

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

トピックの推定・文書検索

◆ベイズ学習による分類

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

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

ベイズ学習による分類

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

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

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

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

|

2026年3月28日 (土)

山陰道・三隅益田道路が開通

山陰道三隅・益田道路が開通 関係者が完成祝う 人流や物流の活発化に期待
https://www.sanin-chuo.co.jp/articles/-/975865

たとえば将来、江津駅から萩石見空港に直行するバス便が運行されたりするようになるのだろうか。利便性は増すが、JRが運行主体ならともかくスーパーおきやまつかぜと競合することになってしまうが。

 

島根西部巡る戦略不可欠 山陰道三隅・益田道路開通 観光誘客へ地区超え連携
https://www.sanin-chuo.co.jp/articles/-/975968

津和野は駅周辺に観光地のほとんどが固まっていたはずなので、特急列車でもいいいはずだとは思うが。

|

昔話の計量テキスト分析――手打ちか半殺しか

◆はじめに

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

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

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

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

◆ファイル

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

ダウンロード - ca_pb_019_teuchiorhangoroshi.xlsx

ダウンロード - ca_pb_019_codingrules.txt

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

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

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

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

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

◆あらすじ

※「鼻かけそうめん」は馬鹿婿話であり「手打ちか半殺しか」と異なる話だが、「手打ちか半殺しか」という点で同一性が見られるため比較対象とした。

・「鼻かけそうめん」(未来社『石見の民話』)
馬鹿聟が姑の家へ初めて呼ばれていった。姑の家ではそうめんをご馳走することにした。聟が見ていると、姑がそうめんが湯だったか箸に一本引っかけて頃合いを見ようとすると、つい鼻の上に落ちた。それを指で落として口に入れたので聟はそうめんはああして食べるものかと思った。そうめんのご馳走が出たので、一本すくい上げては鼻の上にのせ、それを口にかき込んで長い時間をかけて食べた。夕飯も済んだので、明日の朝はテウチ(手打ち:蕎麦)にしようか半殺し(ぼたもち)にしようかと相談されたので、聟はいつも女房を大事にしているのに、初めて来てテウチにされては困ると思って半殺しを望んでおいた。それから疲れたろうと蚊帳を吊って屏風を立てて床を敷いてお休みと言われた。聟が蚊帳の中に飛び込むと、屏風がくるりと廻った。屏風を右に回すと左があき、左へ廻すと右があいた。今度はまた蚊帳の中へ飛び込んで、また出て屏風を廻している内に夜が明けた。聟は朝は半殺しをするに違いない。昨夜も寝ずに廻り屏風に飛び込み蚊帳に、今朝は半殺しとは情けないと思って二階の庇に小さくなって隠れていた。姑は聟が寝床にいないので、どこへ行ったかと思って戸を開けると聟は庇に小さくなってガタガタ震えていた。そして半殺しはこらえてくださいと細い声で泣きながらいったので、そんなに嫌いなら食べなくてもよいと優しく言われて聟はようやく家へ入った。聟に昨夜はよく寝られたか姑が言うと、眠るどころか鼻かけそうめんに油をとられ、廻り屏風に引きずられ、蚊帳に出たり入ったり、半殺しは気にかかるし、眠れなかったと言ったので姑は何が何やらさっぱり分からない。娘よ、何か聞いてみよ。昔の者とは違うし、田舎にもこんな分からず屋がいるか。子供よりまだ酷いと姑が言ったので、女房が優しく尋ねると、来るまいと思っていたのに無理に行ってくれと連れてきて、鼻かけそうめんに油をとられ、廻り屏風に引きずられ、蚊帳に出たり入ったり、今朝は半殺しと言われたり、自分はこんな難儀とは知らずに寝ておられようか。思えば早く去にたくて庇の上に出て下ばかり見て夜を明かした。お前は親と組んで下の方から笑ったり、自分はおる気がしなかったと言って泣いた。それで女房も全く呆れて、それきり離縁してしまった。


・「手打ちか半殺しか」(日本標準『島根のむかし話』)
とんとん昔、越中富山の薬屋が隣村に行こうと思って山道を歩いていたら日が暮れてしまった。どこか家はないものかと行ったら向こうに灯りが見えた。急いで行って泊めてくれるよう頼んだ。出てきた婆さんがこんなきたない家でよければと承諾したので薬屋は喜んで家の中に入った。爺さんと婆さんのもてなしで夕飯を食べてから寝ることにした。山道に迷った疲れとご飯を腹いっぱい食べたのとですぐ寝てしまった。だいぶ寝てから隣の部屋から聞こえる話し声で目が覚めた。婆さんが爺さんに明日の朝のごちそうの相談をしていた。手打ちにするか半殺しにするか。これを聞いた薬屋はびっくりした。こんな家にいたら殺されてしまう。早く逃げなければ。そこで支度をしてそろりそろりと出かけようとした。すると隣の部屋からまだ夜は明けてない。ゆっくり休みなさいと爺さんが声をかけた。薬屋はどうすることもできなくなった。仕方なく、今あなた方の話を聞いていると手打ちにするとか半殺しにするとか話しているので恐ろしくなって逃げようとしたのだと答えた。すると爺さんと婆さんは大笑いして。それは自分たちが悪かった。この辺では蕎麦のことを手打ち蕎麦といい、ぼた餅のことを半殺しというのだ。明日の朝、あなたに何をごちそうしようかと話しておったところだと言ったので、薬屋も大笑いした。それで薬屋は安心してもう一回寝た。


・「手打ちか半殺しか」(ハーベスト出版『夕陽を招く長者』)
とんとん昔、越中富山の薬屋がこの辺りの村から村へ入ってきた。あるとき山道で行き暮れて宿を借りたいと歩いていたら灯りが見えた。やれ嬉しと一晩泊めてくれるよう頼み込んだところ、出てきた婆さんがこんな汚い家でもよければ泊まりなさいと言ってくれた。薬屋は旅の疲れがどっと出て、爺さん婆さんのもてなしに腹も膨れ、ぐっすり寝てしまった。夜中にボソボソ隣の部屋から聞こえる話し声で目が覚めた。爺さんと婆さんが明日の朝は手打ちにするか半殺しにするか相談していた。これを聞いた薬屋はびっくりしてしまった。えらいことだ。殺されてしまうから早く逃げようとそろりそろり身支度をして出かけようとしたところ、年寄りは耳ざとく、どこへ行くのか。まだ夜は明けていない。ゆっくり休みなさいと隣の部屋から爺さんが言った。薬屋はどうすることもできなくなって仕方なく今目が覚めてあなたたちの話が聞こえたが、手打ちにするとか半殺しにするとか恐ろしい話が聞こえたので逃げようとしたと言った。爺さん婆さんは大笑いした。それは自分たちが悪かった。この辺りでは蕎麦のことは手前で作るから手打ちという。ぼた餅のことは飯を半分くらい搗くと餡子がよくひっつくっから半殺しという。お客さんに何かごちそうしてあげたいから明日の朝飯を相談していたところだったと言ったので、薬屋も安心してもうひと寝入りした。


◆コーディングルール

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

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

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

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

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

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

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


*ご馳走
ご馳走 or ごちそう
*手打ち
手打ち or テウチ
*ぼた餅
ぼたもち or ぼた餅
*女房
女房 or 娘
*越中
越中 or 富山
*日没
( 日 and 暮れる ) 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コンコーダンスでキーワード指定すれば指定したキーワードがどのような文脈で用いられているか一覧で抽出される。

KWICコンコーダンス
KWICコンコーダンス・文書表示

◆関連語検索

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

関連語検索

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

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

関連語検索

◆属性の転倒

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

N 抽出語 品詞 全体 共起 Jaccard
1 半殺し 名詞  12 (0.200)  5 (0.385) 0.25
2 名詞C  9 (0.150)  4 (0.308) 0.2222
3 逃げる 動詞  4 (0.067)  3 (0.231) 0.2143
4 言う 動詞  10 (0.167)  4 (0.308) 0.2105
5 泣く 動詞  2 (0.033)  2 (0.154) 0.1538
6 恐ろしい 形容詞  2 (0.033)  2 (0.154) 0.1538
7 副詞可能  2 (0.033)  2 (0.154) 0.1538
8 仕方 ナイ形容  2 (0.033)  2 (0.154) 0.1538
9 分かる 動詞  2 (0.033)  2 (0.154) 0.1538
10 サ変名詞  2 (0.033)  2 (0.154) 0.1538

明日の朝は手打ちがいいか半殺しがいいかと相談され、酷い目に遭うのかと思ったら、朝食に蕎麦を出すかぼた餅を出すかといった話だった……といった粗筋となっている。

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

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

・[客人|朝:手打ち/蕎麦]
・[客人|朝:半殺し/ぼた餅]

こういった風にお話を転がしていると分析できる。聟ないし薬売りといった客人が「手打ちか半殺しか」と耳にするが、「手打ち/蕎麦」「半殺し/ぼた餅」と判明、「恐怖/安心」へと転倒する。

◆類似度行列

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

類似度行列

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

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

◆多次元尺度構成法

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

多次元尺度構成法

手打ちにするか半殺しにするか相談するのを耳にする粗筋に関連したキーワードを指定したところ、「逃げる」がやや離れた位置にプロットされた。

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

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

◆自己組織化マップ

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

自己組織化マップ

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

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

◆トピックの推定

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

トピックの推定

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

トピックの推定・文書検索

◆ベイズ学習による分類

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

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

ベイズ学習による分類

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

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

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

◆参考文献
・『日本の民話 34 石見篇』(大庭良美/編, 未来社, 1978)pp.289-291.
・『島根のむかし話』(島根県小・中学校国語教育研究会/編著, 日本標準, 1976)pp.126-128.
・「夕陽を招く長者 山陰民話語り部シリーズ1」(民話の会「石見」/編, ハーベスト出版, 2013)pp.41-42.
・『動かして学ぶ!はじめてのテキストマイニング』(樋口耕一, ナカニシヤ出版, 2022)
・『社会調査のための計量テキスト分析 【第2版】 内容分析の継承と発展を目指して』(樋口耕一, ナカニシヤ出版, 2020)

|

2026年3月27日 (金)

昔話の計量テキスト分析――そばの登城

◆はじめに

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

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

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

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

◆ファイル

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

ダウンロード - ca_pb_018_sobanotojo.xlsx

ダウンロード - ca_pb_018_codingrules.txt

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

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

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

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

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

◆あらすじ

・「そばの登城」(未来社『石見の民話』)
昔、津和野の城主亀井隠岐守の家中に豊田平内という百二十石取りの侍がいた。平内は蕎麦が大変好きだった。ある年の夏、用事があって供を一人連れて隣の長門国徳佐へ行った。津和野の町を出はずれると野坂の峠へ差しかかった。この峠は約一里半、片側は木がいっぱい茂り、片側は切り立った絶壁である。ちょうど夏の暑い日中のことで、しばらく登ると一人の樵夫がふんどし一つになって道ばたの木陰で昼寝をしていた。すると、さっと生臭い風が吹いて上から大きな蛇が下りてきて樵夫を頭から呑みはじめた。平内も供のものもびっくりした。あまり恐ろしいので身体がすくんで樵夫を助けることも逃げることもできない。ただ、物陰から様子を見ているばかりであった。その内に蛇は樵夫をすっかり呑み込んでしまった。大きな蛇ではあったが、なにしろ一人呑んだので腹がはち切れるばかりに膨らみ、いかにも苦しそうであった。しばらくすると蛇はするすると谷底へ下りていった。平内もようやく元気を出して、その跡をつけていった。蛇は谷底へ下りると水のほとりに茂っている青草を喰いはじめた。すると腹はだんだん小さくなって元のようになり、蛇はするすると山の中へ入って見えなくなった。平内はこれを見て、蛇の食べた草は腹がいっぱいになったときこれを治す神薬であろうと思って、そこらにある蛇が食べた草をとって、腰の印籠に入れた。それから峠を登り、徳佐へ行って用事を済ませて帰った。その年の大晦日になった。平内の家でも年越しの蕎麦を祝った。平内は大好きなので、歩くこともできないほど食べた。一夜明けると元旦である。平内はお正月のお礼にお城へ登らなければならないので麻上下をつけて御殿へ行ったが、まだ早いので誰も来ていない。そこで控えの間で待っていた。ところが昨晩の蕎麦が腹いっぱいで苦しくてたまらない。ふと思い出したのは印籠に入れておいた、野坂の峠の薬草のことであった。さっそく腰の印籠からつまみ出して一口頬張った。しばらくたって第二番目に登場した椋五郎左衛門が控えの間へ入って見ると、一人の侍が座っている。挨拶をしたがいっこうに返事がない。不思議に思ってよく見ると、九枚笹の定紋の麻上下をつけて、大小を差してきちんと座っているのは人間ではなくて蕎麦であった。大勢集まってよく調べてみると、神薬の効き目が強くて身体が溶け、蕎麦だけが残ったのだった。


・「そばの登城」(ハーベスト出版『夕陽を招く長者』)
昔、津和野の城主亀井隠岐守の家中に豊田平内という百二十石取りの侍がいた。平内はそばに目がない大変なそば好きであった。ある年の夏、用事があってとなりの長門国徳佐へ供を一人連れていくことになった。津和野の町を出て野坂の峠へ差しかかった。この峠は約一里半(六キロ)、片側は木が茂り、もう片側は切り立った絶壁である。夏の暑い日中のことで、しばらく登ると一人の木こりが道端の木陰で昼寝をしていた。すると、生臭い風が吹いて上の方から大きな蛇が下りてきて、寝ていた木こりを頭から呑みはじめた。平内も供の者もびっくりし、あまりの恐ろしさに身体がすくんで声も出ず、助けることも逃げることもできない。ただただ物陰から様子を見ているばかりであった。その内蛇は木こりをすっかり飲み込んでしまった。大きな蛇ではあったが、なにせ一人呑んだので腹ははち切れないばかりに膨らみ、いかにも苦しそうだった。しばらくすると蛇はするすると谷底へ下りていった。平内も気を取り直して蛇の後をつけて行った。蛇は谷底へ下りると水のほとりに茂っている青草を喰いはじめた。すると蛇の腹はだんだん小さくなって元のようになり、するすると山の中へ入って見えなくなった。平内はこれを見て、今、蛇の食べた青草は腹が一杯になったときに食べるとそれが治る神薬なのだなと思い、そこらにある青草をとって腰の印籠に入れた。それから峠を登り、徳佐へ行って用事を済ませて帰った。さて、その年の大晦日。平内の家でも年越しのそばで祝いをした。そば好きの平内は歩くこともできないほど腹いっぱい食べたのだった。一夜明けると元旦である。平内は正月のお礼にお城へ登らなくてはならないので麻裃をつけて御殿へ行ったが、まだ早かったので誰も来ていなかった。そこで控えの間で待っていた。ところが、昨晩のそばが腹いっぱいで苦しくてたまらない。ふと思い出したのは印籠に入れておいたあの野坂峠の薬草だった。あれを食べたら腹も楽になるだろうと腰の印籠からつまみ出してひと口頬張った。しばらく経って、二番目に登城した椋五郎左衛門が控えの間に入ってみると、一人の侍が座っている。挨拶をしたが返事がない。不思議に思ってよく見ると、麻裃をつけて大小の刀を差してきちんと座っていたのは人間ではなくそばだった。大勢集まってよく調べてみると、神薬の効き目が強くて身体が溶け、そばだけが残っていた。


◆コーディングルール

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

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

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

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

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

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

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


*平内
'平内'
*蕎麦
蕎麦 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)から点線が伸び交差した箇所が原点となる。原点から離れるほど特徴的なキーワードだと分析される。

未来社版、ハーベスト出版版ともほぼ同じ内容で、原点付近に「溶ける」「身体」他、キーワードが多数プロットされている。「ぬ」だけが原点から離れていて特徴的なキーワードとされている。

◆解釈

内容的にはほとんど相違がないため、上記のような結果となったと考えられる。「とろかし草」モチーフである。

◆階層的クラスター分析

・[コーディング単位]を[文]に変更、実行するとデンドログラム(樹状図)で可視化される。

※キーワード指定しても可。

Ca_pb_018_hca_sobanotojo
デンドログラム(樹状図)

概ねストーリーに沿った内容でクラスター化されている。

※当ブログの場合、[コーディング単位]が[段落][H5]だと、コードを全て選択するとエラーが返される結果となった。

◆クロス集計

・[コーディング単位]を[文]に変更、[集計]する。

※[クロス集計]の単位を「書名」に変更した。

クロス集計

クロス集計をかけたところ、カイ(χ)2乗値で相関関係を示す結果(※マーク)は得られなかった。

クロス集計・バブルマップ

マップとして描画したところ、「ぬ」といったキーワードの残差が大きく(濃く)表示される結果となった。バブルとしては「平内」「ない」「蛇」等が大きく描画された。

◆KWICコンコーダンス

現状ではテキストマイニングのツールに文脈を読む性能はないため実際に該当箇所を読んで人力で判断する他ない。KWICコンコーダンスでキーワード指定すれば指定したキーワードがどのような文脈で用いられているか一覧で抽出される。

KWICコンコーダンス
KWICコンコーダンス・文書表示

◆関連語検索

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

関連語検索

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

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

関連語検索

◆属性の転倒

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

N 抽出語 品詞 全体 共起 Jaccard
1 名詞C  4 (0.066)  4 (0.286) 0.2857
2 平内 固有名詞  15 (0.246)  5 (0.357) 0.2083
3 名詞C  7 (0.115)  3 (0.214) 0.1667
4 お礼 サ変名詞  2 (0.033)  2 (0.143) 0.1429
5 挨拶 サ変名詞  2 (0.033)  2 (0.143) 0.1429
6 恐ろしい 形容詞  2 (0.033)  2 (0.143) 0.1429
7 見える 動詞  2 (0.033)  2 (0.143) 0.1429
8 名詞C  2 (0.033)  2 (0.143) 0.1429
9 御殿 名詞  2 (0.033)  2 (0.143) 0.1429

・「ぬ」の結果上位一覧

N 抽出語 品詞 全体 共起 Jaccard
1 名詞C  1 (0.016)  1 (1.000) 1
2 びっくり サ変名詞  2 (0.033)  1 (1.000) 0.5
3 名詞C  2 (0.033)  1 (1.000) 0.5
4 恐ろしい 形容詞  2 (0.033)  1 (1.000) 0.5
5 助ける 動詞  2 (0.033)  1 (1.000) 0.5
6 逃げる 動詞  2 (0.033)  1 (1.000) 0.5
7 出る 動詞  3 (0.049)  1 (1.000) 0.3333
8 身体 名詞  4 (0.066)  1 (1.000) 0.25
9 平内 固有名詞  15 (0.246)  1 (1.000) 0.0667

腹いっぱい年越し蕎麦を食べた平内は大蛇が食べていた青草を腹ごなしに口にした。その後、他の侍が気づいたときには平内の身体は溶けて蕎麦となってしまっていた……といった粗筋となっている。

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

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

・[青草|平内:薬草/とろかし草]
・[平内|青草:身体/蕎麦]

こういった風にお話を転がしていると分析できる。平内は大蛇が食べた青草を腹ごなしの神薬と思ったが、その効能は「薬草/とろかし草」と転倒する。結果、蕎麦を腹いっぱい食べていた平内は「身体/蕎麦」と転倒してしまう。

◆類似度行列

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

類似度行列

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

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

◆多次元尺度構成法

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

多次元尺度構成法

平内が御殿で薬草を口にする粗筋に関連したキーワードを指定したところ、「腹」がやや離れた位置にプロットされた。

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

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

◆自己組織化マップ

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

自己組織化マップ

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

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

◆トピックの推定

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

トピックの推定

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

トピックの推定・文書検索

◆ベイズ学習による分類

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

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

ベイズ学習による分類

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

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

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

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

|

2026年3月26日 (木)

昔話の計量テキスト分析――呼び子

◆はじめに

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

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

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

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

◆ファイル

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

ダウンロード - ca_pb_017_yobiko.xlsx

ダウンロード - ca_pb_017_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)から点線が伸び交差した箇所が原点となる。原点から離れるほど特徴的なキーワードだと分析される。

原点付近に「息」「声」「死ぬ」「化物」といったハーベスト出版版のキーワードが多数プロットされている。未来社版の方が原点から離れているが、「木挽き」だけが特徴的なキーワードとされている。

◆解釈

内容的にはほとんど相違がないため、上記のような結果となったと考えられる。

◆階層的クラスター分析

・[コーディング単位]を[文]に変更、実行するとデンドログラム(樹状図)で可視化される。

※キーワード指定しても可。

デンドログラム(樹状図)
Ca_pb_017_hca_gs_yobiko

概ねストーリーに沿った内容でクラスター化されている。

※当ブログの場合、[コーディング単位]が[段落][H5]だと、コードを全て選択するとエラーが返される結果となった。

◆クロス集計

・[コーディング単位]を[文]に変更、[集計]する。

※[クロス集計]の単位を「書名」に変更した。

クロス集計

クロス集計をかけたところ、カイ(χ)2乗値で相関関係を示す結果(※マーク)は得られなかった。

クロス集計・バブルマップ

マップとして描画したところ、「返す」「連れ」というキーワードの残差が大きく(濃く)表示される結果となった。バブルとしては「呼ぶ」「木挽き」等が大きく描画された。

◆KWICコンコーダンス

現状ではテキストマイニングのツールに文脈を読む性能はないため実際に該当箇所を読んで人力で判断する他ない。KWICコンコーダンスでキーワード指定すれば指定したキーワードがどのような文脈で用いられているか一覧で抽出される。

KWICコンコーダンス
KWICコンコーダンス・文書表示

◆関連語検索

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

関連語検索

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

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

関連語検索

◆属性の転倒

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

N 抽出語 品詞 全体 共起 Jaccard
1 待つ 動詞  4 (0.103)  4 (0.333) 0.3333
2 呼び子 名詞  6 (0.154)  4 (0.333) 0.2857
3 呼ぶ 動詞  21 (0.538)  7 (0.583) 0.2692
4 名詞C  7 (0.179)  4 (0.333) 0.2667
5 負ける 動詞  7 (0.179)  4 (0.333) 0.2667
6 名詞C  8 (0.205)  4 (0.333) 0.25
7 戻る 動詞  3 (0.077)  3 (0.250) 0.25
8 帰る 動詞  5 (0.128)  3 (0.250) 0.2143

連れがなかなか戻ってこないため思わず呼んだところ、呼び子が応じてきた。呼び負けると死ぬというので夜が明けるまで必死で呼び返し続けたが、実は互いに呼び合っていただけだった……といったオチとなっている。

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

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

・[呼び子|負ける:生/死]
・[連れ|帰還:呼び子/連れ]
・[呼び子|夜明け:化物/ヒト]

こういった風にお話を転がしていると分析できる。呼び子に呼び負けることで「生/死」と転倒されてしまう。が、連れが戻ってきたことで「呼び子/連れ」と転倒する結果となった。

◆類似度行列

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

類似度行列

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

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

◆多次元尺度構成法

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

多次元尺度構成法

木挽きが呼び子と夜を徹して呼び合う粗筋に関連したキーワードを指定したところ、「連れ」「夜」がやや離れた位置にプロットされた。

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

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

◆自己組織化マップ

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

自己組織化マップ

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

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

◆トピックの推定

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

トピックの推定

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

トピックの推定・文書検索

◆ベイズ学習による分類

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

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

ベイズ学習による分類

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

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

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

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

|

2026年3月24日 (火)

昔話の計量テキスト分析――汗かき地蔵

◆はじめに

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

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

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

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

◆ファイル

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

ダウンロード - ca_pb_016_asekakijizo.xlsx

ダウンロード - ca_pb_016_codingrules.txt

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

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

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

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

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

◆あらすじ

・「汗かき地蔵」(未来社『石見の民話』)
木ノ口に小さなお堂があって、お地蔵さまが祀ってある。壇の向こうに胸から上が見えているが、蓮台の上に地から立っておられるのだから、高さが二メートルもある大きなお地蔵さまである。顔や胸の方は真っ黒くすすけているが、下は真っ白い花崗岩で、衣の襞なども実に立派に掘ってある。このお地蔵さまは昔この上にあった宝泉寺の門のところにあったもので、紀伊国から来られたものだった。宝泉寺が脇本へ移るとき、お地蔵さまも一緒に持っていこうとしたが、お地蔵さまは何人かかっても動かすことができない。それで伺ってみると、どうしても脇本へは行かぬと言われるので、少し上へあげて祀ろうということにした。すると、お地蔵さまは軽々と動かされて、誰か一人で今のところへ背負っていったということである。このお地蔵さまはたいそう霊験あらたかで、昔から村に何か変わったことがある時は、汗をかいて知らされた。汗というのは首から上だけであるが、数珠の玉よりももっと大きな汗が目も口も分からないほどどんどん流れるのであった。あるとき村の人が皆でお堂へお参りに行っていると、急にお地蔵さまの顔の様子が変わって、みるみるうちに汗が流れ出た。お地蔵さまが汗をかいていらっしゃると言って村の人たちが一生懸命拝むと、その内に汗が止んだ。その後で村の人がもの知りにみてもらうと、この先村に悪い風邪が流行る。それには一命を落とす人があるかもしれないから気をつけるがよいと言うことであった。ところが一人変わった男がいて、村の人が皆お地蔵さまのところへ集まっているところへ酔っ払ってきて、そんな馬鹿なことがあるもんか。あるものならわしにその風邪をつけてみるがよいと言っていばった。ところがその男はあくる日山から頭痛がするといって帰ったが、酷い熱が出て、生きたり死んだり十四五日も患った。男は人に知られないように、こっそりお地蔵さまに謝りにいって、こらえてもらったということであった。木ノ口の大庭新次郎さんは昭和十年頃六十を少し過ぎていたが、お地蔵さまが汗をかかれたのを三回見たといった。近ごろ汗をかかれたのは昭和九年の一月二十日で、大寒の入りであった。ちょうど宝泉寺の方丈も来ており、村の人も大勢集まっていたが、いきなり汗をかきはじめられたので、方丈が一心にお経を読むとしばらくして止んだ。その後で堂守の尼さんが、あんなに酷い汗をかかれたのだからお袈裟がびたびたに濡れているだろうと思って触ってみると、ちっとも濡れてはいなかったそうである。


・「あせかき地蔵」(日本標準『島根の伝説』)
今の鹿足郡日原町の木の口というところに、背丈二メートルはありそうな大きな地蔵が立っている。顔や胸は線香の煙で真っ黒になっているが、腰から下は衣のひだがはっきり分かるくらい見事に彫られている。この地蔵には次のような話が伝えられている。昔、この地蔵の下手の方に宝泉寺という寺があった。元々この地蔵はこの寺の山門にあった。ところが宝泉寺が他の土地へ移らなくてはならなくなった。そこで、この地蔵も一緒に移ることになった。ところが、何人掛かっても重くて持ち上げることができない。不思議なことがあるものだと男たちは和尚に訳を話した。和尚はじっと考え込んでいたが、やがて地蔵を手厚く祀ったらよかろうと言った。そこで村人たちはお経をあげて貰った。お経が済むと和尚はお地蔵様はこの土地が気に入っておられるようだが、ここは場所が悪いようだ。少し上の方にお移りください。そこへ移られてからまた改めてお祀りしましょうと言った。すると、あれほど重くて動かなかった地蔵が軽々と動かせたので、今の土地に移し賑やかにお祀りした。ところで、この地蔵は昔から不思議な力を持っていた。それは村に何か変わった出来事が起こるときには必ず顔に汗をかく。その汗も大粒の玉のような汗で目も口も分からぬほどどんどん出るのである。ある年のこと、村人たちがお参りしていると、急に地蔵の顔から汗がこぼれ出した。何かあるに違いない、驚いた村人たちは改めて地蔵を拝み直した。その内に汗は止まったのでホッと安心して帰った。後で村の物知りに話すと、それはきっとこの村に悪い病が流行り、死人が出ることがあるから気をつけよということだろうと言った。ところが、これを聞いた一人の男がそんな馬鹿なことがあるものか。もしもそれが本当ならその悪い病を自分にうつしてみるがいいと酒を飲んだ勢いで言った。あくる日のことである。今まで元気に山仕事をしていたその男は昼頃から急に熱を出し、体を動かすことができなくなった。それから十四、五日も高い熱が出て今にも死にそうなほど苦しんだ。男は地蔵の顔の汗を信じなかったことに気がついた。そしてふらつく体を起こし、やっとの思いで地蔵にお参りしてお詫びした。すると不思議にもあれほど高かった熱も下がり、やがて元の体に戻った。それからというもの、村人たちはますます地蔵を信心するようになった。毎月二十四日がこの地蔵の祭りである。特に八月二十四日は地蔵の供養日で沢山の人が今でもお参りしている。

◆コーディングルール

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

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

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

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

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

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

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


*木ノ口
'木ノ口'
*宝泉寺
'宝泉寺' or 寺
*脇本
'脇本'
*お経
お経 or 経
*風邪
風邪 or 病
*謝る
謝る or お詫び
*和尚
方丈 or 和尚

*ない
ない
*ぬ

*ん

*るな
'るな'
*るまい
'るまい'

*お堂
お堂
*地蔵
地蔵
*紀伊
紀伊
*動かす
動かす
*霊験
霊験
*汗

*顔

*お参り
お参り
*村

*男

*人

*頭痛
頭痛
*熱

*患う
患う
*大寒
大寒
*尼

*袈裟
袈裟
*日原町
日原町
*祀る
祀る
*変わる
変わる


◆共起ネットワーク

・[コーディング単位]を[H5]に設定する。

※[描画する共起関係(edge)の選択]で「係数」を「0.2」から「0.3」に修正する。
※[強い共起関係ほど濃い線に]にチェックを入れる。

Jaccard係数が0.3以上はかなり強い共起関係にあることを示しているが、分析対象となる元データの文字数が少ないため係数が高めに出てしまう傾向にあるため、こうしている。

※Jaccard係数は共起関係(※ある言葉に続いて出てくる関係)の強さを表し 0≦係数≦1 の範囲の値をとる。

【Jaccard係数】
・0.1 →関連あり
・0.2 →強い関連あり
・0.3以上 →とても強い関連あり
※ただし、あくまで目安であって絶対ではない。

共起ネットワーク

ざっと確認したところ、共通するキーワードが中央のサブグラフ(バブルが島状に集まった一塊)に表示され、類話によって異なるキーワードが周囲のサブグラフに表示される形となっている。ただし、日本標準版特有のサブグラフは検出されなかったようだ。

※なお、各バブル間の距離や配置に意味はない。

◆対応分析

・[コーディング単位]を[H5]に設定する。

※[外部変数]は[タイトル]のまま実行。
※[差異が顕著なコードを分析に使用]で上位「40」とした。また[バブルプロット]にチェックを入れている。これらは文字の重なりを極力避けるためである。
※文字が重なって読みづらい場合、オプション画面の[コード選択]で不要なコードのチェックを外してもよい。

対応分析

x、y軸上の原点(0.0)から点線が伸び交差した箇所が原点となる。原点から離れるほど特徴的なキーワードだと分析される。

今回、原点付近にはキーワードがプロットされていない。日本標準版の方が原点に近くプロットされており、「地蔵」「和尚」「汗」といったキーワードが見られる。未来社版の方が原点から離れており、「袈裟」「患う」「頭痛」といったキーワードが特徴的とされている。

◆解釈

内容的にはほとんど相違がなく、未来社版に戦前の逸話が記載されている程度である。

◆階層的クラスター分析

・[コーディング単位]を[文]に変更、実行するとデンドログラム(樹状図)で可視化される。

※キーワード指定しても可。

デンドログラム(樹状図)
デンドログラム(樹状図)

概ねストーリーに沿った内容でクラスター化されている。

※当ブログの場合、[コーディング単位]が[段落][H5]だと、コードを全て選択するとエラーが返される結果となった。

◆クロス集計

・[コーディング単位]を[文]に変更、[集計]する。

※「タイトル」のまま集計をかけた。

クロス集計

クロス集計をかけたところ、カイ(χ)2乗値で相関関係を示す結果(※マーク)は得られなかった。

クロス集計・バブルマップ

マップとして描画したところ、「人」というキーワードの残差が大きく(濃く)表示される結果となった。バブルとしては「地蔵」「汗」等が大きく描画された。

◆KWICコンコーダンス

現状ではテキストマイニングのツールに文脈を読む性能はないため実際に該当箇所を読んで人力で判断する他ない。KWICコンコーダンスでキーワード指定すれば指定したキーワードがどのような文脈で用いられているか一覧で抽出される。

KWICコンコーダンス
KWICコンコーダンス・文書表示

◆関連語検索

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

関連語検索

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

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

関連語検索

◆属性の転倒

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

N 抽出語 品詞 全体 共起 Jaccard
1 名詞C  7 (0.130)  3 (0.273) 0.2
2 重い 形容詞  2 (0.037)  2 (0.182) 0.1818
3 土地 名詞  3 (0.056)  2 (0.182) 0.1667
4 動かす 動詞  3 (0.056)  2 (0.182) 0.1667
5 宝泉寺 固有名詞  3 (0.056)  2 (0.182) 0.1667
6 名詞C  13 (0.241)  3 (0.273) 0.1429
7 移る 動詞  5 (0.093)  2 (0.182) 0.1429
8 副詞可能  6 (0.111)  2 (0.182) 0.1333

宝泉寺のお地蔵さんは別の場所に移転させようとしたら重くて動かなかったのだが、少し上に移すことにしたところ軽々と動いた。つまり「動かない→動く」で「否定から肯定へ」と属性が転倒している。

また、お地蔵さんの汗を悪い風邪の流行と解釈したところ、酒に酔った男が否定するが、その男自身が風邪に罹って苦しみ、こっそり謝って許してもらう。これも「否定から肯定へ」といった点で属性の転倒となっている。

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

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

・[地蔵|移転:動かない/動く]
・[男|汗の霊験:否定/肯定]

こういった風にお話を転がしていると分析できる。宝泉寺のお地蔵さんが汗をかくことで人々は将来を予知していた。「汗/予知」と転倒される。

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

◆類似度行列

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

類似度行列

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

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

◆多次元尺度構成法

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

多次元尺度構成法

地蔵が汗をかいて悪い風が流行るという噂を否定した男に関連したキーワードを指定したところ、「風邪」がやや離れた位置にプロットされた。

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

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

◆自己組織化マップ

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

自己組織化マップ

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

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

◆トピックの推定

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

トピックの推定

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

トピックの推定・関連語検索

◆ベイズ学習による分類

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

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

ベイズ学習による分類

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

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

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

◆参考文献

・『日本の民話 34 石見篇』(大庭良美/編, 未来社, 1978)pp.372-374.
・『島根の伝説』(島根県小・中学校国語教育研究会/編, 日本標準, 1978)pp.57-60.
・『動かして学ぶ!はじめてのテキストマイニング』(樋口耕一, ナカニシヤ出版, 2022)
・『社会調査のための計量テキスト分析 【第2版】 内容分析の継承と発展を目指して』(樋口耕一, ナカニシヤ出版, 2020)

|

2026年3月23日 (月)

益田市の柿本神社のご利益

変わるアクセス 萩・石見空港の追い風なるか <検証 つながる石央、石西 山陰道三隅・益田道路開通(上)>
https://www.sanin-chuo.co.jp/articles/-/972222

飛行機はほとんど利用しないけど、萩石見空港はまだ市街地に近い方ではある。福岡空港にはさすがに敵わないが。

観光面でいうと、益田には歌聖・柿本人麿公にちなんだ柿本神社が二社ある。昔は文才を授かるよう祈願に訪れる人も多かったと何かで読んだことがある。

……で、ご多分に漏れず僕も「文才を授かりますように」とお祈りしたのだけど、実態を知る人は激しく脱力するかもしれない。。。

|

昔話の計量テキスト分析――なれあい観音

◆はじめに

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

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

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

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

◆ファイル

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

ダウンロード - ca_pb_015_nareaikannon.xlsx

ダウンロード - ca_pb_015_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 弱る 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コンコーダンスでキーワード指定すれば指定したキーワードがどのような文脈で用いられているか一覧で抽出される。

KWICコンコーダンス
KWICコンコーダンス・文書表示

◆関連語検索

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

関連語検索

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

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

関連語検索

◆属性の転倒

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

N 抽出語 品詞 全体 共起 Jaccard
1 食べる 動詞  9 (0.231)  4 (0.444) 0.2857
2 下りる 動詞  2 (0.051)  2 (0.222) 0.2222
3 仕方 ナイ形容  2 (0.051)  2 (0.222) 0.2222
4 名詞C  2 (0.051)  2 (0.222) 0.2222
5 名詞C  2 (0.051)  2 (0.222) 0.2222
6 思う 動詞  3 (0.077)  2 (0.222) 0.2
7 名詞C  5 (0.128)  2 (0.222) 0.1667
8 言う 動詞  6 (0.154)  2 (0.222) 0.1538
9 名詞C  6 (0.154)  2 (0.222) 0.1538
10 お寺 名詞  1 (0.026)  1 (0.111) 0.1111

雪で閉じ込められて下山できなくなった坊さんは飢え死にを覚悟するが、その前に鹿が現れて……といった粗筋となっている。

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

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

・[坊さん|下山:できる/できない]
・[坊さん|肉:鹿/観音]

こういった風にお話を転がしていると分析できる。坊さんが食べて命を繋いだ肉は実はこけらで「鹿/観音」という転倒がなされる。

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

◆類似度行列

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

類似度行列

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

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

◆多次元尺度構成法

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

多次元尺度構成法

山寺で修行中の坊さんが雪で閉じ込められる冒頭の展開に関連したキーワードを指定したところ、「飢える」がやや離れた位置にプロットされた。

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

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

◆自己組織化マップ

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

自己組織化マップ

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

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

◆トピックの推定

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

トピックの推定

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

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

◆ベイズ学習による分類

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

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

ベイズ学習による分類

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

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

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

◆参考文献

・『日本の民話 34 石見篇』(大庭良美/編, 未来社, 1978)pp.352-353.
・『島根のむかし話』(島根県小・中学校国語教育研究会/編著, 日本標準, 1976)pp.227-229.
・『動かして学ぶ!はじめてのテキストマイニング』(樋口耕一, ナカニシヤ出版, 2022)
・『社会調査のための計量テキスト分析 【第2版】 内容分析の継承と発展を目指して』(樋口耕一, ナカニシヤ出版, 2020)

|

2026年3月22日 (日)

昔話の計量テキスト分析――牛鬼

◆はじめに

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

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

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

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

◆ファイル

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

ダウンロード - ca_pb_014_ushioni.xlsx

ダウンロード - ca_pb_014_codingrules.txt

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

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

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

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

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

◆あらすじ

※みずうみ書房からは二話採用した。その内、政五郎の話だけ内容が異なるが、濡れ女が登場する点では共通性があるため類話として分析対象とした。

・「牛鬼」(未来社『石見の民話』)
昔、那賀郡の浅利村に神主がいた。ある晩一人で海へ夜釣りに行ったが、とてもよく釣れるので一生懸命に釣っていた。すると髪も着物もびしょ濡れになった女が赤児を抱いて出てきた。神主がびっくりしていると、この子に食べさせるから魚を一尾くれと言った。神主が一尾やると赤児はむしゃむしゃと頭から尻尾まで骨ごとみんな食べてしまった。そうしてもう一尾、もう一尾というのでやる内に籠の中の魚は一尾もなくなった。すると女は今度は、お腰のものをと言った。この女に言われるとどうしても嫌ということが出来ない。神主は仕方がないので腰の脇差しを抜いてやると赤児はそれもパリパリと食べてしまった。びっくりしていると、女はちょっとこの児を抱いてとってくれといって赤児を神主に渡すと海に入っていった。神主はその間に釣り道具を投げ捨てて駆けだしたが、抱かされた赤児は石になってどうしても離れない。その内に女が後ろから追いかけてきた。神主は一生懸命走ったが女はだんだん間を縮めてくる。そして既に手が届きそうになったとき、前の方から何か光るものが矢の様に飛んできて女の頭へグサリと突き刺さった。女はそれで足を止めたので、神主はようやくのことで自分の家の前まで逃げてくると、そこには心配そうに妻が待っていた。神主の妻は夫が釣りに出た後で縫い物をしていた。すると神主の居間にある二本の刀の中で、どれか一本シャンシャンと音を立ててしきりに鳴るものがある。不思議なことなので、もしか夫の身の上に何か変わったことがあるのではないかと心配して外へ出てみた。その時表の戸を開けると一本の脇差しがひとりでに鞘を抜け出して戸の間を飛鳥のように通り抜け、海の上の方へ飛んでいった。不思議なこともあるものだと妻はますます心配になって、そのまま戸の外へ立っていたところだった。明くる朝神主は村の人たちと昨夜女の出てきたところへ行ってみた。すると磯のほとりに血の流れた跡があったが、女も脇差しも見えなかった。多分女は頭に刀を突き刺したまま海の中へ入っていったものだろうと皆は話した。


・「牛鬼という化けもの」(ハーベスト出版『夕陽を招く長者』)
昔、石見の国の海辺には奇妙な恐ろしい化物が出て夜釣りをする人に襲い掛かると言われていた。那賀郡浅利(現・江津市浅利町)に釣り好きの神主がいた。ある晩一人で夜釣りに出かけた。その夜はよく釣れて大層喜んでいた。そこへ赤児を抱いたびしょ濡れの女が現れた。この子に食べさせる魚を一匹くれと凄みのある声で言った。しまった、濡れ女だ。神主は仕方なく魚を一匹やると、赤児は頭から尻尾までバリバリと食べてしまった。もう一匹、もう一匹とせがまれ、逃げ帰ろうとする神主に女はちょっとこの子を抱いとってくれと言って赤児を神主に渡すと海に入っていった。神主は釣り道具も何も投げ捨てて駆けだしたが、抱かされた赤児は石のように重くどうしても手から離れてくれない。そのとき後ろの方から何やら追いかけてくる牛のような化物が神主めがけて突進してきた。追い詰められた神主は絶体絶命のとき最後の手段に一心こめて神を呼んだ。すると、暗闇の中から一筋の光が飛んできた。後ろで凄まじい悲鳴が起こり、牛鬼がドドッとのめった。そのとき赤児が手から離れ身軽になった神主は九死に一生を得た気持ちで家に辿り着いてみると、門の脇に妻が心配顔で待っていた。訊くと、留守中に不思議なことがあったという。家の中に入ってみると、床の間にあるはずの刀掛には鞘が残っているのみ。いつものように神主の帰りを待ちながら縫物をしていた妻は床の間の刀がシャンシャンと不思議な音をたて鳴りやまないことに胸騒ぎを覚え、立ち上がって戸を開けたとたんに刀はひとりでに表の闇へ飛び出ていった。翌朝、神主は村人たちと一緒に昨夜のところへ出かけてみた。波打ち際まで血の流れた跡が続いていた。化物はどうにか海へ戻っていったものであろうと思われたが、刀はどこにも見当たらず、村人たちは神主だからこそご無事であったと頷きあった。


・「牛鬼」(みずうみ書房『日本伝説大系』第十一巻)
釣り好きの浅利の神主が夜釣りに行った。すると、濡れ女が赤児を抱いて現れ、この子に食べさせる魚を一匹くれと言った。やると赤児は魚の頭から尻尾まで全部食べて、もう一匹くれと更に要求した。結局、かごの魚を全部食べてしまい、次に腰のものをくれと脇差を所望した。魔力にかかった神主は拒みきれずに渡してしまうと、赤児はそれも食べてしまった。濡れ女は次にこの子を抱いてくれと渡して海中に消えた。神主はその隙に釣り道具を捨てて駆けだしたが、赤児は石となって手から離れない。後ろからは牛鬼が追ってくる。一方、神主の家では刀架けにある二本の刀のうち一本がシャンシャンと鳴り出した。妻が夫の身に変わったことでもあるのではないかと外に出ようと戸を開けた途端、鞘から抜け出した刀が海辺の方へと飛び出し、神主に追いついた牛鬼の頭に突き刺さり、そのためか、牛鬼も追ってこなくなり、赤児も消え、神主は家に帰ることができた。翌朝、神主が村人と共に昨夜の場所に行ってみると、浜辺に血の流れた跡があり、牛鬼と脇差はともに行方不明となっていた。おおかた、牛鬼は頭に刀をたてたまま海へ逃げたのであろうということになった。


・「牛鬼」(みずうみ書房『日本伝説大系』第十一巻)
石見の牛鬼は海の中から夜出るものと伝えられ、日中は姿を見せないと信じられている。明治の少し前の話。大田市大田の新市(雪見町)に中屋政五郎という染物屋の職人がいた。魚釣りが道楽で毎晩のように家から八キロもある静間の魚津の海岸に行き糸を垂れていた。この魚津という所は人里離れた淋しい所だが、魚釣りに夢中で政五郎は一人で夜釣りをしていても淋しくとも何ともなかった。しかし、その頃の石見の海岸には牛鬼が出ると言われ、政五郎は年寄りから牛鬼が現れたときはどうしたらよいか色々と注意を聞かされていた。その牛鬼が出る前には必ず海から濡れそぼった女が赤児を抱いて出てくる。そして濡れ女は人に対してちょっとこの児を抱いてくれと言う。だが、その時に手袋を手にはめるか、履いているアシナコ(草履の一種)を手にはめ、それに粘りつかせて一緒に投げ出さないと命が危ないという。政五郎はかねて年寄りからこの話を聞かされていたが、馬鹿馬鹿しいことと思って気にもとめず夜になると釣りに出ていた。ある夜、例によって一人で魚津へ行った。この夜は朧月夜だった。月の沈む頃には少し風が出たが、魚がたくさん釣れるので帰らずにいた。だんだん夜が更け風も止むと、魚は一向に釣れなくなったので、もう帰ろうかと思っているところに海の中から赤児を抱いた濡れ女が現れ、傍へ寄ってきて小声でちょっと抱いてくれと囁いた。政五郎はかねて聞かされていた通り、履いていたアシナコを脱いで手に着せて赤児を受け取った。そして濡れ女が海へ消え込んでから、この際にと手のものを投げ棄てて一所懸命に走り出した。余りにも危険が迫っていたので、後から追いかけてくる怪物の正体を見届けるだけの心の余裕はない。ただ、真っ黒い大きい体とらんらんと光る眼が目に留まっただけだった。政五郎は走り続けて海岸から五、六百メートルも来ると、一軒の家があって幸いまだ起きていたので飛び込んで訳を話して堅く戸を締めさせ奥の押入れに匿ってもらった。しばらくすると牛鬼がやって来て、その家の周りをぐるぐると駆け回ってから、ああ取り逃がして残念だと言って去っていった。その声は全く濡れ女の声そっくりだったと政五郎は言っていた。それにしても、家の周りを駆け巡る荒々しい蹄の音や激しい呼吸にすっかり怯えてか、政五郎はそれきり釣りを止めてしまった。


◆コーディングルール

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

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

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

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

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

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

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


*浅利村
'浅利村' or 浅利
*夜釣り
夜釣り or 釣り
*濡れ女
女 or '濡れ女'
*赤児
'赤児' or 児 or 子
*刀
'脇差し' or 刀 or 脇差
*突き刺さる
突き刺さる or 突き刺す
*磯
磯 or 海辺
*村人
( 村 and 人 ) or 皆 or 村人 or ( 村 and 者 )
*一匹
一匹 or 一尾
*光
光 or 光る
*牛鬼
'牛鬼'
*縫物
縫物 or 縫い物
*暗闇
暗闇 or 闇
*政五郎
'政五郎'
*魚津
'魚津'
*アシナコ
'アシナコ'

*ない
ない
*ぬ

*ん

*るな
'るな'
*るまい
'るまい'

*神主
神主
*海

*魚

*石

*家

*妻

*戸

*鞘

*飛ぶ
飛ぶ
*血

*石見
石見
*化物
化物 or 怪物
*神

*朝

*手


◆共起ネットワーク

・[コーディング単位]を[H5]に設定する。

※[描画する共起関係(edge)の選択]で「係数」を「0.2」から「0.3」に修正する。
※[強い共起関係ほど濃い線に]にチェックを入れる。

Jaccard係数が0.3以上はかなり強い共起関係にあることを示しているが、分析対象となる元データの文字数が少ないため係数が高めに出てしまう傾向にあるため、こうしている。

※Jaccard係数は共起関係(※ある言葉に続いて出てくる関係)の強さを表し 0≦係数≦1 の範囲の値をとる。

【Jaccard係数】
・0.1 →関連あり
・0.2 →強い関連あり
・0.3以上 →とても強い関連あり
※ただし、あくまで目安であって絶対ではない。

共起ネットワーク

ざっと確認したところ、共通するキーワードが中央のサブグラフ(バブルが島状に集まった一塊)に表示され、類話によって異なるキーワードが周囲のサブグラフに表示される形となっている。

※なお、各バブル間の距離や配置に意味はない。

◆対応分析

・[コーディング単位]を[H5]に設定する。

※[外部変数]は[書名]に変更して実行。
※[差異が顕著なコードを分析に使用]で上位「40」とした。また[バブルプロット]にチェックを入れている。これらは文字の重なりを極力避けるためである。
※文字が重なって読みづらい場合、オプション画面の[コード選択]で不要なコードのチェックを外してもよい。

対応分析

x、y軸上の原点(0.0)から点線が伸び交差した箇所が原点となる。原点から離れるほど特徴的なキーワードだと分析される。

原点付近には「濡れ女」「魚」「赤児」といったキーワードが多数配置されている。未来社版では「一匹」「朝」といったキーワードが特徴的とされている。ハーベスト出版版では「暗闇」「神」「子供」が特徴的とされている。みずうみ書房版では「政五郎」「アシナコ」といったキーワードが特徴的とされている。

◆解釈

浅利の神主が夜釣りで濡れ女に遭遇する話はほぼ共通の内容となっている。この話は『まんが日本昔ばなし』でアニメ化されており、その際は浪人の侍に置き換えられている。政五郎が主人公の話だけ内容がやや異なっている。

◆階層的クラスター分析

・[コーディング単位]を[文]に変更、実行するとデンドログラム(樹状図)で可視化される。

※キーワード指定しても可。

デンドログラム(樹状図)
デンドログラム(樹状図)

概ねストーリーに沿った内容でクラスター化されている。

※当ブログの場合、[コーディング単位]が[段落][H5]だと、コードを全て選択するとエラーが返される結果となった。

◆クロス集計

・[コーディング単位]を[文]に変更、[集計]する。

※「タイトル」で集計をかけた。

クロス集計

クロス集計をかけたところ、「刀」「牛鬼」「政五郎」「神主」といったキーワードでカイ(χ)2乗値で相関関係を示す結果(※マーク)が得られた。

クロス集計・バブルマップ

マップとして描画したところ、「政五郎」というキーワードの残差が大きく(濃く)表示される結果となった。バブルとしては「濡れ女」「赤児」「神主」等が大きく描画された。

◆KWICコンコーダンス

現状ではテキストマイニングのツールに文脈を読む性能はないため実際に該当箇所を読んで人力で判断する他ない。KWICコンコーダンスでキーワード指定すれば指定したキーワードがどのような文脈で用いられているか一覧で抽出される。

KWICコンコーダンス
KWICコンコーダンス・文書表示

◆関連語検索

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

関連語検索

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

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

関連語検索

◆属性の転倒

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

N 抽出語 品詞 全体 共起 Jaccard
1 名詞C  18 (0.231)  7 (0.438) 0.2593
2 離れる 動詞  5 (0.064)  4 (0.250) 0.2353
3 神主 名詞  27 (0.346)  7 (0.438) 0.1944
4 駆けだす 動詞  3 (0.038)  3 (0.188) 0.1875
5 名詞C  3 (0.038)  3 (0.188) 0.1875
6 道具 名詞  3 (0.038)  3 (0.188) 0.1875
7 名詞C  6 (0.077)  3 (0.188) 0.1579
8 名詞C  9 (0.115)  3 (0.188) 0.1364
9 出る 動詞  11 (0.141)  3 (0.188) 0.125
10 抱く 動詞  11 (0.141)  3 (0.188) 0.125

磯で濡れ女に遭遇した神主は赤児を抱いてくれと言われる。魔性の力か断れず抱いてしまうが石のようになって離れなくなってしまう……といった粗筋となっている。

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

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

・[神主|赤児:放す/放れない]
・[濡れ女|海に入る:女/牛鬼]

こういった風にお話を転がしていると分析できる。神主は抱いた赤児が放れず牛鬼追いつかれそうになったところ、家伝の刀が飛んできて「危機/生還」と転倒する。

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

◆類似度行列

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

類似度行列

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

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

◆多次元尺度構成法

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

多次元尺度構成法

神主の危機を救う場面に関連したキーワードを指定したところ、「飛ぶ」「光」がやや離れた位置にプロットされた。

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

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

◆自己組織化マップ

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

自己組織化マップ

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

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

◆トピックの推定

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

トピックの推定

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

トピックの推定・関連語検索

◆ベイズ学習による分類

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

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

ベイズ学習による分類

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

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

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

◆参考文献

・『日本の民話 34 石見篇』(大庭良美/編, 未来社, 1978)pp.271-272.
・「夕陽を招く長者 山陰民話語り部シリーズ1」(民話の会「石見」/編, ハーベスト出版, 2013)pp.100-102.
・『日本伝説大系 第11巻 山陰(鳥取・島根)』(野村純一他, みずうみ書房, 1984)pp.222-224, 226-227.
・『動かして学ぶ!はじめてのテキストマイニング』(樋口耕一, ナカニシヤ出版, 2022)
・『社会調査のための計量テキスト分析 【第2版】 内容分析の継承と発展を目指して』(樋口耕一, ナカニシヤ出版, 2020)

|

2026年3月21日 (土)

昔話の計量テキスト分析――えんこうの石

◆はじめに

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

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

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

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

◆ファイル

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

ダウンロード - ca_pb_013_enkoishi.xlsx

ダウンロード - ca_pb_013_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 ( 命 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コンコーダンスでキーワード指定すれば指定したキーワードがどのような文脈で用いられているか一覧で抽出される。

KWICコンコーダンス
KWICコンコーダンス・文書表示

◆関連語検索

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

関連語検索

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

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

関連語検索

◆属性の転倒

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

N 抽出語 品詞 全体 共起 Jaccard
1 名詞C  5 (0.093)  4 (0.333) 0.3077
2 出る 動詞  6 (0.111)  4 (0.333) 0.2857
3 地名  2 (0.037)  2 (0.167) 0.1667
4 枕元 名詞  2 (0.037)  2 (0.167) 0.1667
5 持つ 動詞  3 (0.056)  2 (0.167) 0.1538
6 名詞C  3 (0.056)  2 (0.167) 0.1538
7 川岸 名詞  3 (0.056)  2 (0.167) 0.1538
8 帰る 動詞  5 (0.093)  2 (0.167) 0.1333

川岸に繋いでおいた馬を引きずり込もうとしたところ、逆に引っ張られてえんこうは頭の皿の水を失い力がでなくなってしまったところを見つかって散々な目に遭ってしまう……といった粗筋となっている。

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

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

・[えんこう|馬:引きずり込む/引きずられる]
・[えんこう|皿の水:たっぷり/喪失]

こういった風にお話を転がしていると分析できる。えんこうは再び河上家の主人に挑戦するも敗れ、二度と悪さをしないと約束させられる。「挑戦/約束」と転倒してしまう訳である。

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

◆類似度行列

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

類似度行列

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

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

◆多次元尺度構成法

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

多次元尺度構成法

河上家に残るえんこう石の由来に関連したキーワードを指定したところ、「角」がやや離れた位置にプロットされた。

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

◆自己組織化マップ

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

自己組織化マップ

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

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

◆トピックの推定

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

トピックの推定

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

トピックの推定・関連語検索

◆ベイズ学習による分類

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

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

ベイズ学習による分類

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

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

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

◆参考文献

・『日本の民話 34 石見篇』(大庭良美/編, 未来社, 1978)pp.268-270.
・『島根県の民話 県別ふるさとの民話(オンデマンド版)』(日本児童文学者協会/編, 偕成社, 2000)pp.192-196.
・『動かして学ぶ!はじめてのテキストマイニング』(樋口耕一, ナカニシヤ出版, 2022)
・『社会調査のための計量テキスト分析 【第2版】 内容分析の継承と発展を目指して』(樋口耕一, ナカニシヤ出版, 2020)

|

2026年3月20日 (金)

昔話の計量テキスト分析――姫逃池

◆はじめに

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

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

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

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

◆ファイル

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

ダウンロード - ca_pb_012_himenogaike.xlsx

ダウンロード - ca_pb_012_codingrules.txt

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

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

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

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

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

◆あらすじ

※角川書店『出雲・石見の伝説』は文芸として潤色されているように感じられたので対象から外した。

・「姫野の池」(未来社『石見の民話』)
三瓶山の麓に姫野の池という小さな池がある。ほとりにはカキツバタが生えている。池の近くに長者がいて、お雪という娘がいた。薪を牛に載せて長者の家の前を通る若者がいた。娘と若者は互いに恋をした。その頃、野伏原に山賊がいたが長者の屋敷は襲わなかった。山賊の頭はお雪に目をつけていたのである。山賊の頭はある日屋敷を訪れてお雪を嫁に所望した。相手は山賊の頭で、お雪は若者と恋をしていたので長者は苦しんだ。長者はしばらく待って欲しいと答える。返事がないのに苛立った頭は手下を引き連れてお雪を奪いに長者の屋敷を襲った。そのことを知った若者は山刀をふるって山賊の群れに飛び込んだ。多勢に無勢で追われた若者は姫野の池のほとりまで来て斬り合ったが遂に斬り殺されてしまった。それを見たお雪は若者一人だけ死なせまいと池に身を投げた。池の底は深い泥で埋もれていたので娘が浮かび上がってくることはなかった。雨が降って昼と夜の気温の差の激しい夜には霧が池の辺りに下りてくる。そのときはお雪のすすり泣く声が聞こえるという。六月になると咲くカキツバタはお雪の生まれ変わりという。


・「カキツバタになったおゆき」(日本標準『島根の伝説』)
三瓶山の北の麓に長者原と呼ばれる所があるが、その昔、ここには長者がいたという。長者には美しい一人娘がいた。長者の屋敷の前を毎朝通りかかる若者がいた。牛に薪を積んで近くの村に売りに行くのだが、あるとき長者の娘の姿を認めた。思わず若者は立ち止まった。すると、そのとき牛が娘の方へ近づいていった。大人しい牛を娘も気に入った。それから若者と娘は仲よくなり将来を誓いあった。が、父の長者は貧しい若者が気に入らず、会うことを禁じてしまった。それから幾日か経った頃、粕渕近くの野伏原の山賊が長者の屋敷にやってきて、娘を山賊の頭の嫁にと求めてきた。こうなるのだったら、あの若者を婿にしておけばと長者は悔やんだが、後の祭り。何とか言い訳をして誤魔化していたが、次第に苛立った山賊は長者の屋敷を襲い、娘を奪おうとした。大騒動となった屋敷だが、あの若者が助太刀に駆けつけた。若者は奮戦、屋敷を離れたが、多勢に無勢、池のほとりで斬り殺されてしまった。陰から隠れて見ていた娘は若者一人だけを死なせるものかと山賊の手を振り切り、池の中に身を投じてしまった。それから何年か経った春のこと、池のほとりに三輪のカキツバタが咲いた。カキツバタは次第に数を増やしていった。きっと長者の娘の魂が花となって咲いたのだろう、人々はその池を姫逃池と呼ぶようなったという。


◆コーディングルール

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

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

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

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

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

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

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


*姫逃池
'姫野の池' or '姫逃池' or 池
*娘
娘 or 'お雪'
*屋敷
屋敷 or 家
*カキツバタ
カキツバタ or 花

*ない
ない
*ぬ

*ん

*るな
'るな'
*るまい
'るまい'

*三瓶山
三瓶山
*長者
長者
*牛

*若者
若者
*山賊
山賊
*嫁

*殺す
殺す
*身

*霧

*生まれ変わり
生まれ変わり
*助太刀
助太刀
*無勢
無勢
*魂


◆共起ネットワーク

・[コーディング単位]を[H5]に設定する。

※[描画する共起関係(edge)の選択]で「係数」を「0.2」から「0.3」に修正する。
※[強い共起関係ほど濃い線に]にチェックを入れる。

Jaccard係数が0.3以上はかなり強い共起関係にあることを示しているが、分析対象となる元データの文字数が少ないため係数が高めに出てしまう傾向にあるため、こうしている。

※Jaccard係数は共起関係(※ある言葉に続いて出てくる関係)の強さを表し 0≦係数≦1 の範囲の値をとる。

【Jaccard係数】
・0.1 →関連あり
・0.2 →強い関連あり
・0.3以上 →とても強い関連あり
※ただし、あくまで目安であって絶対ではない。

共起ネットワーク

ざっと確認したところ、共通するキーワードが中央のサブグラフ(バブルが島状に集まった一塊)に表示され、類話によって異なるキーワードが周囲のサブグラフに表示される形となっている。

※なお、各バブル間の距離や配置に意味はない。

◆対応分析

・[コーディング単位]を[H5]に設定する。

※[外部変数]は[書名]に変更して実行。
※[差異が顕著なコードを分析に使用]で上位「40」とした。また[バブルプロット]にチェックを入れている。これらは文字の重なりを極力避けるためである。
※文字が重なって読みづらい場合、オプション画面の[コード選択]で不要なコードのチェックを外してもよい。

対応分析

x、y軸上の原点(0.0)から点線が伸び交差した箇所が原点となる。原点から離れるほど特徴的なキーワードだと分析される。

原点付近には「カキツバタ」「姫逃池」「殺す」といったキーワードが多数配置されている。未来社版では「生まれ変わり」「霧」といったキーワードが特徴的とされている。日本標準版では「助太刀」「魂」などが特徴的とされている。

◆解釈

どちらも大差なくほとんど同じ内容である。

◆階層的クラスター分析

・[コーディング単位]を[文]に変更、実行するとデンドログラム(樹状図)で可視化される。

※キーワード指定しても可。

デンドログラム(樹状図)
デンドログラム(樹状図)

概ねストーリーに沿った内容でクラスター化されている。

※当ブログの場合、[コーディング単位]が[段落][H5]だと、コードを全て選択するとエラーが返される結果となった。

◆クロス集計

・[コーディング単位]を[文]に変更、[集計]する。

※「タイトル」が長いため「書名」で集計をかけた。

クロス集計

クロス集計をかけたところ、カイ(χ)2乗値で相関関係を示す結果(※マーク)は得られなかった。

クロス集計・バブルマップ

マップとして描画したところ、「ない」「ぬ」といったキーワードの残差が大きく(濃く)表示される結果となった。バブルとしては「娘」「若者」等が大きく描画された。

◆KWICコンコーダンス

現状ではテキストマイニングのツールに文脈を読む性能はないため実際に該当箇所を読んで人力で判断する他ない。KWICコンコーダンスでキーワード指定すれば指定したキーワードがどのような文脈で用いられているか一覧で抽出される。

KWICコンコーダンス
KWICコンコーダンス・文書表示

◆関連語検索

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

関連語検索

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

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

関連語検索

◆属性の転倒

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

N 抽出語 品詞 全体 共起 Jaccard
1 襲う 動詞  3 (0.083)  2 (0.667) 0.5
2 引き連れる 動詞  1 (0.028)  1 (0.333) 0.3333
3 手下 名詞  1 (0.028)  1 (0.333) 0.3333
4 深い 形容詞  1 (0.028)  1 (0.333) 0.3333
5 名詞C  1 (0.028)  1 (0.333) 0.3333
6 名詞C  1 (0.028)  1 (0.333) 0.3333
7 浮かび上がる 動詞  1 (0.028)  1 (0.333) 0.3333
8 返事 サ変名詞  1 (0.028)  1 (0.333) 0.3333
9 埋もれる 動詞  1 (0.028)  1 (0.333) 0.3333
10 苛立つ 動詞  2 (0.056)  1 (0.333) 0.25
11 名詞C  2 (0.056)  1 (0.333) 0.25
12 奪う 動詞  2 (0.056)  1 (0.333) 0.25
13 野伏 名詞  2 (0.056)  1 (0.333) 0.25
14 屋敷 名詞  8 (0.222)  2 (0.667) 0.2222
15 長い 形容詞  5 (0.139)  1 (0.333) 0.1429
16 名詞C  5 (0.139)  1 (0.333) 0.1429
17 山賊 名詞  8 (0.222)  1 (0.333) 0.1
18 名詞C  8 (0.222)  1 (0.333) 0.1
19 名詞C  10 (0.278)  1 (0.333) 0.0833
20 長者 名詞  10 (0.278)  1 (0.333) 0.0833
21 名詞C  11 (0.306)  1 (0.333) 0.0769

親しい長者の娘が山賊に狙われたため、若者はたった一人で応援に駆け付けるものの、多勢に無勢、殺されてしまう。娘も跡を追って入水してしまう……といった粗筋となっている。

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

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

・[若者|救出:生/死]
・[娘|池:入水/浮かんでこない]

こういった風にお話を転がしていると分析できる。山賊に狙われた結果、若者と娘の運命は「生/死」と転倒してしまう。娘は「魂/カキツバタ」とも転倒する。

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

◆類似度行列

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

類似度行列

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

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

◆多次元尺度構成法

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

多次元尺度構成法

若者と娘との出会いに関連したキーワードを指定したところ、「牛」「若者」がやや離れた位置にプロットされた。

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

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

◆自己組織化マップ

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

自己組織化マップ

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

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

◆トピックの推定

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

トピックの推定

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

トピックの推定・文書検索

◆ベイズ学習による分類

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

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

ベイズ学習による分類

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

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

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

◆参考文献

・『日本の民話 34 石見篇』(大庭良美/編, 未来社, 1978)pp.24-25.
・『島根の伝説』(島根県小・中学校国語教育研究会/編, 日本標準, 1978)pp.89-96.
・『動かして学ぶ!はじめてのテキストマイニング』(樋口耕一, ナカニシヤ出版, 2022)
・『社会調査のための計量テキスト分析 【第2版】 内容分析の継承と発展を目指して』(樋口耕一, ナカニシヤ出版, 2020)

|

2026年3月19日 (木)

昔話の計量テキスト分析――犬島猫島

◆はじめに

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

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

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

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

◆ファイル

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

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

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

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

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

ダウンロード - ca_pb_011_nekoshimainushima.xlsx

ダウンロード - ca_pb_011_codingrules.txt

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

◆あらすじ

※角川書店『出雲・石見の伝説』は文芸として潤色されているように感じられたので対象から外した。

・「猫島犬島」(未来社『石見の民話』)
昔、聖武天皇の勅願によって日本全国に国分寺が建てられた。石見の国でも国分の丘に建てられたが、たいそう立派なもので、その甍の陰が遠く唐の国まで届いて田畑の陰となって作物を作る邪魔となった。そこで唐の国から一匹の赤い猫が日本へ渡って来て、国分寺を焼き払って陰を取り除こうと思って様子を窺っていた。ところが日本の犬がこれを嗅ぎだし、猫を見つけると一気にかみ殺そうと思って飛びかかった。びっくりした猫は逃げ出したが、追い詰められて畳ヶ浦の上の古登多加山から海へ飛び込んだ。犬も続いて飛び込んだが、寒中のことで、二匹とも凍え死んでそのまま二つの岩になった。これが猫島と犬島である。猫島、犬島は浜田市国府の畳ヶ浦にあって周囲四、五〇メートル、高さ三〇メートル、同じ様な大きさで海岸に近い方が犬島、遠い方が猫島である。


・「犬島・猫島」(日本標準『島根の伝説』)
遠い昔、今の浜田市国分町の金蔵寺の建っているところに石見国分寺があった。ところが、この伽藍の影が海を越えて唐の国まで達し、香煙も唐の空を覆ってしまった。唐の農民も漁民も不作や不漁に悩まされた。その声が領主に届き、領主は赤猫に石見国分寺を焼くことを命じた。赤猫は唐の農民や漁民に見送られて海へ飛び込むと、日本を目指して泳いでいった。幾日、幾月か後、赤猫は真冬の石見沖に着いた。隠岐の漁師に発見されて問われると、自らの目的を言った。怯えた漁師は赤猫はただの猫ではない。魔性の動物だと舟を急がせ浜に上がった。漁師は国分寺に走った。話を聞いた寺ではそれならこちらは犬を出して勝負させようとなって、石見きっての猛犬を戦わせることとなった。そうとは知らない赤猫は国分寺の威容に驚きどうしたものかと思案していたところ、石見の犬が突然襲い掛かった。赤猫は一瞬たじろいだが逆襲した。死闘は長く続いた。血だらけとなった赤猫は畳ヶ浦の古登多加山の断崖に追い詰められた。これまでと赤猫は海へ飛び込んだ。それを追って犬も勢い余って海へ落ちていった。寒中の海で二匹は凍え死んでいつの間にか二つの島となった。これが今も残っている犬島・猫島である。沖にある島が猫島で、陸に近い方が犬島である。


◆コーディングルール

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

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

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

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

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

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

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


*国分寺
国分寺 or 寺
*国府
国分 or 国府
*陰
陰 or 影
*畳ヶ浦
'畳ヶ浦'
*古登多加山
'古登多加山'
*猫島
'猫島'
*犬島
'犬島'
*岩
岩 or 島
*戦う
戦う or 死闘

*ない
ない
*ぬ

*ん

*るな
'るな'
*るまい
'るまい'

*石見
石見
*甍

*唐

*邪魔
邪魔
*猫

*日本
日本
*焼く
焼く
*犬

*殺す
殺す
*海

*凍える
凍える
*死ぬ
死ぬ
*伽藍
伽藍
*不作
不作
*不漁
不漁
*領主
領主
*漁師
漁師
*魔性
魔性


◆共起ネットワーク

・[コーディング単位]を[H5]に設定する。

※[描画する共起関係(edge)の選択]で「係数」を「0.2」から「0.3」に修正する。
※[強い共起関係ほど濃い線に]にチェックを入れる。

Jaccard係数が0.3以上はかなり強い共起関係にあることを示しているが、分析対象となる元データの文字数が少ないため係数が高めに出てしまう傾向にあるため、こうしている。

※Jaccard係数は共起関係(※ある言葉に続いて出てくる関係)の強さを表し 0≦係数≦1 の範囲の値をとる。

【Jaccard係数】
・0.1 →関連あり
・0.2 →強い関連あり
・0.3以上 →とても強い関連あり
※ただし、あくまで目安であって絶対ではない。

共起ネットワーク

ざっと確認したところ、共通するキーワードが中央のサブグラフ(バブルが島状に集まった一塊)に表示され、類話によって異なるキーワードが周囲のサブグラフに表示される形となっている。

※なお、各バブル間の距離や配置に意味はない。

◆対応分析

・[コーディング単位]を[H5]に設定する。

※[外部変数]は[書名]に変更して実行。
※[差異が顕著なコードを分析に使用]で上位「40」とした。また[バブルプロット]にチェックを入れている。これらは文字の重なりを極力避けるためである。
※文字が重なって読みづらい場合、オプション画面の[コード選択]で不要なコードのチェックを外してもよい。

対応分析

x、y軸上の原点(0.0)から点線が伸び交差した箇所が原点となる。原点から離れるほど特徴的なキーワードだと分析される。

原点付近には「畳ヶ浦」「猫島」「犬島」「唐」といったキーワードが多数配置されている。未来社版では「甍」「邪魔」といったキーワードが特徴的とされている。日本標準版では「領主」「焼く」「魔性」「不作」といったキーワードの他「漁師」「不漁」などが特徴的とされている。

◆解釈

どちらも大差なくほとんど同じ内容であり、ハーベスト出版版で赤猫を魔性の存在としているくらいか。

◆階層的クラスター分析

・[コーディング単位]を[文]に変更、実行するとデンドログラム(樹状図)で可視化される。

※キーワード指定しても可。

階層的クラスター分析
階層的クラスター分析

概ねストーリーに沿った内容でクラスター化されている。

※当ブログの場合、[コーディング単位]が[段落][H5]だと、コードを全て選択するとエラーが返される結果となった。

◆クロス集計

・[コーディング単位]を[文]に変更、[集計]する。

※「タイトル」で集計をかけた。

クロス集計

クロス集計をかけたところ、カイ(χ)2乗値で相関関係を示す結果(※マーク)は得られなかった。

クロス集計・バブルマップ

マップとして描画したところ、「陰」「畳ヶ浦」といったキーワードの残差が大きく(濃く)表示される結果となった。バブルとしては「猫」「国分寺」「犬」等が大きく描画された。

◆KWICコンコーダンス

現状ではテキストマイニングのツールに文脈を読む性能はないため実際に該当箇所を読んで人力で判断する他ない。KWICコンコーダンスでキーワード指定すれば指定したキーワードがどのような文脈で用いられているか一覧で抽出される。

KWICコンコーダンス
KWICコンコーダンス・文書表示

◆関連語検索

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

関連語検索

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

関連語検索

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

◆属性の転倒

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

N 抽出語 品詞 全体 共起 Jaccard
1 威容 名詞  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 思案 サ変名詞  1 (0.036)  1 (0.500) 0.5
6 襲う 動詞  1 (0.036)  1 (0.500) 0.5
7 知る 動詞  1 (0.036)  1 (0.500) 0.5
8 突然 副詞  1 (0.036)  1 (0.500) 0.5
9 石見 人名  2 (0.071)  1 (0.500) 0.3333
10 名詞C  8 (0.286)  2 (1.000) 0.25
11 漁師 名詞  3 (0.107)  1 (0.500) 0.25
12 名詞C  11 (0.393)  2 (1.000) 0.1818
13 名詞C  5 (0.179)  1 (0.500) 0.1667
14 国分寺 地名  6 (0.214)  1 (0.500) 0.1429

石見国分寺の甍の陰で唐の国の作物が育たなくなったため、猫が焼き払おうとやってくる。それを日本の犬が迎え撃つが、両者、冬の海に転落して岩となってしまう……といった粗筋となっている。

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

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

・[唐|作物:育つ/育たない]
・[犬と猫|闘争:生/岩]

こういった風にお話を転がしていると分析できる。犬と猫は互いに激しく争った結果、互いに「生/岩」と転倒してしまう。

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

◆類似度行列

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

類似度行列

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

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

◆多次元尺度構成法

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

多次元尺度構成法

「焼く」がやや離れた位置にプロットされているか。

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

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

◆自己組織化マップ

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

自己組織化マップ

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

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

◆トピックの推定

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

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

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

◆ベイズ学習による分類

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

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

ベイズ学習による分類

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

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

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

◆参考文献

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

|

2026年3月17日 (火)

入居率は伸び悩んでいるとのこと――西部工業団地

再エネ電力証書の購入補助 島根県、西部工業団地の進出企業に 負担大幅減で分譲促進
https://www.sanin-chuo.co.jp/articles/-/968016

入居率は
・江津地域拠点工業団地:66.0%
・石見臨空ファクトリーパーク:42.5%
と伸び悩んでいるとのこと。

年度末に三隅益田道路が遠田ICまで開通し、実質的に萩石見空港まで繋がるので、今後の入居率の改善は見込めるのではないか。

<追記>
斐川の新企業団地完成 出雲市、雇用増や若者定住へ
https://www.sanin-chuo.co.jp/articles/-/974633

三菱マヒンドラ農機の解散といった深刻な問題を抱えてはいるが、出雲地方の工業団地の入居率は順調らしい。

|

昔話の計量テキスト分析――河野十内

◆はじめに

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

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

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

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

◆ファイル

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

ダウンロード - ca_pb_010_junaikono.xlsx

ダウンロード - ca_pb_010_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 力持ち

*ない
ない
*ぬ

*ん

*るな
'るな'
*るまい
'るまい'

*鍋石
鍋石
*天狗
天狗
*倍

*留守
留守
*棒

*家

*普請
普請
*竹

*八幡
八幡
*萱

*広島
広島
*年貢
年貢
*縄

*柱

*木

*小屋
小屋
*町

*傷む
傷む
*漁山
漁山
*浅間
浅間
*うわばみ
うわばみ
*鉄砲
鉄砲
*蛇

*死骸
死骸
*金

*百姓
百姓
*堆肥
堆肥
*不浄
不浄
*無くなる
無くなる
*浜田
浜田
*弥栄
弥栄
*峠

*地蔵
地蔵
*山道
山道
*女

*子供
子供
*肝

*武士
武士
*退治
退治
*夜

*老人
老人
*化物
化物
*伊予
伊予
*豪族
豪族
*子孫
子孫
*刀


◆共起ネットワーク

・[コーディング単位]を[H5]に設定する。

※[描画する共起関係(edge)の選択]で「係数」を「0.2」から「0.3」に修正する。
※[強い共起関係ほど濃い線に]にチェックを入れる。

Jaccard係数が0.3以上はかなり強い共起関係にあることを示しているが、分析対象となる元データの文字数が少ないため係数が高めに出てしまう傾向にあるため、こうしている。

※Jaccard係数は共起関係(※ある言葉に続いて出てくる関係)の強さを表し 0≦係数≦1 の範囲の値をとる。

【Jaccard係数】
・0.1 →関連あり
・0.2 →強い関連あり
・0.3以上 →とても強い関連あり
※ただし、あくまで目安であって絶対ではない。

共起ネットワーク

ざっと確認したところ、十内自身は同じ人物であるものの話の内容が全く異なるため、中央のサブグラフ(バブルが島状に集まった一塊)に表示される共通のキーワードが少なく、周囲のサブグラフに表示される類話に特徴的なキーワードの方が多くなる形となっている。

※なお、各バブル間の距離や配置に意味はない。

◆対応分析

・[コーディング単位]を[H5]に設定する。

・文字が重なって読みづらいため、オプション画面の[コード選択]で不要と判断した一部コードのチェックを外した。

※[外部変数]は[書名]に変更して実行。
※[差異が顕著なコードを分析に使用]で上位「40」とした。また[バブルプロット]にチェックを入れている。これらは文字の重なりを極力避けるためである。
※文字が重なって読みづらい場合、オプション画面の[コード選択]で不要なコードのチェックを外してもよい。

対応分析

x、y軸上の原点(0.0)から点線が伸び交差した箇所が原点となる。原点から離れるほど特徴的なキーワードだと分析される。

原点付近には「十内」「鍋石」「漁山」といったキーワードが配置されている。これは十内が本来は鍋石に住む武士だったからだろう。未来社版では「奥さん」「堆肥」「不浄」「天狗」といったキーワードが特徴的とされている。日本標準版では「峠」「大入道」「峠」「斬る」などが特徴的とされている。

◆階層的クラスター分析

・[コーディング単位]を[文]に変更、実行するとデンドログラム(樹状図)で可視化される。

※キーワード指定しても可。

デンドログラム(樹状図)
デンドログラム(樹状図)

概ねストーリーに沿った内容でクラスター化されている。

※当ブログの場合、[コーディング単位]が[段落][H5]だと、コードを全て選択するとエラーが返される結果となった。

◆解釈

河野十内という登場人物は同一であるものの、かなり異なった内容となっている。本来は鍋石に住む浜田藩士だったらしいが、その伝説が変化して天狗に力を授かった力持ちと話が変化したようだ。

◆クロス集計

・[コーディング単位]を[文]に変更、[集計]する。

※「タイトル」で集計をかけた。

クロス集計

クロス集計をかけたところ、「大入道」「峠」「地蔵」といったキーワードでカイ(χ)2乗値で相関関係を示す結果(※マーク)が得られた。

クロス集計・バブルマップ

マップとして描画したところ、「大入道」と「斬る」、「峠」と「地蔵」といったキーワードの残差が大きく(濃く)表示される結果となった。バブルとしては「力持ち」「ない」等が大きく描画された。

◆KWICコンコーダンス

現状ではテキストマイニングのツールに文脈を読む性能はないため実際に該当箇所を読んで人力で判断する他ない。KWICコンコーダンスでキーワード指定すれば指定したキーワードがどのような文脈で用いられているか一覧で抽出される。

KWICコンコーダンス
KWICコンコーダンス・文書表示

◆関連語検索

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

関連語検索

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

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

関連語検索

◆属性の転倒

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

N 抽出語 品詞 全体 共起 Jaccard
1 地蔵 名詞  8 (0.160)  2 (0.333) 0.1667
2 まっすぐ 形容動詞  1 (0.020)  1 (0.167) 0.1667
3 化ける 動詞  1 (0.020)  1 (0.167) 0.1667
4 何事 名詞  1 (0.020)  1 (0.167) 0.1667
5 及ぶ 動詞  1 (0.020)  1 (0.167) 0.1667
6 急ぐ 動詞  1 (0.020)  1 (0.167) 0.1667
7 名詞C  1 (0.020)  1 (0.167) 0.1667
8 山道 名詞  1 (0.020)  1 (0.167) 0.1667
9 主人 名詞  1 (0.020)  1 (0.167) 0.1667
10 収める 動詞  1 (0.020)  1 (0.167) 0.1667
11 村人 名詞  1 (0.020)  1 (0.167) 0.1667
12 名詞C  1 (0.020)  1 (0.167) 0.1667
13 逃げ帰る 動詞  1 (0.020)  1 (0.167) 0.1667

同一人物の異伝の比較だが、内容が大幅に異なるため、錯綜した結果となっている。

日本標準版では、峠に大入道が出るため通行できなくなっていたのを河野十内という侍が斬ったところ、地蔵ごと斬ってしまった……といった粗筋となっている。

未来社版では、十内の怪力ぶりを知った力持ちたちが挑戦してくるがとても敵わないと退散してしまう。

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

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

・[十内|峠:通れない/通れる]
・[力持ち|十内:挑戦/退散]
・[十内|不浄:怪力/喪失]

こういった風にお話を転がしていると分析できる。未来社版の十内は堆肥に触れた結果、怪力を「得る/喪失」と転倒させてしまう。

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

◆類似度行列

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

類似度行列

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

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

◆多次元尺度構成法

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

多次元尺度構成法

十内が本来は浜田藩に仕える武士であることに関連したキーワードを指定すると、全体的に離れた位置にプロットされた。なお、「伊予」「豪族」は除外される結果となった。

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

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

◆自己組織化マップ

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

自己組織化マップ

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

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

◆トピックの推定

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

トピックの推定

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

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

◆ベイズ学習による分類

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

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

ベイズ学習による分類

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

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

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

◆参考文献

・『日本の民話 34 石見篇』(大庭良美/編, 未来社, 1978)pp.297-299.
・『島根の伝説』(島根県小・中学校国語教育研究会/編, 日本標準, 1978)pp.183-186.
・『動かして学ぶ!はじめてのテキストマイニング』(樋口耕一, ナカニシヤ出版, 2022)
・『社会調査のための計量テキスト分析 【第2版】 内容分析の継承と発展を目指して』(樋口耕一, ナカニシヤ出版, 2020)

|

2026年3月16日 (月)

昔話の計量テキスト分析――おいせ島

◆はじめに

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

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

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

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

◆ファイル

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

ダウンロード - ca_pb_009_oiseoftakashima.xlsx

ダウンロード - ca_pb_009_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 'いせ島'
*石見船歌
'石見船歌'

*ない
ない
*ぬ

*ん

*るな
'るな'
*るまい
'るまい'

*高島
高島
*津田
津田
*嫁ぐ
嫁ぐ
*周囲
周囲
*泳ぐ
泳ぐ
*波

*土田
土田
*死ぬ
死ぬ
*人

*鎌手
鎌手
*嫁

*婆さん
婆さん
*達者
達者
*休む
休む
*秋風
秋風
*大波
大波
*浜

*泣く
泣く


◆共起ネットワーク

・[コーディング単位]を[H5]に設定する。

※[描画する共起関係(edge)の選択]で「係数」を「0.2」から「0.3」に修正する。
※[強い共起関係ほど濃い線に]にチェックを入れる。

Jaccard係数が0.3以上はかなり強い共起関係にあることを示しているが、分析対象となる元データの文字数が少ないため係数が高めに出てしまう傾向にあるため、こうしている。

※Jaccard係数は共起関係(※ある言葉に続いて出てくる関係)の強さを表し 0≦係数≦1 の範囲の値をとる。

【Jaccard係数】
・0.1 →関連あり
・0.2 →強い関連あり
・0.3以上 →とても強い関連あり
※ただし、あくまで目安であって絶対ではない。

共起ネットワーク

ざっと確認したところ、共通するキーワードが中央のサブグラフ(バブルが島状に集まった一塊)に表示され、類話によって異なるキーワードが周囲のサブグラフに表示される形となっている。

※なお、各バブル間の距離や配置に意味はない。

◆対応分析

・[コーディング単位]を[H5]に設定する。

※[外部変数]は[書名]に変更して実行。
※[差異が顕著なコードを分析に使用]で上位「40」とした。また[バブルプロット]にチェックを入れている。これらは文字の重なりを極力避けるためである。
※文字が重なって読みづらい場合、オプション画面の[コード選択]で不要なコードのチェックを外してもよい。

対応分析

x、y軸上の原点(0.0)から点線が伸び交差した箇所が原点となる。原点から離れるほど特徴的なキーワードだと分析される。

原点付近には「おいせ」「三周」「高島」「暗礁」といったキーワードが配置されている。未来社版では「死ぬ」「嫁ぐ」といったキーワードが特徴的とされている。日本標準版では「石見船歌」「鎌手」「婆さん」「大波」「浜」などが特徴的とされている。

◆解釈

類話といっても基本的な内容はほぼ同じである。むしろ『まんが日本昔ばなし』でアニメ化された際の解釈と比較させた方が面白い結果となったかもしれない。

◆階層的クラスター分析

・[コーディング単位]を[文]に変更、実行するとデンドログラム(樹状図)で可視化される。

 デンドログラム(樹状図)

デンドログラム(樹状図)

※キーワード指定しても可。

概ねストーリーに沿った内容でクラスター化されているが、「達者」「石見船歌」「死ぬ」が結び付けられている。「死ぬ」と「達者」なら分かるが、「石見船歌」は解釈に苦しむ。

※当ブログの場合、[コーディング単位]が[段落][H5]だと、コードを全て選択するとエラーが返される結果となった。

◆クロス集計

・[コーディング単位]を[文]に変更、[集計]する。

※「タイトル」で集計をかけた。

クロス集計

クロス集計をかけたところ、カイ(χ)2乗値で相関関係を示す結果(※マーク)は得られなかった。

クロス集計・バブルマップ

マップとして描画したところ、「一里」といったキーワードの残差が大きく(濃く)表示される結果となった。バブルとしては「おいせ」「島」が大きく描画された。

◆KWICコンコーダンス

現状ではテキストマイニングのツールに文脈を読む性能はないため実際に該当箇所を読んで人力で判断する他ない。KWICコンコーダンスでキーワード指定すれば指定したキーワードがどのような文脈で用いられているか一覧で抽出される。

KWICコンコーダンス
KWICコンコーダンス・文書表示

◆関連語検索

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

関連語検索

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

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

関連語検索

◆属性の転倒

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

N 抽出語 品詞 全体 共起 Jaccard
1 泳ぐ 動詞  14 (0.269)  4 (0.364) 0.1905
2 思い 名詞  3 (0.058)  2 (0.182) 0.1667
3 帰る 動詞  4 (0.077)  2 (0.182) 0.1538
4 思う 動詞  5 (0.096)  2 (0.182) 0.1429
5 ため息 サ変名詞  1 (0.019)  1 (0.091) 0.0909
6 哀れ 名詞  1 (0.019)  1 (0.091) 0.0909
7 組織名  1 (0.019)  1 (0.091) 0.0909
8 泳ぎ 名詞  1 (0.019)  1 (0.091) 0.0909
9 名詞C  1 (0.019)  1 (0.091) 0.0909
10 隔てる 動詞  1 (0.019)  1 (0.091) 0.0909
11 帰れる 動詞  1 (0.019)  1 (0.091) 0.0909

日本海の孤島に嫁いだおいせは海が隔てて容易に里帰りできないため望郷の念が募る。泳いで帰ろうとしたが途中で力尽きてしまう……といった粗筋となっている。

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

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

・[おいせ|実家:帰れない/帰る]
・[おいせ|渡海:生/死]

こういった風にお話を転がしていると分析できる。渡海を試みた結果、おいせの運命は「生/死」と転倒してしまう。

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

◆類似度行列

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

類似度行列

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

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

◆多次元尺度構成法

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

多次元尺度構成法

「休む」が離れた位置にプロットされている。「休む」は後に沖に出て暗礁に辿り着いた際にも用いられるからか。

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

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

◆自己組織化マップ

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

自己組織化マップ

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

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

◆トピックの推定

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

トピックの推定

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

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

◆ベイズ学習による分類

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

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

ベイズ学習による分類

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

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

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

◆参考文献

・『日本の民話 34 石見篇』(大庭良美/編, 未来社, 1978)pp.338-340.
・『島根の伝説』(島根県小・中学校国語教育研究会/編, 日本標準, 1978)pp.122-126.
・『動かして学ぶ!はじめてのテキストマイニング』(樋口耕一, ナカニシヤ出版, 2022)
・『社会調査のための計量テキスト分析 【第2版】 内容分析の継承と発展を目指して』(樋口耕一, ナカニシヤ出版, 2020)

|

2026年3月15日 (日)

昔話の計量テキスト分析――斎藤長者

◆はじめに

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

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

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

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

◆ファイル

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

ダウンロード - ca_pb_008_chojagahara.xlsx

ダウンロード - ca_pb_008_codingrules.txt

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

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

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

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

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

◆あらすじ

・「長者ガ原」(未来社『石見の民話』)
昔、高角の港が次第に繁華になってきた頃、この地方に名を知られた斎藤忠右衛門という長者がいた。数十町歩に渡る広い田を持っていたが、その田植えは一日で済ませるのが毎年の例であった。万寿三年の田植えの時、大勢の早乙女たちが一生懸命植えているところに猿回しが通りかかった。赤い着物を着て男の肩につかまっている猿を面白がって早乙女たちがしばらく手を休めたため、日はいつの間にか西に傾いたが、田植えはなかなか済みそうにない。早乙女たちは慌てて手を早めた。しかし、とうとう日が海の向こうに沈もうとする時になっても、まだ田植えは終わらなかった。そこへ長者が様子を見にやってきた。長者はまだ植え残された田が相当あるのを見ると、かんかんに怒った。斎藤長者の田植えは昔から一日で済ませることを忘れたのか、この上は長者の威勢を見せてやろうと言って、家に代々伝わる日の丸の扇をさっと開いて今にも海に半分ばかり沈んだ夕日に向かって二度三度差し招いた。すると不思議なことに夕日はぐんぐん後戻りをはじめて西の空高く登った。こうして再び日が沈む頃には田はきれいに植え終わった。その夜、にわかに激しい稲光りがして雷がとどろき酷い暴風雨となって一晩中荒れ狂い大津波となった。明くる朝、昨夜のことは嘘であったように真っ青な空に朝日が輝いたとき、豪華を極めた長者の屋敷も、昨日植えた数十町に渡る田もどこにも見えず、その辺りは一面の砂浜であった。この時津波によって運ばれた砂によってできた湖が蟠竜湖で、長者の屋敷のあった所は長者ガ原という地名になって残っているだけである。


・「斎藤長者」(日本標準『島根の伝説』)
万寿三年(一〇二六)五月のこと。益田地方は田植えの真っ盛りであった。あたり一帯の大長者、斎藤忠衛門の家でも二、三日前から大勢の人を使って田植えが始まった。そして、いよいよ今日一日で田植えが終わろうとしているときであった。遠くから猿回しの鉦、太鼓の音が聞こえてきた。そして調子面白く猿芝居をしてみせるものだから、早乙女たちは田植えをする手を休めて大笑い。とうとう一人、二人と道端へ座り込んで芝居見物となった。一幕が終わった頃、大旦那様がこちらへ来ると声がかかり、猿回しどころではなくなった。蜘蛛の子を散らすようにさっとめいめいの場所についた。早乙女たちは思い出したように田植え歌を歌って植えていく。大旦那こと斎藤長者が見回りにやって来た。ところが今年は例年になく田植えの進み具合が遅い。いつもならほとんど終わろうとしているのに、まだ広い田が二つも残っている。気性の荒い長者はいらいらして今日中に田植えを終えるよう叱咤しはじめた。休むことを知らぬように太鼓が鳴るのでもう田植え歌どころではなくなった。やっとのことで広い田んぼを一枚植え終わった。まだ、もう一枚残っている。それは田んぼの中でも一番広い田であった。太鼓打ちの年寄りが声を張り上げたがさすがの早乙女たちも疲れ切っていた。太鼓が鳴り出すと早乙女たちは気を取り直して植えだした。ところが半分も植え終わらないうちに日が西の海の方に落ちかけた。そして苗を植える手許の印が見えなくなってしまった。印が見えなくなっては田植えができない。長者は腰に差していた扇をぱらりと広げると、静かに海に沈もうとする太陽に向かって扇を差し招いた。すると不思議なことに暗かった田んぼの辺り一面が明るくなりだした。田植えは再開し、到底今日一日で終わらないだろうと思われた田植えがやっと済んだ。ところがその夜のこと。突然、大雨が降り出し風が吹きまくった。そして津波がやって来た。張り裂ける音とともに何十軒の家があっという間に呑み込まれてしまった。大雨は何日も降り続き、高津一帯は見る影もなく押し流された。やっと水が引くと見る影もなかった。斎藤長者の広い田んぼは今は全て石や岩の下だった。それどころか、長者が住んでいた辺りに大きな湖ができていた。これが今の蟠竜湖である。長者がお日さまを呼び戻したために天地が怒って津波を起こしたに違いないと生き残った人たちの間でささやかれた。あの広い田があった辺りを今でも長者が原と呼んでいる。この津波は今の益田地方を中心として西は山口県阿武郡から東は江津市辺りまで及んだと言われている。この津波によって益田の沖にあった鴨島が海中に沈んでしまったと言い伝えられている。

・「湖山長者」(みずうみ書房『日本伝説大系』)
昔々、鳥取の湖山という所に大層な長者があって、この長者の屋敷の高い所に登ってみると、どっちを向いて見ても、目に見える所は皆この長者の田んぼばかりという程の大分限者だった。この長者の田植えの時には大したもので、毎年、この広い田んぼをたったの一日だけで植えてしまうことになっていたから、働ける者はみんな長者の田に集まって、男衆は田をすく者、ならした田んぼの後から後から、女子衆が何十人もあっちの田、こっちの田と並んで植えていった。皆揃いの衣装を着て、新しい笠を被って、それは見事な賑やかな田植えだったそうだ。こうして毎年一日だけで済ませていた田植えが、ある年もうちょっとというところまでなったのに、お日さまが山に沈みそうになった。長者の旦那がこれを見て、これは田植えが二日もかかってはどうにもならないと思って、お城みたいな家の一番高い所に登って、金色の大きな扇を広げて、今沈みかけているお日さまを招いた。そうしたら今にも沈みかけそうになっていたお日さまがズルズルズルっと後戻りした。それで、残った田んぼも皆済んで、集まっていた人たちは長者の威光にびっくりしてしまった。その明くる朝、昨日、植えてしまった田んぼが、何と見渡す限り水浸しになっていた。びっくりした長者や村の者が出てみたら、水が張っているのではなく、それがまあ、深い深い大きな池になってしまっていた。


◆コーディングルール

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

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

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

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

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

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

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


*長者
長者 or 旦那 or 分限者
*広い
広い or '数十町' or ( 見渡す and 限り )
*田
田 or 田んぼ
*終える
終える or 済ませる or 済む
*猿回し
'猿回し' or '猿芝居' or 芝居
*日
日 or 'お日さま'
*蟠竜湖
'蟠竜湖'
*長者ガ原
'長者ガ原' or '長者が原'
*鴨島
'鴨島'
*湖山
'湖山'
*早乙女
早乙女 or '女子衆'
*男衆
'男衆'
*明くる朝
明 and くる 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コンコーダンスでキーワード指定すれば指定したキーワードがどのような文脈で用いられているか一覧で抽出される。

KWICコンコーダンス
KWICコンコーダンス・文書表示

◆関連語検索

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

関連語検索

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

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

関連語検索

◆属性の転倒

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

N 抽出語 品詞 全体 共起 Jaccard
1 地名  6 (0.097)  5 (0.357) 0.3333
2 田植え サ変名詞  19 (0.306)  7 (0.500) 0.2692
3 終わる 動詞  5 (0.081)  3 (0.214) 0.1875
4 見る 動詞  6 (0.097)  3 (0.214) 0.1765
5 名詞C  2 (0.032)  2 (0.143) 0.1429
6 名詞C  2 (0.032)  2 (0.143) 0.1429
7 思う 動詞  2 (0.032)  2 (0.143) 0.1429
8 名詞C  2 (0.032)  2 (0.143) 0.1429
9 済む 動詞  3 (0.048)  2 (0.143) 0.1333
10 旦那 名詞  3 (0.048)  2 (0.143) 0.1333

いつもなら一日で済ませていた田植えが終わらないため、長者は扇で沈みかけた夕陽を招き、その日の内に田植えを終わらせてしまうものの天の怒りを招き……といった粗筋となっている。

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

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

・[長者|田植え:終わらない/終わる]
・[扇|日:沈む/戻る]
・[長者|財産:田/池]

こういった風にお話を転がしていると分析できる。大田植えを強引に「終わらない/終わる」と転倒させた結果、その土地は「田/池」と転倒してしまう。

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

◆類似度行列

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

類似度行列

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

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

◆多次元尺度構成法

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

多次元尺度構成法

「後戻り」「早乙女」がやや離れた位置にプロットされている。

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

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

◆自己組織化マップ

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

自己組織化マップ

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

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

◆トピックの推定

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

トピックの推定

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

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

◆ベイズ学習による分類

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

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

ベイズ学習による分類

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

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

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

◆参考文献

・『日本の民話 34 石見篇』(大庭良美/編, 未来社, 1978)pp.341-342.
・『島根の伝説』(島根県小・中学校国語教育研究会/編, 日本標準, 1978)pp.50-56.
・『日本伝説大系 第11巻 山陰(鳥取・島根)』(野村純一他, みずうみ書房, 1984)pp.71-72.
・『動かして学ぶ!はじめてのテキストマイニング』(樋口耕一, ナカニシヤ出版, 2022)
・『社会調査のための計量テキスト分析 【第2版】 内容分析の継承と発展を目指して』(樋口耕一, ナカニシヤ出版, 2020)

|

2026年3月14日 (土)

追加で作成

追加したあらすじのコーディングルールを作成する。疲れた。このため、石央文化ホールで開催された吹奏楽コンサートには行けなかった。まあ、これでルーチンワーク化するところまでは何とか持ち込めたのではないか。

|

浜田地震――明治5年3月14日 M7.1

浜田市からのLINEによると、明治5年3月14日(旧暦2月6日)に浜田地震が発生したとのこと。マグニチュード7.1の大地震で県内で500名を超える死者が発生したとのこと。牛市踏切近くに碑が建っている。

|

2026年3月12日 (木)

あらすじを起こすのが一番の苦行

未来社『石見の民話』分析三周目、あらすじの追加作業を行う。考えが多少変わって、全く同じ話でなくとも似た話であれば採用と若干枠を広げた。結構な見落としがあった。

……結局のところ、このシリーズ、あらすじを起こすのが一番の苦行である。キーボード入力とはいえ自力で起こすので細部まで頭に叩き込まれるメリットはあるのだけど。読むだけだと意外と読み落としている。

|

2026年3月11日 (水)

あれから15年

東日本大震災からもう15年かと思う。当時、横浜にいて震度4強程度だったので大した被害はなかったのだけど。計画停電で若干寒い思いをした程度で済んでいる。

浜田も畳ヶ浦の断層の他、山間部にも断層があり、最大でM7クラスの大地震が起きる可能性はあるようだ。そうなると、震度6強~7クラスの地震が発生する可能性もなきにしもあらず。うちの建物は耐えられそうにないが。

|

2026年3月 9日 (月)

7話目でロールバック

未来社『石見の民話』分析三周目、7話目にしてロールバック作業を行う羽目となる。コーディング単位は「文」「段落」「H5」とあるのだけど、これまで固定するものとの思い込みがあった。

切り替えると、これまでエラーが出たりして上手くいかなかった処理が進むようになった。もう一年ほどあれこれやってるはずなのだけど、案外肝心なことに気づかないものだと思わされる。独習の弊害。

画像は大部分が差し替えとなった。文章も記述の修正が大量に発生した。7話ほどで気づいてよかったとも言える。

共起ネットワークと対応分析が出力できればまあいいかなと思っていたのだけど、他の図も出力できるようにはなった。とはいえ、本当に理解しているかと言われるとそんなことはなく、それっぽい図が出力できるようになっただけかもしれない。でも、この試行錯誤を公開することで他の人が速習できるようになるかもしれない。

|

昔話の計量テキスト分析――池月

◆はじめに

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

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

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

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

◆ファイル

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

ダウンロード - ca_pb_007_ikeduki.xlsx

ダウンロード - ca_pb_007_codingrules.txt

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

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

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

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

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

◆あらすじ

・「名馬池月」(未来社『石見の民話』)
治承三年の頃は邑智郡阿須那の牛馬市が最も盛んな時だった。出雲の国飯石郡松笠村に竜頭ヶ滝という滝があった。後に名馬として有名になった池月はこの滝の近くで生まれた。小さいとき母馬が死んだ。母馬を探して滝の辺りをさ迷っている内に自分の姿が滝壺に映るのを母馬と思って滝壺に飛び込んだ。しかし水の中には母馬はいないので上に上がってみると水の中に母馬の姿が見える。そこで飛び込むが、やはり母馬はいない。こうした事を繰り返す内に泳ぎが上手になった。治承三年四月の阿須那の市にこの馬は馬喰に連れられて都賀本郷まで来た。が、江川は雪解けで水が多く渡ることができない。しかし川向こうの都賀西では市へ行く牛や馬がひっきりなしに通っていく。これを見た馬は激しい流れに飛び込んで川を真一文字に渡って都賀西から阿須那の市場に駆け込んだ。驚いた人々が見ていると一人の商人が池月を栢の木に繋いだ。それからしばらくして雲州から馬の持ち主がやって来た。そして馬を売ろうとしたが買う人がいない。羽村長田までいったところで買い手がついた。その男は指を六本出した。持ち主は六百文だと思って手を打った。ところが買い手は六百両出したので売主は驚いた。この馬は名馬の相があり六百両でも安い位だとのことであった。この馬は後に東国に下って名馬の名が高くなり、遂に源頼朝に買い上げられた。元暦元年正月、宇治川の合戦に佐々木四郎高綱が池月に打ちまたがって先陣の名を天下にあげた。池月を繋いだ栢の木は阿須那の賀茂神社の境内に今もある。


・「名馬池月」(日本標準『島根の伝説』)
八百年ばかり昔、松笠村(飯石郡掛合町)の辺りでは仕事で馬を使っていて大事に育てていた。ある年、滝谷というところでかわいい子馬が生まれた。元気な子馬だったが、いつの頃からか母馬の姿が見えなくなってしまった。子馬を産んだあと、体調を崩し死んでしまったのである。ある日、松笠村の奥にある龍頭滝の滝口に子馬が姿を現した。子馬は滝つぼの縁を歩き回っていたが、ふと水の落ち込まない静かな水面を見た。すると、そこには日頃探していた母馬の姿が浮かんで見えた。子馬はざぶんと滝つぼに飛び込んだ。だが、そこに母馬の姿はなかった。仕方なく縁に上がって水面を見ると、やはり母馬はいる。再び飛び込んだが結果は同じだった。何度も繰り返した。こうして水面に映る自分の姿を母馬とみて毎日のように滝つぼに飛び込んでいる内に子馬はいつしか泳ぎの達者な立派な馬に成長した。この馬は赤名(飯石郡赤来町)の馬喰に買われ、石見の牛馬市に出された。赤名を通り、都賀本郷まで来たとき、雪解けの水で江川は渦を巻いて流れていた。馬喰たちはいかだに馬を載せてゆっくりと渡していた。と、この馬は何を思ったかいきなり川へ飛び込んだ。濁流をものともせず馬はぐんぐん向こう岸めがけて泳ぎ続けさっと岸に駆け上がった。この様子を阿須那(邑智郡羽須美村大字阿須那)の馬喰がじっと見つめていた。馬市でせりが始まった。この馬は最後にせられることとなった。見事な馬で申し分のない姿をしていた。せりが始まると阿須那の馬喰は早速考えられないほどの高値をつけた。競う者はなく阿須那の馬喰が競り落とした。やがてこの馬は阿須那城主に売り渡された。寿永三年(一一八四)、源義経が木曽義仲を京都の宇治川まで攻め寄せたとき、佐々木高綱と梶原景季が先陣を争った。高綱の乗った池月という馬はこの松笠で育った馬だと言われている。


・「池月」(みずうみ書房『日本伝説大系』十一巻)
源平の戦いのとき、宇治川の先陣争いで、佐々木高綱の乗った名馬池月の産地は東北とも九州とも、また県内では飯石郡とも言われているが馬路の産だという説もある。馬路村には縄手というところがあり、一つの池がある。池に臨んで厩という屋号の家がある。これが池月の生まれた厩の跡だという。駒のときから大変な駿馬で、馬喰が誤ってこれを放すと、馬は月下池を渡って遂に見えなくなった。池月という名はここから起こった。馬喰は慌てて後を追って天河内の境に出て馬の足跡を発見した。今も地名に馬の跡というのがある。これで逃げた方向が分かったので、大国から大森へと追って出た。このときまた足跡があった。今も大森に駒の足という区がある。更に追って三久須に至り馬の姿を認め「駄駄」と声をかけた。今旧道に駄駄坂というのがある。ここから馬喰は馬を引いて邑智郡阿須那の市に行き、ある寺の境内の榧の木に繋いだ。駒は暁の空に向かって一声大きくいなないた。


・「名馬池月」(白想社『随筆石見物語』)
邑智郡阿須那の牛馬市は関西有数の盛んなものであった。当時飯石郡松笠村の龍頭が滝付近に名馬池月が生まれた。幼駒の時に母馬を失い、池月は母恋しさにこの滝つぼに自分の姿が映るのを見て母と思い込み、毎日滝つぼに飛び込み母を尋ねた。しばらくする内に水泳の技に長ずるようになった。牛馬商に牽かれて頓原村を過ぎ都賀本郷まで来たが、江川は雪解けで増水して渡ることができない。対岸には市へ行く馬匹が列をなしているので、これを見た池月は江川へ飛び入り真一文字に打ち渡り、一声高くいなないて都賀西から宇津井に出て遂に阿須那市場へ飛び込んできた。恐れおののく人の内、ようやく一人の心利いたものがいて、やっと柏の木に繋ぎ留めた。しばらくして持ち主がやって来て売ろうとしたけれど買い手がない。仕方がないので馬を曳いて口羽村字長田まで来るとようやく買い手が現れた。博労は手の指を六本出してこれで買いたいと言った。持ち主は六百文と思い込み承諾した。すると買い手は六百両の大金を渡したので持ち主は呆れて訳を訊くと、この馬は名馬の相があるから六百両でもまだ安いと言った。果たして博労の鑑定通り鎌倉に引き出して将軍頼朝に買い上げられ宇治川先陣の誉れを残した。馬を繋いだ柏の木は現在枯れて骨幹のみが白くなって残っている。名馬池月の伝説はこの外に邇摩郡馬路村、隠岐国などに残っているが、話の筋が大同小異でいずれが真の出生地であるかは不明である。


◆コーディングルール

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

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

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

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

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

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

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


*阿須那
'阿須那'
*牛馬市
'牛馬市' or '馬市' or '市' or 市場
*松笠村
'松笠村'
*池月
'池月' or 自分 or 馬 or 駒
*母馬
'母馬' or 母
*滝壺
滝壺 or 滝つぼ
*泳ぎ
泳ぎ or 水泳
*上手
上手 or 達者
*馬喰
馬喰 or 博労
*江川
江川 or 川
*栢
栢 or 榧 or 柏
*持ち主
持ち主 or 売主
*六本
'六本'
*六百文
'六百文'
*六百両
'六百両'
*濁流
濁流 or 増水
*せり
せり or 競り
*高綱
'高綱'
*景季
'景季'
*馬路
'馬路'
*駄駄
'駄駄'

*ない
ない
*ぬ

*ん

*るな
'るな'
*るまい
'るまい'

*邑智郡
邑智郡
*飯石郡
飯石郡
*滝

*名馬
名馬
*死ぬ
死ぬ
*姿
姿
*飛び込む
飛び込む
*雪解け
雪解け
*渡る
渡る
*買い手
買い手
*指

*相

*安い
安い
*頼朝
頼朝
*宇治川
宇治川
*合戦
合戦
*先陣
先陣
*子馬
子馬
*水面
水面
*いかだ
いかだ
*義経
義経
*義仲
義仲
*争い
争い
*池

*厩

*駿馬
駿馬
*足跡
足跡
*鎌倉
鎌倉
*誉れ
誉れ
*枯れる
枯れる


◆共起ネットワーク

・[コーディング単位]を[H5]に設定する。

※[描画する共起関係(edge)の選択]で「係数」を「0.2」から「0.3」に修正する。
※[強い共起関係ほど濃い線に]にチェックを入れる。

Jaccard係数が0.3以上はかなり強い共起関係にあることを示しているが、分析対象となる元データの文字数が少ないため係数が高めに出てしまう傾向にあるため、こうしている。

※Jaccard係数は共起関係(※ある言葉に続いて出てくる関係)の強さを表し 0≦係数≦1 の範囲の値をとる。

【Jaccard係数】
・0.1 →関連あり
・0.2 →強い関連あり
・0.3以上 →とても強い関連あり
※ただし、あくまで目安であって絶対ではない。

共起ネットワーク

ざっと確認したところ、共通するキーワードが中央のサブグラフ(バブルが島状に集まった一塊)に表示され、補足情報的なキーワード(※本来は島根の池月伝説が異伝的なものだが)が周囲のサブグラフに表示される形となっている。

※なお、各バブル間の距離や配置に意味はない。

◆対応分析

・[コーディング単位]を[H5]に設定する。

※[外部変数]は[書名]に変更して実行。
※[差異が顕著なコードを分析に使用]で上位「40」とした。また[バブルプロット]にチェックを入れている。これらは文字の重なりを極力避けるためである。
※文字が重なって読みづらい場合、オプション画面の[コード選択]で不要なコードのチェックを外してもよい。

対応分析

x、y軸上の原点(0.0)から点線が伸び交差した箇所が原点となる。原点から離れるほど特徴的なキーワードだと分析される。

原点付近には「母馬」「滝」「飛び込む」といったキーワードが配置されている。未来社版と白想社版では「六本」「六百文」といったキーワードが特徴的とされ、みずうみ書房版では「駄駄」などが特徴的とされている。「義仲」「景季」といった敵将あるいは先陣争いのライバルの名前が最も離れた位置にプロットされている。

◆解釈

出雲の龍頭滝をはじまりの舞台とし、その後江川を渡って阿須那の牛馬市に向かう筋立ては共通している。馬路の伝説は異伝的な要素が強いと解釈されたようだ。宇治川の先陣争いは池月が真価を発揮したエピソードであるが、ここではその後の出来事として、むしろ池月がいかにして泳ぎの達者な馬となったかが語られている。

ちなみに、阿須那の賀茂神社には池月を繋いだとされる枯れ木が現存している。

◆階層的クラスター分析

・[コーディング単位]を[文]に変更、実行するとデンドログラム(樹状図)で可視化される。

※キーワード指定しても可。

階層的クラスター分析
階層的クラスター分析
※当ブログの場合、[コーディング単位]が[段落][H5]だと、コードを全て選択するとエラーが返される結果となった。

概ねストーリーに沿った内容でクラスター化されているが、「母馬」「死ぬ」「姿」「水面」といったキーワードは異なるクラスターに分類される結果となった。

◆クロス集計

・[コーディング単位]を[文]に変更、[集計]する。

※同名のタイトルを含むため「書名」で集計をかけた。

クロス集計 

クロス集計をかけたところ、「厩」「足跡」といったキーワードでカイ(χ)2乗値で相関関係を示す結果(※マーク)が得られた。

クロス集計・バブルマップ

 

マップとして描画したところ、「厩」といったキーワードの残差が大きく(濃く)表示される結果となった。バブルとしては「池月」が大きく描画された。

◆KWICコンコーダンス

現状ではテキストマイニングのツールに文脈を読む性能はないため実際に該当箇所を読んで人力で判断する他ない。KWICコンコーダンスでキーワード指定すれば指定したキーワードがどのような文脈で用いられているか一覧で抽出される。

KWICコンコーダンス
KWICコンコーダンス・文書表示

◆関連語検索

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

関連語検索

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

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

関連語検索

◆属性の転倒

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

N 抽出語 品詞 全体 共起 Jaccard
1 名詞C  10 (0.125)  5 (0.333) 0.25
2 姿 名詞C  10 (0.125)  4 (0.267) 0.1905
3 見える 動詞  4 (0.050)  3 (0.200) 0.1875
4 名詞C  4 (0.050)  3 (0.200) 0.1875
5 渡る 動詞  5 (0.063)  3 (0.200) 0.1765
6 馬喰 名詞  9 (0.113)  3 (0.200) 0.1429
7 名詞C  2 (0.025)  2 (0.133) 0.1333
8 仕方 ナイ形容  2 (0.025)  2 (0.133) 0.1333
9 売る 動詞  2 (0.025)  2 (0.133) 0.1333
10 江川 人名  3 (0.038)  2 (0.133) 0.125

母馬が死んでしまったのか、いなくなってしまい、子馬は母馬の姿を追い求める。滝つぼに映った自分の姿をそこに母馬がいると思った子馬は飛び込む。そうする内に泳ぎの達者な馬となり、やがて増水してとても渡れそうにない江川を泳ぎ切ってしまう。

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

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

・[子馬|母馬:いる/いない]
・[馬|増水した川:渡れない/渡る]

こういった風にお話を転がしていると分析できる。母馬が「いる/いない」と転倒した結果、子馬の成長に繋がるといった結果となっている。

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

◆類似度行列

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

類似度行列

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

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

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

◆多次元尺度構成法

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

多次元尺度構成法

「死ぬ」「ない」がやや離れた位置にプロットされている。

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

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

◆自己組織化マップ

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

自己組織化マップ

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

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

◆トピックの推定

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

トピックの推定

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

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

◆ベイズ学習による分類

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

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

ベイズ学習による分類

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

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

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

◆参考文献

・『日本の民話 34 石見篇』(大庭良美/編, 未来社, 1978)pp.91-92.
・『島根の伝説』(島根県小・中学校国語教育研究会/編, 日本標準, 1978)pp.198-202.
・『日本伝説大系 第11巻 山陰(鳥取・島根)』(野村純一他, みずうみ書房, 1984)pp.187-192.
・『随筆 石見物語(復刻版)』(木村晩翠, 白想社, 1993)pp.93-94.
・『動かして学ぶ!はじめてのテキストマイニング』(樋口耕一, ナカニシヤ出版, 2022)
・『社会調査のための計量テキスト分析 【第2版】 内容分析の継承と発展を目指して』(樋口耕一, ナカニシヤ出版, 2020)

|

2026年3月 6日 (金)

データセンターの光と影

NHKクローズアップ現代「あなたの近くにもやって来る?!データセンターの光と影」をNHK ONEで視聴する。今や欠かせないインフラとなったデータセンター。日本には500を超えるデータセンターがあり、その内200近くは首都圏に立地しているとのこと。ただ、建築基準法上、定義されておらず住宅地の近くに建設が計画されることも増え、近隣住民の反対運動が起きていると報道されていた。データセンターは大量の電力を消費するため、非常用電源も欠かせず、ディーゼル発電機を何台も抱えており、それが稼働する際の排ガスや騒音の問題がトラブルの原因となっている。米国ではデータセンターが増えた結果、電気代が5年前の倍以上に上がった地域もあるようだ。地域分散の必要性が訴えられており、新潟県では雪解け水を冷却に活用、温排水を農業に再利用するといった形で回している。

松江市にもデータセンターがあるとのこと。発電所が近く、空港からも比較的近いので何かあった際に駆けつけやすいのかもしれない。……案外、益田市もデータセンターに向いた立地条件かもしれない。

|

昔話の計量テキスト分析――妾を妬む

◆はじめに

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

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

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

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

◆ファイル

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

ダウンロード - ca_pb_006_netamu.xlsx

ダウンロード - ca_pb_006_codingrules.txt

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

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

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

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

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

◆あらすじ

・「鏡が渕」(未来社『石見の民話』)
鳴美の堤から切り立った岩の上に登ると、小さな祠がある。竜の明神で、祠の前の岩角に立っている松を髪かけの松という。弘安正応の頃、阿波麻生庄の領主小笠原長親は海辺防備の功によって村之郷に移封されて海を渡った。後に川本温湯城三原丸小城を中心にして十五代およそ三百年間この辺りを治めた小笠原氏の先祖である。長親は村之郷に来ると南山城を築いて根拠地とした。重臣に何々太夫宗利という武士がいた。まだ若年であったが優れた武士だったので軍師として重く用いた。足利の勢が攻め寄せた時、川を上って魚断りに押し寄せると味方の軍勢は天嶮によってこれを防ぎ敵は意を断って引き返したので魚断りというようになった。この戦いで最も手柄を立てたのは軍師の宗利だった。それで長親は宗利に自分の娘を妻に与えた。ところがしばらく経って疫病にかかり生まれもつかぬ醜い女になった。その頃小間使いに美しい女があって、宗利は次第に本妻を避けるようになった。本妻はこれを恨んで、ある日宗利を動かして小間使いを連れて魚断りの景色を見に出かけた。そして景色のよい明鏡台へいって、しばらく休息していると、小間使いは懐中から小さな鏡を取り出してほつれた髪をかきあげた。その時後ろから忍び寄った本妻はいきなり小間使いを岩の上から突き落とした。この時小間使いは手鏡に映った本妻の顔からそれと察したので、本妻の袖をしっかり掴んだ。それで、あっという間に二人の女は相重なって落ちていった。驚いた宗利が駆け寄ってみると、数十丈の岩壁を悲鳴をあげて落ちていく二人の黒髪はどちらも竜となって互いにもつれ争いながら途中の松の枝にかかって抜け、二人はそのまま遙か谷底の深さも知れぬ渕に呑まれてしまった。宗利は意外のことに驚くとともに、深く嘆き悲しんで蟇田まで帰り、自刃して果てた。二人の女を呑んだ渕を鏡が渕といい、以来二人は竜となって永遠に相戦ったと言われている。古くから三人を神に祀ってあったのを昭和九年の明神勧請のときに合祀した。


・「小沙夜淵」(ハーベスト出版『夕陽を招く長者』)
匹見の小虫に住んでいた斎藤家は七百年以上続いた旧家であるが、その十二代の斎藤治朗左衛門が長者を務めていた時代のこと。治朗左衛門は近くから、お楽という人を妻として迎えた。夫婦仲はよく、周りから羨ましがられていたが、跡継ぎが生まれなかった。そこでお楽は治朗左衛門と相談して、小沙夜を妾として同居することになった。やがて小沙夜に待ち望んだ子供が生まれた。治朗左衛門の愛情は子供を通して自ずと小沙夜に移っていった。そのため、お楽は小沙夜を妬む気持ちが芽生えてきた。悶々とした日々が続き、終いには小沙夜を亡きものにしようと思うようになった。ある日、お楽と小沙夜は匹見川の渓谷に遊びに出かけた。小沙夜が淵の水しぶきを眺めていた時、お楽はここぞとばかりに短剣で小沙夜を刺し、すかさず淵に突き落とした。すると小沙夜は激流の中に消えていった。このとき、淵が小沙夜の鮮血で一面朱に染まったので、この淵を赤淵と呼ぶようになった。良心の呵責にさいなまれたお楽には、その後平穏な日は一日も無かった。ついに錯乱したお楽は赤淵に身を投げた。と、見る間にお楽の姿は竜に変わり、火炎を岸壁に吹きつけて縦につんざき、女陰の形を残して昇天した。後世、この岸壁からたぎり出る水をお楽の滝と呼ぶようになった。二人の妻妾を失った治朗左衛門は沈んでいたが、遂に発心して懺悔のため諸国行脚に出かけた。やがて身をはかなんで近くの淵に身を投げて二人の跡を追った。この淵を治朗左衛門淵と呼ぶようになった。お楽は昇天の際、火炎を吹きつけて作ったという岸壁の縦皺は世に弁天様と称し、性病にご利益があるとして人々の信仰を集めた。


◆コーディングルール

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

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

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

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

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

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

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


*宗利
'宗利'
*妻
妻 or 本妻 or 'お楽'
*小間使い
'小間使い'
*鏡
鏡 or 手鏡
*髪
髪 or 黒髪
*渕
渕 or 淵
*斎藤
斎藤 or '治朗左衛門'
*跡継ぎ
跡継ぎ or 子供
*妾
妾 or '小沙夜'
*妬む
妬む or 恨む

*ない
ない
*ぬ

*ん

*るな
'るな'
*るまい
'るまい'

*岩

*祠

*松

*小笠原
小笠原
*手柄
手柄
*娘

*疫病
疫病
*醜い
醜い
*女

*美しい
美しい
*景色
景色
*突き落とす
突き落とす
*裾

*自刃
自刃
*竜

*渓谷
渓谷
*鮮血
鮮血
*錯乱
錯乱
*岸壁
岸壁
*滝

*懺悔
懺悔
*身

*投げる
投げる
*女陰
女陰
*性病
性病
*ご利益
ご利益


◆共起ネットワーク

・[コーディング単位]を[H5]に設定する。

※[描画する共起関係(edge)の選択]で「係数」を「0.2」から「0.3」に修正する。
※[強い共起関係ほど濃い線に]にチェックを入れる。

Jaccard係数が0.3以上はかなり強い共起関係にあることを示しているが、分析対象となる元データの文字数が少ないため係数が高めに出てしまう傾向にあるため、こうしている。

※Jaccard係数は共起関係(※ある言葉に続いて出てくる関係)の強さを表し 0≦係数≦1 の範囲の値をとる。

【Jaccard係数】
・0.1 →関連あり
・0.2 →強い関連あり
・0.3以上 →とても強い関連あり
※ただし、あくまで目安であって絶対ではない。

共起ネットワーク

ざっと確認したところ、共通するキーワードが中央のサブグラフ(バブルが島状に集まった一塊)に表示され、類話毎に異なるキーワードが周囲のサブグラフに表示される形となっている。

※なお、各バブル間の距離や配置に意味はない。

◆対応分析

・[コーディング単位]を[H5]に設定する。

※[外部変数]は[出版社]に変更して実行。
※[差異が顕著なコードを分析に使用]で上位「40」とした。また[バブルプロット]にチェックを入れている。これらは文字の重なりを極力避けるためである。
※文字が重なって読みづらい場合、オプション画面の[コード選択]で不要なコードのチェックを外してもよい。

対応分析

x、y軸上の原点(0.0)から点線が伸び交差した箇所が原点となる。原点から離れるほど特徴的なキーワードだと分析される。

原点付近には「妻」「突き落とす」「竜」「女」といったキーワードが配置されている。未来社版では「美しい」「醜い」「疫病」「小笠原」といったキーワードが特徴的とされ、ハーベスト出版版では「跡継ぎ」「鮮血」「性病」「ご利益」などが特徴的とされている。

◆解釈

舞台は未来社版が邑智郡美郷町、ハーベスト出版版が益田市匹見町と異なっているが似た筋立てとなっている。未来社版では疫病のため正妻があばた面となってしまい醜くなったのがきっかけとなるが、ハーベスト出版版では跡継ぎが生まれないため妾をとったのがきっかけとなっている。未来社版では正妻は小間使いと共に渕に転落してしまうが、ハーベスト出版版では正妻が妾を刺して転落させた後、良心の呵責に耐えかねて身投げするといった風に細部は異なっている。

◆階層的クラスター分析

・[コーディング単位]を[文]から[段落]に変更、実行するとデンドログラム(樹状図)で可視化される。

デンドログラム(樹状図)
デンドログラム(樹状図)

概ねストーリーに沿った形でクラスター化されている。

※キーワード指定しても可。

※当ブログの場合、[コーディング単位]が[文]だと、コードを全て選択するとエラーが返される結果となった。

◆クロス集計

・[コーディング単位]を[文]に変更、[集計]する。

クロス集計

クロス集計をかけたところ、「宗利」「斎藤」「妾」といったキーワードでカイ(χ)2乗値で相関関係を示す結果(※マーク)が得られた。

クロス集計・バブルマップ

マップとして描画したところ、「妾」「妬む」といったキーワードの残差が大きく(濃く)表示される結果となった。バブルとしては「妻」「妾」などが大きく描画された。

◆KWICコンコーダンス

現状ではテキストマイニングのツールに文脈を読む性能はないため実際に該当箇所を読んで人力で判断する他ない。KWICコンコーダンスでキーワード指定すれば指定したキーワードがどのような文脈で用いられているか一覧で抽出される。

KWICコンコーダンス
KWICコンコーダンス・文書表示

◆関連語検索

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

関連語検索

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

関連語検索

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

◆属性の転倒

・「ぬ」の結果上位一覧

N 抽出語 品詞 全体 共起 Jaccard
1 疫病 名詞  1 (0.024)  1 (0.500) 0.5
2 駆け寄る 動詞  1 (0.024)  1 (0.500) 0.5
3 経つ 動詞  1 (0.024)  1 (0.500) 0.5
4 互いに 副詞  1 (0.024)  1 (0.500) 0.5
5 黒髪 名詞  1 (0.024)  1 (0.500) 0.5
6 名詞C  1 (0.024)  1 (0.500) 0.5
7 醜い 形容詞  1 (0.024)  1 (0.500) 0.5

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

N 抽出語 品詞 全体 共起 Jaccard
1 周り 名詞  1 (0.024)  1 (1.000) 1
2 跡継ぎ 名詞  1 (0.024)  1 (1.000) 1
3 羨ましい 形容詞  1 (0.024)  1 (1.000) 1
4 名詞C  1 (0.024)  1 (1.000) 1
5 夫婦 名詞  1 (0.024)  1 (1.000) 1
6 生まれる 動詞  2 (0.049)  1 (1.000) 0.5


「鏡が渕」では疫病のため醜くなってしまった正妻に対し夫は美しい小間使いに心を移してしまう。「小沙夜淵」では跡継ぎがいない夫が妾をとって生まれたため正妻の嫉妬が生じる。

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

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

・[宗利の妻|疫病:美しい/醜い]
・[小沙夜|跡継ぎ:生まれない/生む]

こういった風にお話を転がしていると分析できる。それぞれが異なる話だが、夫の心が離れたことをきっかけに正妻の嫉妬が生じている。夫婦関係が「円満/疎遠」と転倒してしまい、争いの遠因となる。

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

◆類似度行列

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

類似度行列

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

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

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

◆多次元尺度構成法

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

多次元尺度構成法

「渓谷」がやや離れた位置にプロットされた。

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

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

◆自己組織化マップ

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

自己組織化マップ

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

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

◆トピックの推定

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

トピックの推定

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

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

◆ベイズ学習による分類

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

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

ベイズ学習による分類

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

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

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

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

|

2026年3月 5日 (木)

山陰のインバウンド 2025

外国人宿泊数、鳥取と島根で過去最多 鳥取は伸び率全国トップ 25年
https://www.sanin-chuo.co.jp/articles/-/960379

2025年の外国人宿泊数、
・鳥取県:198,930人
・島根県:112,110人
とのこと。
米子空港経由で訪日する関係でこういった結果となっているのだろう。中国、韓国、台湾、香港と東アジアの国が上位を占めているようだ。

|

昔話の計量テキスト分析――琴姫

◆はじめに

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

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

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

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

◆ファイル

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

ダウンロード - ca_pb_005_kotohime.xlsx

ダウンロード - ca_pb_005_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 ( 村 and 人 ) or '浦人'
*琴ヶ浜
'琴ヶ浜' or '琴が浜'
*嵐
大風 or 嵐
*舟
舟 or 小舟
*戦
戦 or 戦い

*ない
ない
*ぬ

*ん

*るな
'るな'
*るまい
'るまい'

*平家
平家
*源氏
源氏
*海

*都

*父

*琴

*源平
源平
*船

*波

*亡骸
亡骸
*丘

*葬る
葬る
*音

*砂

*鳴る
鳴る
*老人
老人
*介抱
介抱
*風邪
風邪
*娘

*かくまう
かくまう
*小屋
小屋
*喀血
喀血
*魂

*慰める
慰める


◆共起ネットワーク

・[コーディング単位]を[H5]に設定する。

※[描画する共起関係(edge)の選択]で「係数」を「0.2」から「0.3」に修正する。
※[強い共起関係ほど濃い線に]にチェックを入れる。

Jaccard係数が0.3以上はかなり強い共起関係にあることを示しているが、分析対象となる元データの文字数が少ないため係数が高めに出てしまう傾向にあるため、こうしている。

※Jaccard係数は共起関係(※ある言葉に続いて出てくる関係)の強さを表し 0≦係数≦1 の範囲の値をとる。

【Jaccard係数】
・0.1 →関連あり
・0.2 →強い関連あり
・0.3以上 →とても強い関連あり
※ただし、あくまで目安であって絶対ではない。

共起ネットワーク

ざっと確認したところ、共通するキーワードが中央のサブグラフ(バブルが島状に集まった一塊)に表示され、類話毎に異なるキーワードが周囲のサブグラフに表示される形となっている。

※なお、各バブル間の距離や配置に意味はない。

◆対応分析

・[コーディング単位]を[H5]に設定する。

※[外部変数]は[出版社]に変更して実行。
※[差異が顕著なコードを分析に使用]で上位「40」とした。また[バブルプロット]にチェックを入れている。これらは文字の重なりを極力避けるためである。
※文字が重なって読みづらい場合、オプション画面の[コード選択]で不要なコードのチェックを外してもよい。

対応分析

x、y軸上の原点(0.0)から点線が伸び交差した箇所が原点となる。原点から離れるほど特徴的なキーワードだと分析される。

原点付近には「琴姫」「琴ヶ浜」「葬る」「村人」といったキーワードが配置されている。未来社版では「老人」「秘曲」「父」といったキーワードが特徴的とされ、日本標準版では「風邪」などが特徴的とされている。角川書店版では「娘」「喀血」「かくまう」といったキーワードが特徴的なものとして配置されている。

◆解釈

源平の戦、壇ノ浦の戦いが背景にあることは概ね共通している。一般に知られているのは鳴き砂の由来となった伝説で、未来社版では琴姫と父親との関係が秘曲に仮託され描かれている。角川版は文芸色が強めか。

◆階層的クラスター分析

・[コーディング単位]を[文]に変更、実行するとデンドログラム(樹状図)で可視化される。

デンドログラム(樹状図)
デンドログラム(樹状図)

概ねストーリーに沿った形でクラスター化されている。

※キーワード指定しても可。

※当ブログの場合、[コーディング単位]が[段落][H5]だと、コードを全て選択するとエラーが返される結果となった。

◆クロス集計

・[コーディング単位]を[文]に変更、[集計]する。

クロス集計

クロス集計をかけたところ、「村人」「嵐」「舟」といったキーワードでカイ(χ)2乗値で相関関係を示す結果(※マーク)が得られた。

クロス集計・バブルマップ

マップとして描画したところ、「嵐」「娘」といったキーワードの残差が大きく(濃く)表示される結果となった。バブルとしては「琴姫」「琴」などが大きく描画された。

◆KWICコンコーダンス

現状ではテキストマイニングのツールに文脈を読む性能はないため実際に該当箇所を読んで人力で判断する他ない。KWICコンコーダンスでキーワード指定すれば指定したキーワードがどのような文脈で用いられているか一覧で抽出される。

KWICコンコーダンス

KWICコンコーダンス・文書表示

◆関連語検索

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

関連語検索

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

関連語検索

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

◆属性の転倒

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

N 抽出語 品詞 全体 共起 Jaccard
1 名詞C  24 (0.364)  7 (0.636) 0.25
2 名詞C  31 (0.470)  7 (0.636) 0.2
3 漂う 動詞  2 (0.030)  2 (0.182) 0.1818
4 家来 名詞  3 (0.045)  2 (0.182) 0.1667
5 名詞C  12 (0.182)  3 (0.273) 0.15
6 弾く 動詞  5 (0.076)  2 (0.182) 0.1429
7 人名  5 (0.076)  2 (0.182) 0.1429
8 組織名  6 (0.091)  2 (0.182) 0.1333
9 名詞C  6 (0.091)  2 (0.182) 0.1333
10 聞こえる 動詞  6 (0.091)  2 (0.182) 0.1333

都で戦に巻き込まれて流浪の身となった琴姫は船が難破、寄る辺の無い存在となってしまう。漂着した馬路で姫は村人から暖かく迎えられるものの……といった粗筋となっている。未来社版では鳴き砂の音が琴姫のものだと気づいた父親が入水、その姿は見えなくなってしまう。

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

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

・[姫|寄る辺:ない/ある]
・[父|入水:見える/見えない]

こういった風にお話を転がしていると分析できる。寄る辺のない琴姫は馬路で暖かく受け入れられたものの、姫の運命は「生/死」と転倒してしまう。

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

◆類似度行列

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

類似度行列

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

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

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

◆多次元尺度構成法

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

多次元尺度構成法

「平家」はやや離れた位置にプロットされている。

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

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

◆自己組織化マップ

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

自己組織化マップ

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

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

◆トピックの推定

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

トピックの推定

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

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

◆ベイズ学習による分類

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

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

ベイズ学習による分類

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

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

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

◆参考文献
・『日本の民話 34 石見篇』(大庭良美/編, 未来社, 1978)pp.15-18.
・『島根のむかし話』(島根県小・中学校国語教育研究会/編著, 日本標準, 1976)pp.245-248.
・『出雲・石見の伝説 日本の伝説48』(酒井董美, 萩坂昇, 角川書店, 1980)pp.225-230.
・『動かして学ぶ!はじめてのテキストマイニング』(樋口耕一, ナカニシヤ出版, 2022)
・『社会調査のための計量テキスト分析 【第2版】 内容分析の継承と発展を目指して』(樋口耕一, ナカニシヤ出版, 2020)

|

2026年3月 3日 (火)

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

◆はじめに

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

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

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

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

◆ファイル

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

ダウンロード - ca_pb_004_kabatanijiro.xlsx

ダウンロード - ca_pb_004_codingrules.txt

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

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

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

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

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

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

◆あらすじ

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


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

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


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


◆コーディングルール

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

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

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

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

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

*椛谷
'椛谷'
*履き物
履き物 or 草履 or 雪駄
*柱
柱 or '大黒柱'
*納める
納める or 上納
*丸呑み
丸呑み or ( 長い and まま and 食べる )
*屋敷
屋敷 or 家
*女竹
'女竹'
*苦土
'苦土'
*里人
里人 or 村人
*スズメ
スズメ or 雀
*田
田 or 田んぼ or '稲田'
*岩
岩 or 大岩
*検査
検査 or 検分
*草木
草木 or 木
*柿木
'柿木'

*ない
ない
*ぬ

*ん

*るな
'るな'
*るまい
'るまい'

*次郎
次郎
*百姓
百姓
*力持ち
力持ち
*津和野
津和野
*殿さま
殿さま
*山芋
山芋
*折れる
折れる
*役人
役人
*受け取る
受け取る
*縄

*縛る
縛る
*藪

*畠

*作物
作物
*藩

*年貢
年貢
*特産
特産
*半分
半分
*捕らえる
捕らえる
*帰る
帰る
*脚

*天井
天井
*瓦

*婆

*普請
普請
*からかう
からかう
*稲

*夜

*天狗
天狗
*笑う
笑う
*領地
領地
*祭り
祭り
*雨

*傘屋
傘屋
*傘

*腰

*広げる
広げる
*米

*過料
過料
*邪魔
邪魔
*無礼
無礼
*壁

*嬶


◆共起ネットワーク

・[コーディング単位]を[H5]に設定する。

※[描画する共起関係(edge)の選択]で「係数」を「0.2」から「0.3」に修正する。
※[強い共起関係ほど濃い線に]にチェックを入れる。

Jaccard係数が0.3以上はかなり強い共起関係にあることを示しているが、分析対象となる元データの文字数が少ないため係数が高めに出てしまう傾向にあるため、こうしている。

※Jaccard係数は共起関係(※ある言葉に続いて出てくる関係)の強さを表し 0≦係数≦1 の範囲の値をとる。

【Jaccard係数】
・0.1 →関連あり
・0.2 →強い関連あり
・0.3以上 →とても強い関連あり
※ただし、あくまで目安であって絶対ではない。

共起ネットワーク

ざっと確認したところ、共通するキーワードが中央のサブグラフ(バブルが島状に集まった一塊)に表示され、類話毎に異なるキーワードが周囲のサブグラフに表示される形となっている。

※なお、各バブル間の距離や配置に意味はない。

◆対応分析

・[コーディング単位]を[H5]に設定する。

※[外部変数]は[出版社]に変更して実行。
※[差異が顕著なコードを分析に使用]で上位「40」とした。また[バブルプロット]にチェックを入れている。これらは文字の重なりを極力避けるためである。

対応分析

x、y軸上の原点(0.0)から点線が伸び交差した箇所が原点となる。原点から離れるほど特徴的なキーワードだと分析される。

原点付近に「柿木」「年貢」「捕らえる」というキーワードが配置されている。未来社版では「丸呑み」「苦土」あたりが特徴的か。ハーベスト出版では「からかう」「瓦」、角川書店版では「祭り」「雨」、偕成社版では「スズメ」「岩」「天狗」といったあたりが特徴的か。

◆解釈

共通するのは年貢として山芋を納める件で、次郎の怪力と役人をも怖れぬ胆力が描かれている。異伝的な要素として祭りの雨で傘を買ったエピソード、稲を食い荒らす雀を岩で追い払おうとしたエピソード、竹を引っこ抜いて畠にしたものの苦土のため作物が育たなかったことなどが挙げられる。

◆階層的クラスター分析

・[コーディング単位]を[文]に変更、実行するとデンドログラム(樹状図)で可視化される。

デンドログラム(樹状図)
デンドログラム(樹状図)
概ねストーリーに沿った形でクラスター化されている。

※キーワード指定しても可。

※当ブログの場合、[コーディング単位]が[段落][H5]だと、コードを全て選択するとエラーが返される結果となった。

◆クロス集計

※タイトルが同名のため「出版社」で集計をかけた。

・[コーディング単位]を[文]に変更、[集計]する。

クロス集計

クロス集計をかけたところ、「受け取る」「草木」といったキーワードでカイ(χ)2乗値で相関関係を示す結果(※マーク)が得られた。

クロス集計・バブルマップ

マップとして描画したところ、「草木」といった異伝的なキーワードの残差が大きく(濃く)表示される結果となった。バブルとしては「次郎」「役人」などが大きく描画された。

◆KWICコンコーダンス

現状ではテキストマイニングのツールに文脈を読む性能はないため実際に該当箇所を読んで人力で判断する他ない。KWICコンコーダンスでキーワード指定すれば指定したキーワードがどのような文脈で用いられているか一覧で抽出される。

KWICコンコーダンス

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

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

関連語検索

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

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

関連語検索

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

◆属性の転倒

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

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

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

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

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

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

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

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

◆類似度行列

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

類似度行列

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

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

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

◆多次元尺度構成法

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

多次元尺度構成法

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

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

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

◆自己組織化マップ

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

自己組織化マップ

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

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

◆トピックの推定

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

トピックの推定

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

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

◆ベイズ学習による分類

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

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

ベイズ学習による分類

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

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

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

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

|

2026年3月 1日 (日)

昔話の計量テキスト分析――邯鄲夢の枕

◆はじめに

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

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

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

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

◆ファイル

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

ダウンロード - ca_pb_003_kantanyumemakura.xlsx

ダウンロード - ca_pb_003_codingrules.txt

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

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

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

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

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

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

◆あらすじ

・「邯鄲夢の枕」(未来社『石見の民話』)

美濃郡高城村の薄原にある薄原城は平家の落武者という斎藤隠岐守の居城であった。斎藤家には家重代の宝として世にも名高い邯鄲夢の枕があった。これを枕にあてて眠ると、それから三日後におこる出来事まで分かるという貴い宝で、戦争をするにもこれを使って計略を進めることができた。それで周囲の城主と戦っても一度も負けたことがなく、その豪勇は近隣に鳴り響いていた。同じく高城村の三星にある三星城の城主には初音姫という世にも稀な美しい姫があった。隣国の城主たちから妻に迎えたいという申し入れが引きも切らずにあったが、父の城主はなかなか許さなかった。ところが斎藤隠岐守は最愛の奥方が亡くなったので、その後添えに初音姫を頂きたいと申し込んだ。三星城主はこれを聞くと、いいことができたと内心喜んだが、中々首を縦には振らなかった。ある日初音姫を一室に呼んで、斎藤家には家重代の宝邯鄲夢の枕という世にも珍しい宝がある。あの鬼の様な隠岐守のところへ嫁ぐのは気が進まないであろうが、ひとつ嫁いで、機会をみて枕を取り出し父に渡してくれないかと頼んだ。姫には密かに思っている若い武士がいたが、父のたっての願いに仕方なく嫁ぐことにした。こうして初音姫は薄原城に輿入れをしたが、夫の隠岐守は片時もその枕を離さず、奪いとる機会がなかった。そうして六年の年月が流れた。真夏の焼けるような暑い日であった。隠岐守は土用干しをしようというので、自分で名器や書物などを城の櫓に晒してから居間にかえって昼寝をしていた。しばらくして隠岐守は慌ただしく姫に揺り起こされた。夕立が来る。虫干しの品を早く片づけよ。見ると向こうの峯から黒い雲が空を覆って今にも雨が落ちてきそうな気配だ。隠岐守は跳ね起きると、枕にしていた邯鄲夢の枕をそのままにして高い櫓へ登っていった。姫はその枕を手にとると、六年間夫として仕えた隠岐守に心で詫びながら城を抜け出て無事に三星城へ帰った。枕を手にいれた三星城主は間もなく隠岐守を攻めたが、これまで威勢が並ぶ者がなかった隠岐守も力がなく、遂に落城し立浪山に立て籠もって戦う内に刺客に刺されてはかない最後を遂げた。薄原には隠岐園さまという小さな祠がある。これは隠岐守を祀ったもので、津和野の城主を隠岐守と言ったのでこれをはばかって隠岐園さまと改めたということである。このことがあってから薄原と三星では縁組をしない様になった。


・「ふしぎなまくら」(日本標準『島根の伝説』)
益田の向横田という町に三角山(忠魂山)という山がある。元弘三年(一三三三年)、三角山には片木城という城があった。城主は領家対馬守恒正であり、正利、恒利という二人の子供がいた。兄は片木城を継ぐために城に残り、弟は三星城の城主として、辺りを治めていた。ある年のこと、父の恒正が六十一歳になったので祝いの席が設けられた。親族もあつまりにぎやかや祝い事となった。ところが、些細なことから兄弟は言い争いを始めた。一座の者が両者に分かれて祝い事どころではなくなってしまった。父の恒正は喧嘩を止めようとしたが、一向に収まらず、席をたってしまった。このことがあってから兄弟はめっきり仲が悪くなってしまった。そのうち父はこの世を去ってしまった。父が亡くなると兄弟の間の溝は深くなっていった。兄の正利は片木城主となった。三星城を攻めることを勧める家来もいたが、すぐさま攻め入ることはなかった。しかし、いくら待っても弟の方からは何も言ってこなかった。それどころか三星城の砦を固くして、却って手向かいする様子だったので、とうとう戦になってしまった。兄は度々三星城を攻めたが、中々落とせなかった。ある日、正利の妻の直の方が三星城に伝わる不思議な枕のことを話した。この枕をして休むと三日先のことまで分かるという。城を攻め落とせないのはこちらの策を前もって知られてしまうからだと告げた。正利はその枕を手に入れたいと思ったが、たやすくは入らない。三星城では毎年七月の天気のよい日に馬具や鎧を干す。その隙に直の方が持ち帰ろうといった。直の方は薄原城主である斎藤隠岐守の娘だったが、事情があって弟恒利の養女として育てられ、後に兄正利の妻となっていた。七月になった。三星城では馬具や鎧を干しはじめた。直の方はこのときばかりと三星城に向かった。恒利の養女であっても今は正利の妻である。心を鬼にして行った。恒利と面会した直の方は兄が仲直りしたいと言っていると告げた。それで気を許した弟恒利は、直の方に二三日逗留するよう勧めた。虫干しの最中に直の方は床の間に入った。ちょうどそのとき恒利は城中を見回るために座を立っていた。直の方はこのときとばかり、何気ない振りをして、枕を取って袂に入れた。そして枕を自分の荷物の中に入れておいた。直の方は長居は迷惑だろうと断って恒利が城中を見回っている間に帰ってしまった。不思議な枕を手にした正利は喜んだ。その枕で休むと、三星城の様子が手に取るように分かった。正利はしばらくは三星城を攻めなかったが、年が明けると攻めに掛かった。三星城では驚いた。先手、先手と弱みにつけ込んで攻めてくるので、とうとう三星城は落城してしまった。あの不思議な枕の力があったからだという。


・邯鄲夢の枕(ハーベスト出版『夕陽を招く長者』)
六百年以上昔、向横田城と三星城と二つの城があった。三星城の姫が向横田城に輿入れした。当初は親戚として仲が良かったが、三星の大殿の還暦の祝いの席で領地を巡って争いとなり、向横田城は三星城を攻めはじめた。ところがどんな戦略を立てても先を見透かされて落城させることができない。向横田の殿さまは三星から輿入れしてきた奥方に訳を訊いてみた。奥方は三星城には邯鄲夢の枕という三日先のことまでが分かる宝物があると答えた。それで殿さまと奥方は三星城に向かった。城は土用干しの最中だった。殿さまは竹藪に隠れ、奥方だけが中に入り、大殿に詫びを入れて肩を揉むと、機嫌を直した大殿は居眠りをはじめてしまった。奥方が合図すると殿さまは砂を撒いて雨のような音をたてた。奥方はそれで夕立がくると大殿を揺り起こした。それで大殿は枕を手放したまま外へ飛び出してしまった。奥方はその隙に枕を持ち去った。それから数日後、二百名あまりの向横田の軍勢が三星城に攻め入り、三星城は落ちてしまった。


◆コーディングルール

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

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

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

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

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

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

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

*薄原
'薄原'
*隠岐守
'隠岐守'
*三日先
'三日先' or '三日後'
*戦争
戦争 or 戦
*三星
'三星'
*妻
妻 or 奥方
*輿入れ
輿入れ or 嫁ぐ
*喧嘩
喧嘩 or 争い
*土用干し
'土用干し' or 虫干し
*昼寝
昼寝 or 居眠り
*夕立
夕立 or 雨
*落城
落城 or 落ちる or 落とす
*隠岐園
'隠岐園'
*向横田
'向横田'
*片木
'片木'
*対馬守
'対馬守'
*直の方
'直の方'

*ない
ない
*ぬ

*ん

*るな
'るな'
*るまい
'るまい'

*城

*斎藤
斎藤
*宝

*夢

*枕

*分かる
分かる
*負ける
負ける
*城主
城主
*姫

*父

*夫

*離す
離す
*帰る
帰る
*最後
最後
*祠

*兄

*弟

*養女
養女
*娘

*袂

*親戚
親戚
*仲

*大殿
大殿
*殿さま
殿さま
*竹藪
竹藪
*音

*軍勢
軍勢
*攻める
攻める

◆共起ネットワーク

・[コーディング単位]を[H5]に設定する。

※[描画する共起関係(edge)の選択]で「係数」を「0.2」から「0.3」に修正する。
※[強い共起関係ほど濃い線に]にチェックを入れる。

Jaccard係数が0.3以上はかなり強い共起関係にあることを示しているが、分析対象となる元データの文字数が少ないため係数が高めに出てしまう傾向にあるため、こうしている。

※Jaccard係数は共起関係(※ある言葉に続いて出てくる関係)の強さを表し 0≦係数≦1 の範囲の値をとる。

【Jaccard係数】
・0.1 →関連あり
・0.2 →強い関連あり
・0.3以上 →とても強い関連あり
※ただし、あくまで目安であって絶対ではない。

共起ネットワーク

ざっと確認したところ、共通するキーワードが中央のサブグラフ(バブルが島状に集まった一塊)に表示され、類話毎に異なるキーワードが周囲のサブグラフに表示される形となっている。

※なお、各バブル間の距離や配置に意味はない。

◆対応分析

・[コーディング単位]を[H5]に設定する。

※[外部変数]は[書名]に変更して実行。
※[差異が顕著なコードを分析に使用]で上位「40」とした。また[バブルプロット]にチェックを入れている。これらは文字の重なりを極力避けるためである。
※文字が重なって読みづらい場合、オプション画面の[コード選択]で不要なコードのチェックを外してもよい。

x、y軸上の原点(0.0)から点線が伸び交差した箇所が原点となる。原点から離れるほど特徴的なキーワードだと分析される。

対応分析

原点付近に「三星」「妻」「三日先」というキーワードが配置されている。日本標準版が史実に近いと考えられるが、三星城主の妻となった直の方の人間関係の複雑さを示す「娘」「養女」、また兄弟の対立を示す「兄」「弟」「片木」といったキーワードが配置されている。未来社版では斎藤隠岐守が死後「隠岐園」と呼び変えられたことが特徴として挙げられている。

◆解釈

日本標準版と未来社版では背景となる人間関係が異なっており、その違いが特徴的な差として挙げられる形となっている。ハーベスト出版版は文字数も少なく、やや特徴に欠けるかもしれない。

◆階層的クラスター分析

・[コーディング単位]を[文]に変更、実行するとデンドログラム(樹状図)で可視化される。

階層的クラスター分析
階層的クラスター分析

概ねストーリーに沿った形でクラスター化されている。

※キーワード指定しても可。

※当ブログの場合、[コーディング単位]が[段落][H5]だと、コードを全て選択するとエラーが返される結果となった。

◆クロス集計

※タイトルが同名のため「出版社」で集計をかけた。

・[コーディング単位]を[文]に変更、[集計]する。

クロス集計をかけたところ、「薄原」「隠岐守」などでカイ(χ)2乗値で相関関係を示す結果(※マーク)が得られた。

Ca_pb_003_crt_kantan_20260308233901

マップとして描画したところ、「隠岐守」「片木」「殿さま」といったキーワードの残差が大きく(濃く)表示される結果となった。バブルとしては「戦争」「妻」などが大きく描画された。

Ca_pb_003_crt_bm_kantan_20260308234201

◆KWICコンコーダンス

現状ではテキストマイニングのツールに文脈を読む性能はないため実際に該当箇所を読んで人力で判断する他ない。KWICコンコーダンスでキーワード指定すれば指定したキーワードがどのような文脈で用いられているか一覧で抽出される。

KWICコンコーダンス
KWICコンコーダンス・文書表示

◆関連語検索

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

関連語検索

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

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

関連語検索

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

◆属性の転倒

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

N 抽出語 品詞 全体 共起 Jaccard
1 攻める 動詞  7 (0.086)  4 (0.250) 0.2105
2 三星 組織名  10 (0.123)  4 (0.250) 0.1818
3 城主 名詞  10 (0.123)  4 (0.250) 0.1818
4 名詞C  7 (0.086)  3 (0.188) 0.15
5 名詞C  18 (0.222)  4 (0.250) 0.1333
6 名詞C  19 (0.235)  4 (0.250) 0.129
7 名詞C  11 (0.136)  3 (0.188) 0.125
8 嫁ぐ 動詞  2 (0.025)  2 (0.125) 0.125

三日先まで予知する夢の枕のお陰で落城しなかった城だが、嫁いできた姫に枕を奪取され落城してしまう。城主は容易に枕を手放さなかったが、虫干しの日、急な雨で目を離した隙に枕を奪取されてしまう。

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

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

・[城|戦:落ちない/落ちる]
・[城主|枕:放さない/離す]

こういった風にお話を転がしていると分析できる。家宝の枕をお奪われた城は「難攻不落/落城」と転倒、城主もその運命が「生/死」へと転倒してしまう。

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

◆類似度行列

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

類似度行列

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

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

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

◆多次元尺度構成法

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

多次元尺度構成法

「負ける」と「ない」は案外離れていた。

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

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

◆自己組織化マップ

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

自己組織化マップ

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

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

◆トピックの推定

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

トピックの推定

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

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

◆ベイズ学習による分類

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

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

ベイズ学習による分類

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

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

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

◆参考文献
・『日本の民話 34 石見篇』(大庭良美/編, 未来社, 1978)pp.343-345.
・『島根の伝説』(島根県小・中学校国語教育研究会/編, 日本標準, 1978)pp.42-48.
・「夕陽を招く長者 山陰民話語り部シリーズ1」(民話の会「石見」/編, ハーベスト出版, 2013)pp.136-137.
・『動かして学ぶ!はじめてのテキストマイニング』(樋口耕一, ナカニシヤ出版, 2022)
・『社会調査のための計量テキスト分析 【第2版】 内容分析の継承と発展を目指して』(樋口耕一, ナカニシヤ出版, 2020)

|

« 2026年2月 | トップページ | 2026年4月 »