2016年3月30日水曜日

語句の出現頻度

前回、文章を形態素に分割(分かち書き)しました。でも、「文章をいちいち入力するのー?」と思われた方もおられるでしょう。便利なことに、テキストファイルを読み込むコマンドが用意されています。で、文章として著作権がフリーの青空文庫(https://www.aozora.gr.jp/)の作品を読み込んでみましょう。ここでは、宮沢賢治の「風の又三郎」を読み込みます。
青空文庫のホームページにアクセスして、作品をダウンロードしようとすると、「テキストファイル(ルビあり)」とか書いてあります。ルビ付きなんですね。ということは、テキスト処理するときは、それを取り除かないといけないですね。で、RMeCabにはまたまた便利な機能があるんです。青空文庫の作品を読み込んでくれて、しかもルビを削除してくれる関数が。以下のようにコマンドを打ちこんで下さい。
> source("http://rmecab.jp/R/Aozora.R")
> kaze <- Aozora(url = "https://www.aozora.gr.jp/cards/000081/files/462_ruby_716.zip")
> kaze
[1] "./NORUBY/kazeno_matasaburo2.txt"
>

ルビのないテキストファイルが、NORUBYというディレクトリに作られました。このkazeno_matasaburo2.txtというファイルをテキストエディタで開いて、確認してみて下さい。ここで形態素解析をして、各単語の出現頻度を求めてみましょう。
> library(RMeCab)
> freqapp <- RMeCabFreq(kaze)
file = ./NORUBY/kazeno_matasaburo2.txt 
length = 2025
> head(freqapp)
    Term    Info1 Info2 Freq
1     あ フィラー     *   28
2   あの フィラー     *    3
3 うんと フィラー     *    1
4     え フィラー     *    4
5 なんか フィラー     *    1
6     ま フィラー     *    4

Termというのが形態素で、Info1が品詞(大分類)、Info2が品詞細分類、Freqが出現頻度を表しています。フィラーというのは、デジタル大辞泉によれば、「埋めるもの」「詰め物」の意です。こういう語句は必要なかったりしますので、subsetという関数を使って、抽出したい品詞や除外したい品詞を指定します。で、大分類から「形容詞」を残して、細分類から数、非自立、接尾にあたる用語を除外します。
> freqapp1 <- subset(freqapp, Info1 %in% c("形容詞"))
> freqapp2 <- subset(freqapp1, !Info2 %in% c("数", "非自立", "接尾"))
> freqapp3 <- freqapp2[order(freqapp2$Freq, decreasing = T),]
(上のコマンドは、単語を出現頻度順に並べ直しているだけです。)
> head(freqapp3)
    Term  Info1 Info2 Freq
65  ない 形容詞  自立   43
114 白い 形容詞  自立   19
101 青い 形容詞  自立   15
38  いい 形容詞  自立   14
79  悪い 形容詞  自立   13
104 赤い 形容詞  自立   13

で、1列目(Term)と4列目(Freq)を抜き出してデータフレームを作った上で、上位20個に絞り込みます。
> freqapp1.df <- data.frame(word=as.character(freqapp3[,1]), freq=freqapp3[,4])
> freqapp2.df <- subset(freqapp1.df, rank(-freq)<20)

barplotを使って、ヒストグラムを表示してみましょう。「風の又三郎」は、不思議な物語です。それが、文章表現に表れているでしょうか。
> x <- freqapp2.df$freq
> names(x) <- freqapp2.df$word
> barplot(x, ylab = "Freq", las = 2)

2016年3月22日火曜日

RMeCabのインストール

RにはRMeCab(石田基広氏による)というテキスト処理を行うためのパッケージがあり、日本語文章の解析ができるようになります。RMeCabは、MeCab(工藤拓氏による)という形態素解析ソフトと連携して動作しています。形態素解析は文章を形態素に分解し、各形態素の品詞を特定します。形態素は「意味を持つ語の最小単位」です。
で、RMeCabをインストールします。まず、準備としてMeCabをダウンロードし、インストールします。OSとしてWindowsを想定しています。MeCabは、http://taku910.github.io/mecab/ からダウンロードできます。

「ダウンロード」にある「Binary package for MS-Windows」の下、「mecab-0.996.exe」横のダウンロードをクリックします。ファイルがダウンロードできたら、この実行ファイルをダブルクリックします。そうすると、インストールが始まります。幾つかポップアップ画面が出て来ますが、defaultのままOKでよいです。

MeCabは、CドライブのProgram Files (x86)の中に入ります。Windowsではこれで辞書もインストールされますので、すぐRMeCabを使えます。Windowsならば、desktopに「MeCab」アイコンができているはずですから、これをダブルクリックします。もし見当たらなければ、menuから「MeCab」を選択して起動します。ウィンドウ画面が出てきますので、何か文章を入力します。で、形態素解析の結果が表示されれば、MeCabが正常にインストールされたことがわかります。

次に、RMeCabをインストールします。RMeCabは石田基広氏によって開発され、Rのinstall.packagesでインストールできます。RStudioを起動し、以下のコマンドを実行してインストールします。
install.packages("RMeCab", repos = "http://rmecab.jp/R")

インストールに成功したら、以下のコマンドを入力して、正常にインストールされたことを確認します。
> library(RMeCab)
> rmec <- RMeCabC("私は誰だ。")
> unlist(rmec)
  名詞   助詞   名詞 助動詞   記号
   "私"   "は"   "誰"   "だ"   "。"
>

2016年3月12日土曜日

Rのインストール

 統計解析ツールRのインストールの仕方をやっていませんでした。Rをインストールする機会がありましたので、ここに記録しておきます。Rのインストールの仕方については、書籍やネット上に情報がありますから、それも参考にして下さい。
 表計算ならExcelでもできますし、コマンドを打たなければいけないという面倒さはありますが、ちょっとした統計解析を行うなら、便利な関数が色々用意してあるRが良いようです。
  Rは、Rプロジェクトのホームページ(https://www.r-project.org/)からダウンロードします。このURLに行くと、以下のようなページが出てきます。
左側のメニューで、Downloadの下にある「CRAN」をクリックします。
と、このようなページが現れます。これはダウンロードサイトのリストで、日本のサイトはページの中程にあります。
どれかを選択してクリックしますと、このようなページが出現します。ここではOSとしてWindowsを使っていることを仮定して、「Download R for Windows」をクリックします。
そうすると、このようなページが表示されます。baseをクリックします。
2016年3月時点ではR-3.2.4が最新です。「Download R-3.2.4 for Windows」をクリックしますと、ダウンロードを開始します。 で、ダウンロードが完了したとします。ダウンロードされたファイルをダブルクリックします。
インストールプログラムが起動します。これは使用言語の選択で、自動的に「日本語」が選択されています。「OK」をクリックします。
セットアップウィザードが立ち上がりますので、そのポップアップ画面の下辺りにある「次へ」ボタンをクリックしていきます。ライセンスや設定について確認してきますが、取りあえず「次へ」ボタンでも大丈夫です。
このようにインストールが始まります。
インストールが終了すると、このような画面が出てきます。「完了」ボタンをクリックします。
インストールのセットアップ時に何も変更を加えなければ、このようなアイコンがデスクトップに出現します。64ビット機PCなら「R x64 3.2.4」と「R i386 3.2.4」とありますが、「R x64 3.2.4」を使います。これをダブルクリックします。
このような画面が表示されていれば、インストール成功です。「R Console」に右矢印「>」が、表示されています。これはプロンプトと呼ばれ、コマンドを入力できる状態であることを表します。Rを終了するコマンド「q()」を入力すると、Rが終了します。
このとき、このようなポップアップ画面が現れ、データを保存するかどうかを訊いてきます。データを保存するなら、必ず「はい」ボタンをクリックします。