KH Coderを使った計量テキスト分析:共起ネットワークで文脈の変化を探る

複数回にわたって、KH Coderを使った計量テキスト分析について紹介しています。KH Coderは樋口耕一氏によって開発されたテキスト分析(テキストマイニング)のためのツールで、テキストの中で使用されている語を素早く集計・分析することができます。

https://khcoder.net

前回の記事では、KH Coderを研究で上手く利用するには比較の枠組みが大切だということと、語の出現頻度をグループ間で比較する方法をご紹介しました。

KH Coderを使った計量テキスト分析:頻出語の抽出とグループ間の比較

KH Coderを使ったテキスト分析(テキストマイニング)の方法をご紹介します。研究論文を書くことを目的として、グループ間の比較に重点を置きながらいくつかの記事を書い…

今回の記事では、語と語の共起関係(共起ネットワーク)に注目して、グループ間の違いや文脈の変化を探る方法について解説していきます。

今回も前回と同様に、サンプルとして用いたテキストデータは、KH Coderにあらかじめ入っている夏目漱石の『こころ』です。データは表1のようにエクセルにまとめられていて、「上」「中」「下」という3つの部に分かれています。

表1 テキストデータの配置

テキストデータの配置

今回もグループ間を比較するような研究を想定して、「上」「中」「下」という3つのカテゴリーに注目していきます。

全体の共起ネットワーク

まず「上」「中」「下」というカテゴリーのことは考えず、全体の共起ネットワークを作成してみました(図1)。

共起ネットワーク(全文)

図1 全文を対象にした共起ネットワーク

共起関係の強い(係数が大きい)語のペアとしては、「手紙」と「書く」、「顔」と「見る」、「父」と「母」、「奥さん」と「お嬢さん」、などが挙げられます(なお、ここでの解析単位は「文」としています)。これらのペアから連想できるのは、「手紙を書く」「顔を見る」「父と母」など、いわば一般的な表現で、実際に元のテキストを見てもそのように使われている文が多くありました。

全体としてこのような一般的な表現が多く使われていたというだけでは、研究としては物足りないものになってしまいますので、前回の記事でも紹介しましたように、ここからさらに「グループ間の比較」を検討していきます。

外部変数を用いた共起ネットワーク

KH Coderでは、共起ネットワークを出力するときに外部変数(グループ分けするための変数)を指定することができます。外部変数として「部」(上・中・下)を指定して共起ネットワークを作成した結果が図2です。

共起ネットワーク(外部変数)

図2 語と外部変数(上・中・下)の共起ネットワーク

図2から分かるように、外部変数を設定すると、語と外部変数との共起関係が出力されます。共起関係の強い(係数が大きい)ペアとしては、「上」では「先生」や「奥さん」、「中」では「父」や「母」、「下」では「K」や「奥さん」「お嬢さん」、などが挙げられます。

これらの語は、それぞれの部の中で多く使われていることを意味しており、前回の記事で紹介した、それぞれの部を特徴づける語と同じ結果になります(係数が一致)。

表2 各部(上・中・下)を特徴づける語

各部を特徴づける語

各部に特徴的な語のリスト(表2)を視覚化したのが、図2の共起ネットワークと言えます。

共起パターンの変化を可視化する

外部変数を用いた共起ネットワークでは、各外部変数と語の共起関係が可視化されますが、語と語の共起関係は分かりません。語と語の共起関係が外部変数とともにどのように変化するのか調べたいときは、KH Coderで共起ネットワークを作成する際に、「共起パターンの変化を探る(相関)」にチェックを入れて、「対象とする数値変数」を設定します。

この「対象とする数値変数」とは、回帰分析で設定する説明変数のようなイメージです。今回のサンプルデータで言えば、「上」「中」「下」という小説の流れにともなって共起関係がどのように変化するのかを調べたいので、「上」「中」「下」を示す列を「対象とする数値変数」として設定します。

ここで注意しなければならないのは、「数値変数」とあるように、設定する列は文字データではなく、数値データである必要があるということです。「上」「中」「下」は小説の流れを示すので、例えば「上」を1、「中」を2、「下」を3とするなどして、あらかじめエクセルシートの中に数値だけの列を作っておく必要があります。

