RMeCabを使う (2)

 前回に引き続き、RMeCabパッケージの使い方を紹介します。Ngram関数を使うと、以下のように、文字n-gram、単語n-gram、品詞n-gramを簡単に集計することができます。*1

# パッケージの読み込み
library(RMeCab)
# 文字3-gram
Ngram.1.result <- Ngram("C:/PM/Abe.txt", type = 0, N = 3)
# 単語3-gram
Ngram.2.result <- Ngram("C:/PM/Abe.txt", type = 1, N = 3)
# 品詞3-gram
Ngram.3.result <- Ngram("C:/PM/Abe.txt", type = 2, N = 3)
# 頻度順に並び替え
Ngram.1.sorted <- Ngram.1.result[order(Ngram.1.result$Freq, decreasing = TRUE), ]
Ngram.2.sorted <- Ngram.2.result[order(Ngram.2.result$Freq, decreasing = TRUE), ]
Ngram.3.sorted <- Ngram.3.result[order(Ngram.3.result$Freq, decreasing = TRUE), ]
# 頻度上位10位までを表示
head(Ngram.1.sorted, 10)
head(Ngram.2.sorted, 10)
head(Ngram.3.sorted, 10)

 上記のスクリプトを実行すると、以下のような結果が表示されます。

# 文字3-gram
          Ngram Freq
2114 [--]  109
959  [--]   40
2369 [--]   26
516  [--]   18
1176 [--]   18
191  [--]   17
1531 [--]   17
1361 [--]   16
1252 [--]   15
1633 [--]   15
# 単語3-gram
                    Ngram Freq
373            [--]    4
656          [--世紀]    4
1750     [美しい--日本]    4
1008         [平成--]    3
1291         [--同盟]    3
266  [-世紀-ふさわしい]    2
370            [--]    2
376            [--]    2
385            [--]    2
392        [京都-議定-]    2
# 品詞3-gram
               Ngram Freq
117 [名詞-助詞-名詞]  545
128 [名詞-名詞-助詞]  322
55  [助詞-名詞-助詞]  290
116 [名詞-助詞-動詞]  247
180 [記号-名詞-助詞]  231
130 [名詞-名詞-名詞]  177
182 [記号-名詞-名詞]  167
57  [助詞-名詞-名詞]  153
68  [助詞-記号-名詞]  153
56  [助詞-名詞-動詞]  136

 また、collocate関数を使うことで、共起語(コロケーション)の集計を行うこともできます。

# 共起語の集計
# 以下の例では、「国」を検索語とし、スパンを1語
collocate.result <- collocate("C:/PM/Abe.txt", node = "国", span = 1)
# 共起尺度 (T, MI) の計算
collScores.result <- collScores(collocate.result, node = "国", span = 1)
# Tスコア上位10位までを表示
head(collScores.result[order(collScores.result$T, collScores.result$MI, decreasing = TRUE), ], 10)
# MIスコア上位10位までを表示
head(collScores.result[order(collScores.result$MI, collScores.result$T, decreasing = TRUE), ], 10)

 上記のスクリプトを実行すると、以下のような結果が表示されます。*2

# Tスコア上位10位まで
     Term Before After Span Total         T        MI
26 美しい      8     0    8     9 2.7866007 6.0794399
92     4    6    87 1.9826183 2.3913839
19   創る      0     3    3     3 1.7092834 6.2493649
23     7   10   377 1.5951836 1.0128723
30     3    3    38 1.4436631 2.5863999
141     7    8   309 1.3923849 0.9779019
24   理事      2     0    2     4 1.3770345 5.2493649
1             3     0    3    56 1.3070585 2.0269725
18   入り      0     1    1     1 0.9868552 6.2493649
82     0    2    47 0.9773593 1.6947760
# MIスコア上位10位まで
     Term Before After Span Total         T       MI
18   入り      0     1    1     1 0.9868552 6.249365
19   創る      0     3    3     3 1.7092834 6.249365
26 美しい      8     0    8     9 2.7866007 6.079440
24   理事      2     0    2     4 1.3770345 5.249365
27   開催      1     0    1     2 0.9737104 5.249365
25 続ける      1     0    1     3 0.9605656 4.664402
22   持つ      1     0    1     4 0.9474208 4.249365
23 新しい      1     0    1     4 0.9474208 4.249365
20 含める      1     0    1     5 0.9342760 3.927437
6    この      1     0    1     7 0.9079865 3.442010

*1:引数typeでn-gramの種類を、引数Nでn-gramにおけるnの数を指定します。

*2:TスコアとMIスコアについては、こちらの記事も参照してください。また、LLRやDといった他の共起尺度に関しては、こちらの記事を参照してください。

広告を非表示にする