RパッケージRMeCabで用意されている関数

参考文献

Rのパッケージ RMeCabは、指定したファイルを形態素解析エンジン MeCabに渡して形態素解析を実施し、MeCabから返す次の結果様式

表層形  品詞  品詞細分類1  品詞細分類2  品詞細分類3  活用形  活用型  原形  読み  発音

を使ったさまざまな機能(関数)が用意されている。 その一つが、形態素の頻度で利用した関数 RMeCabFreq( ) で、テキスト内の形態素原形の登場頻度をデータフレームとして返すものであった。 RMeCabFreq 以外の関数を紹介しておこう。

パッケージRMeCabの利用法を知る

IF_to_MeCab

Rパッケージ RMeCab を利用するには(インストールした)パッケージ名を library() 関数の引数にセットして読み込む。 読み込んだパッケージの利用法を知るには、パッケージを読み込んだ以降で 「??パッケージ名」を入力する(パッケージ名を指定する場合には2つの「??」)。

> library(RMeCab)
> ??RMeCab

すると、別ウィンドウにパッケージ RMeCabの関数一覧が表示され(実は、パッケージには他にも多数の有用な関数が用意されている)、6種の関数 RMeCabC、RMeCabDF、RMeCabDoc、RMeCabFreq、RMeCabMx、RMeCabText が表示される。 該当関数をクリックすると、その説明が表示される。 既に関数名が分かっている場合には、その使い方を知るにはパッケージを読み込んだ以降で 「?関数名」を入力する(関数名を指定する場合には1つの「?」)。

> library(RMeCab)
> ?RMeCabFreq

関数のヘルプの最後の行にある[Package RMeCab version 0.996 Index]で、indexをクリックすると、右図のように Interface to MeCabと題したウィンドウにRMeCabパッケージで提供される全関数とそのhelpへのリンクが得られる。 パッケージ RMeCab で用意されているMeCab間での関数は次のような33個の関数がある。

collocate collScores coOccurrence docDF docMatrix docMatrix2 docMatrixDF docNgram docNgram2 docNgramDF docVector entropy globalEntropy globalIDF globalIDF2 globalIDF3 globalNorm localBin localLogTF localTF makeNgram mynorm Ngram NgramDF NgramDF2 print.docMatrix removeInfo RMeCabC RMeCabDF RMeCabDoc RMeCabFreq RMeCabMx RMeCabText

RMeCabの主な関数群

RMeCabC, RMeCabText

RMeCabCは、引数に二重引用符「"」で挟んだ日本語文字列を与えてMeCabに渡し、その結果をリスト形式でそのまま返す関数。 リストの各要素にアクセスするには、[[要素番号]] と2重大括弧で指定する。

次の例は、「すもももももももものうち」の結果である。 リストの1番目を sumomo[[1]] で表示している。 sumomo2 はリスト形式から関数 unlist を使ってベクトル形式に直している。 ベクトル形式にするとその要素にラベル名でアクセスできる。 関数 names でベクトル sumomo2 のラベルを表示させた。 これを使うと、たとえば、ベクトル内のラベルが"名詞"だけを表示することができる。

> sumomo <- RMeCabC("すもももももももものうち")
> sumomo[[1]]
    名詞 
"すもも" 
> sumomo2 <- unlist(sumomo)
> sumomo2
    名詞     助詞     名詞     助詞     名詞     助詞     名詞 
"すもも"     "も"   "もも"     "も"   "もも"     "の"   "うち" 
> names(sumomo2)
[1] "名詞" "助詞" "名詞" "助詞" "名詞" "助詞" "名詞"
> sumomo2[names(sumomo2) == "名詞"]
    名詞     名詞     名詞     名詞 
"すもも"   "もも"   "もも"   "うち"

RMeCabTextは、引数に日本語テキストファイル(文字符号化はRの設定値に一致していなければならない)を二重引用符「"」で挟んで指定して、MeCabに渡し、その結果をリスト形式でそのまま返す関数。 各リストの要素は、10要素からなるベクトルである。

次は、テキスト nakahara.txt を読み込んで、その1番目のリスト内容(10要素からなるベクトル)を表示している。

> nakahara <- RMeCabText("nakahara.txt")
file = nakahara.txt 
> nakahara[[1]]
 [1] "汚れ"   "動詞"   "自立"   "*"      "*"      "一段"   "連用形"
 [8] "汚れる" "ヨゴレ" "ヨゴレ"

RMeCabFreq

関数 RMeCabFreq の詳しい使い方は、形態素の頻度分析にある。

docMatrix, docMatrix2, docMatrixDF

関数ファミリー docMatrix, docMatrix2, docMatrixDF は、検索語・文書行列(term-document matrix)を生成する関数である。 検索語・文書行列とは、あるterm(形態素原形)$t_j$ が文書ファイル $d_k$ 内に現れる頻度を $f_{ij}$ として、指定したカテゴリの全ての$m$語のterm $t_j (j=1\dots m)$ と検索する全ての$n$個の文書ファイル $d_k (k=1\dots n)$ について求めた行列 $F=(f_{jk})$ のことである。 検索語・文書行列によって、文書間の類似性(あるいは差異)を検討することができる。 ある文書集合においてあるterm群が高い頻度で登場している一方で、別の文書集合では同じターム群が低い頻度でしか現れないとすれば、それら2つの文書集合は語彙の使い方において別種の文書グループとして類別してもよいだろう。

docNgram, docNgram2, docNgramDF, Ngram, NgramDF, NgramDF2

関数ファミリー docNgram, docNgram2, docNgramDF, Ngram, NgramDF, NgramDF2 はテキストのNグラム(N-gram)統計を返す関数である。

collocate, collScores

関数ファミリー collocate, collScores は、コロケーション(collocation)の頻度とTスコアおよびMIスコアを調べる関数である。

RMeCabDF

関数 RMeCabDF は表データ(データフレーム)を読み込んで,表データの指定した列にある各行の形態素解析結果をリスト形式で返す。