この方法は、さまざまな比較研究で有用です。例えばアンケート調査の自由記述で、語と語の共起関係が回答者の年代によってどのように変化するのかを調べたいときは、年代(20代、30代など)を数値データに変換して「対象とする数値変数」に設定します。年代というグループに分けなくても、年齢の数値を直接使用することも可能で、むしろそのほうが変化を捉えやすくなるかもしれません。

今回のサンプルデータを解析した結果を図3に示します。

共起ネットワーク(相関)

図3 共起関係の変化を探るための共起ネットワーク

語をつないでいる線の色が青から黄、そして赤に変化するにつれて、「対象とする数値変数」が大きくなることを意味しており、今回の場合は小説が「上」「中」「下」と進んでいくことを表します。

例えば、「先生」と「奥さん」は青線でつながっているため、小説の前半で強く共起しており、「奥さん」と「お嬢さん」は赤線でつながっているため、小説の後半で強く共起しています。なぜこのようになっているのかという小説の内容についてはここでは割愛しますが、要するに自分が設定した数値変数に沿って語と語の共起関係の変化を探ることができるということです。

補足)ここで「小説の前半」「小説の後半」と書いたのは、相関を示す色がグラデーションになっていることからも、厳密には「上」「中」「下」の3グループに分類されているわけではないからです。図3では、「上=1」「中=2」「下=3」という連続的な流れの中で、共起関係がどのように変化したのかが可視化されています。

数値変数がない?

数値変数を使って共起関係の変化を可視化する方法を説明しましたが、データに数値変数がなく、カテゴリーを表す名称(いわゆる名義尺度)だけの場合はどうすれば良いのでしょうか。このような場合は、名義尺度を何らかの基準で順序尺度にできないか検討します。

例えば、ある職場で10人にインタビューして、その回答傾向を探るとします。仮に10人をランダムに選んだとしても、年齢や勤務年数などに基づいて、何らかの順番を付けることは可能です。

ただし、このような順番付けはデータを収集してから行うのではなく、データを収集する前、つまり研究を計画する段階で行っておくべきでしょう。前段落の例で言えば、「年齢や勤務年数によって回答傾向がどのように変化するか」という問いを事前に設定した上で、インタビューを実施するということです。前回の記事でも取り上げたように、「比較の枠組み」を事前に設定しておくことが大切です。

KH Coderを使った計量テキスト分析:頻出語の抽出とグループ間の比較

KH Coderを使ったテキスト分析(テキストマイニング)の方法をご紹介します。研究論文を書くことを目的として、グループ間の比較に重点を置きながらいくつかの記事を書い…

まとめ

今回の記事では、共起ネットワークを使ってグループ間を比較する方法をご紹介しました。「比較」をテーマにしているので「グループ」と書きましたが、必ずしもグループである必要はなく、年齢のような連続的な変数を使って共起関係の変化を探ることもできます。このように「比較」や「変化」の視点を取り入れながら研究計画を立てると、興味深い発見や考察につながりやすくなると思います。

次回は対応分析についてご紹介します。

参考文献

  • 樋口耕一『社会調査のための計量テキスト分析』2020年、ナカニシヤ出版
  • 樋口ほか『動かして学ぶ!はじめてのテキストマイニング』2022年、ナカニシヤ出版

この記事を書いた人

田中泰章

Yasuaki Tanaka

プロフィール

自然の仕組みや環境問題、社会・教育制度などについて広い視点から考える自然科学者。2008年に東京大学大学院で博士号(環境学)を取得した後、東京大学、琉球大学、米国オハイオ州立大学、ブルネイ大学など、国内外の大学で研究と教育に約15年間携わってきました。これまでに30報以上の学術論文を筆頭著者として執筆し、国際的な科学雑誌の査読者として多数の論文審査も行っています。大学教員としては、これまでに40名以上の学生(学部・修士・博士を含む)を研究指導し、若手研究者を育成してきました。専門は「人間と自然とのかかわり」で、人間活動が自然界に与える影響を生物学・化学・社会学などの複合的な視点から研究しています。

統計解析サービス

統計解析・データ分析のご依頼・ご相談に研究者が対応しています。量的分析・質的分析・テキストマイニングなど幅広く対応しておりますので、お気軽にお問い合わせくださ…

論文相談サービス

研究計画書の作成、統計解析、論文の書き方、査読への対応方法などについて、経験豊富な研究者に相談・質問することができます。初回相談料は無料ですので、お気軽にお問…