Tech Blog

Information Technology / Machine Learning / Data Analysis / Big Data / System Integration

RMeCabで複数のテキストファイルの頻出ワードを抽出する

RMeCabとは

形態素解析MeCabでもできるが、RMeCabを用いると、より手軽にかつ多様な処理を実行することができる。RMeCabは、RでMeCabを呼び出すインタフェースである。Rはオープンソースのデータ解析/マイニング言語であり、以下からインストールできる。
http://www.r-project.org/

RMeCabは、予めMeCabがインストールしてあれば、zipをダウンロードして、RGuiから[パッケージ]>[ローカルにあるzipファイルからのパッケージのインストール]を選択するだけで、インストールできる。
http://rmecab.jp/wiki/index.php?RMeCab 

 

目的と手法

そこで、ここではRMeCabでディレクトリ中ファイルの単語の出現頻度のランキングを作成する。以下のスクリプトをRで実行する。歌詞のテキストファイルはLyrics Master等を用いて作成しておく。 

# RMeCabの読込み
library(RMeCab)
 
# 指定ディレクトリ中のファイル内に含まれる単語の出現頻度を計算する
a <- docMatrix("C:/LyricsWorkspace/Lyrics")
 
# 全ファイルの単語の合計出現頻度を入れる行列を用意する
b <- matrix(0:0, nrow=nrow(a), ncol=1)
# ファイルごとの単語の出現頻度を合計する
for(i in 1:nrow(a))b[i,1] <- sum(a[i,])
# 行名を単語、列名をtotalにする
rownames(b) <- rownames(a)
colnames(b) <- "total"
 
# 単語を出現頻度順にソートする
c <- b[order(b[,1], decreasing=TRUE),]
 
# 保存
write.table(c,"C:/LyricsWorkspace/DocMatrix/total.txt")

 

結果

すると、単語の出現頻度ランキングが出力される。

f:id:tkdmah:20121231010628p:plain