データ工学特論 第六回 木村昌臣
本日の話題 テキストマイニングとは 構造化・非構造化データ 重要な自然言語処理の手法 形態素解析 係り受け解析 数値化の方法
テキストマイニング 文書データに対し、中に含まれる単語などにもとづき、有用な情報を抽出する手法 など 文書の分類 文書の特徴をあらわす語(特徴語)の抽出 特徴語の間の関連性の分析 特徴語の時系列追跡 など
構造化データ・非構造化データ 構造化データ 非構造化データ テキストに書いてある文章に含まれている単語を抽出し・・・ 購入可否 性別 年齢 ○ 男性 35 × 42 女性 23 データの属性が分かっているので そのままデータマイニング手法を適用 できる そのままではデータの属性を知ることが 出来ないため、直接データマイニング手法を 適用できない
一般的なテキストマイニングの処理の流れ 文書 同義語・類義語 の置換処理 形態素解析 ストップワード 係り受け解析など の削除処理 同義語・類義語 の置換処理 ストップワード の削除処理 形態素解析 係り受け解析など 数値データへの変換 データマイニング手法の適用
形態素解析 生命 (名詞) を 守る の が 私 たち の 使命 です 文を形態素(≒単語)に分解し、品詞を付加する方法 どんな単語が頻出しているかを調べるのに適している 例「生命を守るのが私たちの使命です」 生命 (名詞) を (助詞) 守る (動詞) の (助詞) が (助詞) 私 (名詞) たち (名詞) の (助詞) 使命 (名詞) です (助動詞)
ツール(茶筌:chasen) 形態素解析を実行するツール http://chasen.naist.jp/hiki/ChaSen/
係り受け解析 文中の単語間の依存関係を抽出 「○○が××だ」と評判等の抽出に適している 例「生命を守るのが私たちの使命です」 生命(を) 修飾-被修飾 主語-述語 「○○が××だ」と評判等の抽出に適している 例「生命を守るのが私たちの使命です」 生命(を) 守る(のが) 私たち(の) 使命(です)
ツール(南瓜:cabocha) 係り受け解析を実行するツール http://chasen.org/~taku/software/cabocha/
× × × 同義語置換処理・ストップワード削除 同じ意味の単語はまとめてから数値化 助詞・助動詞・「こと」「ある」などはそれ自体意味を持たないので解析対象としない 生命 を 守る の が ・・・・ × × × 命 を 守る の が ・・・・
何故、同義語をまとめるか(1) このパソコンはデザインが良い 二つの商品に関するアンケートの結果、以下のような結果が得られた場合を考える。何についての話題が多いだろうか? このパソコンはデザインが良い PCにしては良いつくりをしている コンピュータの表面はすべすべしていて気持ちいい この椅子は硬い リクライニングする椅子は好きだ
何故、同義語をまとめるか(2) 形態素解析を形式的に適用した結果からは、椅子についての意見がよいとされてしまう。 実際は、コンピュータ、PC、パソコンは同じものを指しているのでまとめて集計する必要がある 名詞 件数 椅子 2 コンピュータ 1 PC パソコン 名詞 件数 椅子 2 パソコン 3
数値化 以下の数値などを求めてデータマイニング手法を適用する 単語の生起頻度 tf・idf エントロピー など 全体の単語の利用傾向を示す 対象となる文章群において、ある単語が特定の文章中に多く表れることを示す(文書を代表する特徴語を特定) など
単語の生起頻度 文書群のなかである単語が何度出現しているかを算出 類義語やストップワードの処理をあらかじめ実施することが必要 全体として大まかにどのようなテーマについて話しているかを把握 類義語やストップワードの処理をあらかじめ実施することが必要 特にストップワードは上位に来ることが多く、解析に影響を及ぼす可能性あり 単語間を関連付ける情報が欠落 ある程度、文書群の内容を知らないと何について書かれているのか判断が困難
ある医療系の文章群に現れた名詞(頻度順) ストップ ワード 同義語
TF・IDF TF : ある単語tがある文書d中に出現する回数 IDF : ある単語を含む文書の文書全体と比較した割合の逆数
エントロピー ある単語tが文書diに現れる確率をp(t,i)と書く。単語tが特定の文書に偏って現れる指標としてエントロピーを利用する。
ベクトル空間モデル 文書に含まれる単語についての指標を成分にもつベクトルを使ったモデル 文書間の類似度をベクトルのなす角として定義できる wt1,dは、単語t1の出現頻度やtf・idf値をとる 文書間の類似度をベクトルのなす角として定義できる
特異値分解(1) ベクトル群の特徴を保ちつつ次元圧縮する方法 M×N行列Aを次のように与える 単語数が多い場合に値0を持つ要素が多く、疎な行列となり、単語や文書のノイズの影響を受けやすい M×N行列Aを次のように与える
特異値分解(2) 行列Aは次のように分解できる ただし、rank(A)=r であるとき、UはM×r行列、VはN×r行列、∑はr×rの半正定値対角行列であり、 UとVは以下を満たす ベクトル の代わりに行列Uの各行ベクトルを用いる
特異値分解の証明(概略) は半正定値対称行列 の正の固有値を大きい順に とし、 対応する固有ベクトル(規格化したもの)を とすると、 の正の固有値を大きい順に とし、 対応する固有ベクトル(規格化したもの)を とすると、 かつ と定義すると
U=AV∑-1のときA= U∑VTである証明(概略) とおく。wはvと直交し、 規格化されているとする Wは直交行列であるから よって
テキストマイニングの事例
医薬品の使用安全性に関するアンケートの解析 医師 薬剤師 看護師 患者 意見 (文章) 意見 (文章) 意見 (文章) 意見 (文章) テキストマイニング手法による解析 医師固有の意見 薬剤師固有の意見 看護師固有の意見 患者固有の意見 共通の意見 再分類
対象データ 「薬効(領域)マーク・製品名表示品による 『使用の安全』確保のためのアンケート調査」 (トーアエイヨー社実施)の自由記述回答部分 「全身用経皮吸収剤を選択される理由をお教えください」の「その他・コメント」回答欄(737件) 「全身用経皮吸収剤の医療事故対策に関するご意見、ご要望がございましたらご記入ください」 (2115件)
データの構成 名詞が各職種に属する回答者の回答に現れる頻度を計算し、さらに職種毎の相対度数を計算。その結果を3次元ベクトルと見做す 単語 医師 看護師 薬剤師 患者 n11 n12 n13 経口 n21 n22 n23 減る n31 n32 n33 簡単 n41 n42 n43 ・・・・ ・・・
選択理由 (K-means法:K=4) 共通に現れる語 薬剤師・ 看護師 固有に 現れる語 医師固有 に現れる語
各クラスタ内の主要語 「経口で投与できない 患者に使用できる」 経口薬の量に着目 使用可能性や 容易さに着目 共通に現れる語 医師固有に現れる語 薬剤師・看護師固有に現れる語
意見・要望(K-means法:K=4) 医師固有 に現れる語 看護師 固有に 現れる語 薬剤師 固有に 現れる語 薬剤師 医師 各ベクトルを 平面X+Y+Z=1 へ射影してから クラスタリングしている 看護師
各クラスタ内の主要語 医師 薬剤師 看護師
次回 代表的なテキストマイニングの適用例の紹介 文書のクラスタリング 単語の共起関係抽出 特徴語の間の関連性の分析 特徴語の時系列追跡 など