『Rで学ぶ日本語テキストマイニング』の紹介

概要
R言語によるさまざまなテキストマイニングの事例を挙げた『Rで学ぶ日本語テキストマイニング』の紹介。この本では、主に言語学の研究に役立つテキストマイニングの手法が挙げられている。

どんな書籍か

以下の書籍について紹介したいと思う。

この本は、テキストマイニング、すなわち、大量の文章から情報を引き出す分析について説明している。分析の対象は基本的に日本語である。そして、事例は、基本的には言語学の研究を念頭に置いている ((テキストマイニングは、大量の口コミの分析をするなど、ビジネス向けにも使うことができる。ただ、この本で挙げられている事例は、あくまでも言語学の研究に資するものとなっており、ビジネス向けの例などはない)) 。また、分析に使用するツールは、書名にもあるようにRというプログラミング言語である。

なお、もしこの本が難しいと感じるようであれば、以下の2冊のどちらかを読むのが良いだろう。

私の個人的な感覚になるが、難易度は簡単な方から『Rによるやさしいテキストマイニング』 < 『Rによるテキストマイニング入門』 < 『Rで学ぶ日本語テキストマイニング』の順になる。

各章の内容

以下、この本の各章の内容について、簡単に紹介していきたい。

前半部分:テキストマイニングとRの基礎

この本の前半の3章は、テキストマイニングとRについての基礎を説明している。ここではまだ具体的な分析事例は出てこない。

  • 第1章「テキストマイニングとは何か」
    • その名の通り、テキストマイニングとは何か説明し、テキストマイニングを支えるデータや解析器について説明する。
      • テキストマイニングとは何かについての大まかな説明。
      • テキストマイニングが発展する前から、計量言語学という分野があり、そこで計量的な言語研究がなされてきたことの説明。
      • コーパス、形態素解析、構文解析、意味解析といった用語についての説明。
      • 日本語・日本文学研究においてどのようなテキストマイニングが行われてきたかの説明。
  • 第2章「Rと基本統計量」
    • この本の分析で用いることになるRの基礎を説明する。
      • Rのインストール方法。
      • Rの基本的な用法。
      • Rを使って、平均や標準偏差といった基本統計量を求める方法。
  • 第3章「Rによるテキストマイニング」
    • 日本語の文章の形態素解析の方法について説明する。
      • 茶筅」と呼ばれる形態素解析器でRを使わずに形態素解析を実施したあとに、その結果をRに読み込む方法。
      • RMeCab というパッケージを使って、Rの中から形態素解析を実施する方法。また、このパッケージを使った頻度表の作成、n-gramの作成、複数ファイルの同時解析、共起語の抽出についての解説。

後半部分:さまざまなテキストマイニングの事例

後半の7章は、さまざまなテキストマイニングの事例を挙げ、あわせて具体的な分析手法を紹介している。

  • 第4章「日本語作文のテキストマイニング――大学生が書いた作文を例に」
    • 「大学生が書いた日本語作文の使用語彙の頻度は、作文のテーマに影響を受けるか」という仮説を検証する事例が挙げられている。
      • 独立性の検定、相関分析を実施。
  • 第5章「政治的談話のテキストマイニング――所信表明演説を例に」
    • 8人の総理大臣による13回の所信表明演説のデータをもとに、演説のグループ分けを行う事例が挙げられている。
      • 対応分析、クラスター分析を実施。
  • 第6章「対照言語データのテキストマイニング――ヨーロッパ10言語の数詞を例に」
    • ヨーロッパの言語の数詞のデータをもとに、言語間の類似関係を探る事例が挙げられている。
      • 多次元尺度法による分析を実施。
      • Rの ape パッケージの as.phylo() 関数を用いて、系統樹による分析を実施。
      • この章では日本語の事例は扱われていない。
  • 第7章「対話形式データのテキストマイニング――『機動戦士ガンダム』の台本を例に」
    • アニメ『機動戦士ガンダム』のセリフを書き起こしたデータをもとに、登場キャラクターの関係を可視化する事例が挙げられている。
      • Rの igraph パッケージを使って、ネットワーク分析を行う。
  • 第8章「文学作品のテキストマイニング――芥川龍之介と太宰治を例に」
    • 芥川龍之介と太宰治の小説から、読点がどこで現れるかというデータを取り出し、それをもとに著者推定を行う。
      • クラスター分析を実施。
      • Rの MASS パッケージの lda() 関数を用いて、線形判別分析を実施。あわせて、交差妥当化(クロスバリデーション)を実施。
      • Rの e1071 パッケージの svm() 関数を用いて、サポートベクターマシン (SVM) を使った分析を実施。
  • 第9章「ジャンル別データのテキストマイニング――書き言葉均衡コーパスを例に」
    • 文末表現のデータをもとに、文章のジャンルを判定する事例が挙げられている。
      • Rの e1071 パッケージの naiveBayes() 関数を用いて、ナイーブベイズによる分析を実施。
      • Rの class パッケージの knn() 関数を用いて、k 近傍法による分析を実施。
      • Rの adabag パッケージの bagging() 関数を用いて、アンサンブル学習の1つであるバギング (bagging) を実施。
  • 第10章「方言データのテキストマイニング――「茸」のアクセントパターンをもとに」
    • 「茸」のアクセントのデータをもとに、話者の出生地と年齢からアクセントパターンを推定する事例が挙げられている。
      • Rの mvpartパ ッケージを用いて、決定木を作成。
      • Rの randomForest パッケージを用いて、ランダムフォレストを実施。

注釈