【MTMineR】サポートベクターマシン

スポンサーリンク

MTMineRのSVM

MTMineRでサポートベクターマシン(SVM)を実行する方法を紹介します。

対象

今回、対象とするテキストデータは小説です。
太宰治、芥川龍之介、森博嗣、素人の作品を分析します。

テキストマイニングツールのKH Coderは、品詞のBigramなどを出力できないため、MTMineRでないとできない分析です。

SVMのやり方

ここでは、形態素解析以降の手順を説明します。
いくつかの小説を教師データとして学習させ、テストデータが誰の作品であるか判別させます。

①品詞のn-gram出力

品詞の組み合わせを出力する手順を説明します。下記の手順と画像を参考にして下さい。

  1. <Processing Type>で<Tag>を選択
  2. これで、名詞など、品詞のタグを出力します。

  3. <Ngram Type>で<Bigram>を選択
  4. バイグラムとは、品詞の組み合わせのことです。

  5. <Ngram Extraction Type>で<Sentence>を選択
  6. ここで、句点で区切られた文を一文とします。

  7. <Cutoff>を50に設定
  8. 設定が完了したら<AllTag Processing>をクリックします。

クラスター分析

②R実行画面で相対頻度に変換

R実行画面を立ち上げ、データを相対頻度に変換します

  1. メニューから<R>をクリックし<Process Outputs In This Tab>を選択
  2. Set Data Nameで好きな名前を入力できますが、とりあえず、temp、で大丈夫です。

  3. <OK>を押し三つの画面が立ち上げる
  4. Run Rの画面の<Command>を<Proportion in Each Row>に設定
  5. 行(Row)の総和を基準とした相対頻度となります。

  6. 画面中央下の<Processing>を押す
  7. これで、相対頻度に変えることができます

  8. Run R画面上部の<Select Data>から、データの名前を選択
  9. Data Nameがtempの場合、名前はtemp.traです。

  10. Processing Sucessの画面は<OK>を押し閉じる
Bigram出力

③R実行画面でグルーピングする

作家を予めグループに分け、temp.tra.groupedというデータを作ります。
手順は下記の通りです。

  1. <Supervised>のタブで<Grouping>を選択
  2. <Enter the groups>を<Yes>に設定
  3. <Please enter groups separating by commans>の下にあるボックスに番号を入力
  4. 太宰治の作品が、上部のボックスの中で、49番目から74番目にあれば、<49:74>と入力します。

  5. <Please enter the name of groups separating by commans>の下にあるボックスにデータの名前を入力
  6. 画面下の<OK>を押す
MTMineRでGoupingする画面

④R実行画面でSVMを実行する

サポータベクターマシンを実行します。結果はOUTPUTの画面に表示されます。

  1. <Spervised>のタブで<SVM>を選択
  2. <Vriables>の下にあるボックスから<type>を選択
  3. 一番上の丸い青い右向きの矢印を押し<Denpendent variables:>の下のボックスへ移動
  4. 上から二番目の丸い青い右向きの矢印を押し全てのデータを移動
  5. ここでは全データをSVMに使用します。
    <Vriables>の下から<Indenpendent variables:>に移動しているはずです。

  6. 上から三番目の丸い青い右向きの矢印を押し全てのデータを移動
  7. 全データを学習データにします。
    <Subset>の下から<Training data:>にデータが移動しているはずです。

  8. <Training data:>からいくつかデータ選択
  9. Ctrlを押しながら左クリックで複数選択ができます。

  10. 上から三番目の丸い青い左向きの矢印を押しデータを移動
  11. <Training data:>の下から<Subset>にデータが戻ります。

  12. 上から四番目の丸い青い右向きの矢印を押しデータを移動
  13. <Subset>の下から<Testing data:>にデータが移動します。

  14. <Output>の<Testing>にチェックを入れる
  15. 画面下の<OK>を押します。
MTMineRでサポートベクターマシンを実行する

SVMの結果

下図のような結果が出力されます。
結果をみると、素人(マゼンタ)の作品が識別できています。精度は100%です。

MTMineRサポートベクターマシンの結果

参考文献

テキストマイニングによる筆者識別の正確性ならびに判定手続きの標準化
2.5文体的特徴で、品詞のbigramの記述があります。筆者識別力が高い文章の特徴として挙げられています。また、この論文はMTMineRを使って分析してます。

ランダムフォレスト法による文章の書き手の同定
タイトルはランダムフォレストですが、サポートベクターマシンも使用しています。書き手の同定について、その有効性をk近傍法などの手法と比較しています。

タイトルとURLをコピーしました