2016年12月21日水曜日

KH Coder

K君が実に興味深いフリーソフトを探してきてくれました。KH Coderです。これは,テキストデータを統計的に分析するフリーソフトウェアで,いわゆるテキストマイニングって奴ですね。これを使うと今やっている研究にかなり役立ちそうです。しかし,ざっとサイトを眺めただけでは使い方や結果の解釈の仕方がよくわかりません。そこで,このサイトで紹介されている参考書「社会調査のための計量テキスト分析」を購入することにしました。KH Coderのリファレンスマニュアルも掲載されているということなので役立ちそうです。
もっとも興味深いのは,「Rによる多変量解析と可視化」です。 ここでは,「階層的クラスター分析」をはじめ,様々な解析手法が紹介されており,とても興味深いです。ただし,このサイトからだけではそれぞれの解析手法がどのような仕組みで作られているかや,得られた結果をどのように見ていけばよいのかがわかりません。これについては注文した本が届くのを待つしかなさそうです。

クラスター分析

クラスター分析について解説されたこのサイトを見ると,サンプル間の距離を求めてそれを使ってクラスターに分けているようです。では,距離とは何か?
このサイトには「都道府県の特徴データ」を使った距離の定義方法が紹介されています。いろいろなやり方があるみたいですね。ここで重要なのは「特徴量」ベクトルです。「都道府県・・・」の場合は人口や降雪量,漁獲量,・・・といったデータを特徴量に使っていました。では,テキストマイニングの場合はどのように考えたらよいのでしょうか?
まず,サンプルとは何でしょうか?おそらくテキストから抽出した単語でしょうね。KH Coderの「抽出語・クラスター分析」を見ると単語をクラスターに分けていることがわかります。では,そのサンプル(つまり単語)の「特徴量」とは何でしょうか?
これについては明確な記載がありません。これは想像ですが,文(センテンス)が特徴量ではないでしょうか?例えば,解析対象の文がN個あるとして,それをD1, D2, ..., DNとします。そして,これらの文から抽出したある単語Wiがそれらの文に含まれるか(1)含まれないか(0)を要素とするベクトル(1, 0, ..., 1)を考えます。こうして作られた「特徴量」ベクトルが類似していると(たとえば頂点間のユークリッド距離やベクトルの内積,あるいは余弦などを使って類似度を計算),サンプル間の距離は小さいと判断するなどです。
この考え方があっているかどうかはわかりませんが,いずれにせよ,テキストから抽出した単語が個々のサンプルであることには間違いないでしょう。そして,各サンプルには何らかの特徴量が付随しているはずです。わたしは,それを単語を抽出した文(センテンス)と考えました。
では,なぜ文(正確には文に含まれる・含まれないという変量)が特徴量なのでしょう?
個々の文に個性がなければ特徴量とは言えません。しかし,もし,個々の文が何らかのカテゴリを持っていたら?例えば,この文は「子宮筋腫」について説明した文書,この文は「子宮内膜症」について説明した文,・・・といった具合に。そうすれば,ある単語がそれらの文(=カテゴリ)に登場するか否かを要素とするベクトルは立派な特徴量ベクトルと言えるでしょう。2つの単語(サンプル)の距離が近いということは疾患を説明する単語として類似している語と言えるのではないでしょうか。この方法で分析された単語は,疾患を説明する単語という観点から分析されていることになります。
例えばクラスター分析であれば,同一クラスターに分類された単語は疾患を説明する上で近い概念を表していると言えるかもしれません。共起ネットワークであれば,同じ疾患の説明文書に共起することが多い単語がネットワークで結ばれるでしょう。

今日のゼミで決まったこと

今日のゼミでは疾患と症状の区別がつきにくいということで,まず,みんなで手分けして疾患リストを作成しようということになりました。婦人病に関する疾患を紹介しているサイトや病院や診療所のサイトから婦人科疾患を収集します。その後,収集した疾患をマージし,最終的に今回の研究の対象となる疾患を絞ります。

0 件のコメント:

コメントを投稿