RMeCabの簡易版
テキストマイニングのためのツール: データ解析・グラフィックス環境 R から日本語形態素解析ソフト和布蕪(MeCab)を呼び出して使うインターフェイス
第 1 引数で指定されたファイル (フォルダが指定された場合は,その中の全ファイル),あるいは第1引数でデータフレームを,また第 2 引数で列(番号あるいは名前)を指定して,Ngram行列,あるいはターム・文書行列を作成する.指定可能な引数は
Ngram
> setwd("C:/data")
> (res <- docDF("doc")) # docフォルダの全ファイルを対象に
file = doc1.txt
file = doc2.txt
file = doc3.txt
file_name = doc/doc1.txt opened
file_name = doc/doc2.txt opened
file_name = doc/doc3.txt opened
number of extracted terms = 15
now making a data frame. wait a while!
Ngram doc1.txt doc2.txt doc3.txt
1 。 1 1 1
2 い 0 0 1
3 す 1 1 1
4 で 1 1 1
5 の 0 1 0
6 は 1 1 1
7 ま 0 0 1
8 を 0 0 1
9 ん 0 0 1
10 女 0 1 1
11 学 1 2 2
12 彼 0 1 1
13 数 0 1 1
14 生 1 1 0
15 私 1 0 0
ターム・文章行列
> (res <- docDF("doc", type = 1, N=1))
file = doc1.txt
file = doc2.txt
file = doc3.txt
file_name = doc/doc1.txt opened
file_name = doc/doc2.txt opened
file_name = doc/doc3.txt opened
number of extracted terms = 13
now making a data frame. wait a while!
TERM POS1 POS2 doc1.txt doc2.txt doc3.txt
1 。 記号 句点 1 1 1
2 いる 動詞 非自立 0 0 1
3 で 助詞 接続助詞 0 0 1
4 です 助動詞 * 1 1 0
5 の 助詞 連体化 0 1 0
6 は 助詞 係助詞 1 1 1
7 ます 助動詞 * 0 0 1
8 を 助詞 格助詞 0 0 1
9 学ぶ 動詞 自立 0 0 1
10 学生 名詞 一般 1 1 0
11 彼女 名詞 代名詞 0 1 1
12 数学 名詞 一般 0 1 1
13 私 名詞 代名詞 1 0 0
名詞と形容詞を対象にTri-gramで行列
> (res <- docDF("doc", pos = c("名詞","形容詞"), type = 1, N=3))
number of extracted terms = 1
TERM POS1 POS2
1 彼女-数学-学生 名詞-名詞-名詞 代名詞-一般-一般
doc1.txt doc2.txt doc3.txt
0 1 0
データフレームを解析する
> (target <- read.csv("photo.csv"))
ID Sex Reply
1 1 M 写真とってくれよ
2 2 F 写真とってください
3 3 M 写真とってね
4 4 F 写真とってください
5 5 M 写真とってっす
# データフレームの3列目からBi-gram行列
> (res <- docDF(target, col = 3, N = 2))
# col はデータフレーム列あるいは名前
number of extracted terms = 13
Ngram Row1 Row2 Row3 Row4 Row5
1 く-だ 0 1 0 1 0
2 く-れ 1 0 0 0 0
3 さ-い 0 1 0 1 0
4 だ-さ 0 1 0 1 0
5 っ-す 0 0 0 0 1
6 っ-て 1 1 1 1 1
7 て-く 1 1 0 1 0
8 て-っ 0 0 0 0 1
9 て-ね 0 0 1 0 0
10 と-っ 1 1 1 1 1
11 れ-よ 1 0 0 0 0
12 写-真 1 1 1 1 1
13 真-と 1 1 1 1 1
タームのバイグラム
> (res <- docDF(target, col = 3, type = 1, N = 2))
number of extracted terms = 7
now making a data frame. wait a while!
TERM POS1 POS2 Row1 Row2 Row3 Row4 Row5
1 くれる-よ 動詞-助詞 非自立-終助詞 1 0 0 0 0
2 て-くださる 助詞-動詞 接続助詞-非自立 0 1 0 1 0
3 て-くれる 助詞-動詞 接続助詞-非自立 1 0 0 0 0
4 て-っす 助詞-助動詞 接続助詞-* 0 0 0 0 1
5 て-ね 助詞-助詞 接続助詞-終助詞 0 0 1 0 0
6 とる-て 動詞-助詞 自立-接続助詞 1 1 1 1 1
7 写真-とる 名詞-動詞 一般-自立 1 1 1 1 1
タームのバイグラムを表層形で
> (res <- docDF(target, col = 3, type = 1, N = 2, Genkei = 1))
number of extracted terms = 7
now making a data frame. wait a while!
TERM POS1 POS2 Row1 Row2 Row3 Row4 Row5
1 くれ-よ 動詞-助詞 非自立-終助詞 1 0 0 0 0
2 て-ください 助詞-動詞 接続助詞-非自立 0 1 0 1 0
3 て-くれ 助詞-動詞 接続助詞-非自立 1 0 0 0 0
4 て-っす 助詞-助動詞 接続助詞-* 0 0 0 0 1
5 て-ね 助詞-助詞 接続助詞-終助詞 0 0 1 0 0
6 とっ-て 動詞-助詞 自立-接続助詞 1 1 1 1 1
7 写真-とっ 名詞-動詞 一般-自立 1 1 1 1 1
各タームを独立に列を取って
> (res <- docDF("doc", type=1, N=2,pos = c("名詞","動詞"),
Genkei = 1, nDF = 1))
...
number of extracted terms = 5
now making a data frame. wait a while!
N1 N2 POS1 POS2 doc1.txt doc2.txt doc3.txt
1 学ん い 動詞-動詞 自立-非自立 0 0 1
2 彼女 数学 名詞-名詞 代名詞-一般 0 1 1
3 数学 学ん 名詞-動詞 一般-自立 0 0 1
4 数学 学生 名詞-名詞 一般-一般 0 1 0
5 私 学生 名詞-名詞 代名詞-一般 1 0 0
共起行列
> (res <- docDF("data/doc", type = 1, co = 1))
file_name = data/doc/doc1.txt opened
file_name = data/doc/doc2.txt opened
file_name = data/doc/doc3.txt opened
number of extracted terms = 13
now making a data frame. wait a while!
TERM POS1 POS2 。 いる で です の は ます を 学ぶ 学生 彼女 数学 私
1 。 記号 句点 3 1 1 2 1 3 1 1 1 2 2 2 1
2 いる 動詞 非自立 1 1 1 0 0 1 1 1 1 0 1 1 0
3 で 助詞 接続助詞 1 1 1 0 0 1 1 1 1 0 1 1 0
4 です 助動詞 * 2 0 0 2 1 2 0 0 0 2 1 1 1
5 の 助詞 連体化 1 0 0 1 1 1 0 0 0 1 1 1 0
6 は 助詞 係助詞 3 1 1 2 1 3 1 1 1 2 2 2 1
7 ます 助動詞 * 1 1 1 0 0 1 1 1 1 0 1 1 0
8 を 助詞 格助詞 1 1 1 0 0 1 1 1 1 0 1 1 0
9 学ぶ 動詞 自立 1 1 1 0 0 1 1 1 1 0 1 1 0
10 学生 名詞 一般 2 0 0 2 1 2 0 0 0 2 1 1 1
11 彼女 名詞 代名詞 2 1 1 1 1 2 1 1 1 1 2 2 0
12 数学 名詞 一般 2 1 1 1 1 2 1 1 1 1 2 2 0
13 私 名詞 代名詞 1 0 0 1 0 1 0 0 0 1 0 0 1
長文テキスト集合
> res <- docDF("writers", type = 1, N=1)
## 鴎外と漱石あわせて 8 テキスト.解析に数分かかります
> head(res)
TERM POS1 POS2 ogai_gan.txt ...
1 ' 名詞 サ変接続 0 ...
2 , 名詞 サ変接続 0 ...
3 あい 名詞 一般 0 ...
4 あか 名詞 一般 0 ...
5 あかるい 形容詞 自立 0 ...
6 あざやか 名詞 一般 0 ...
...
> library(RMeCab)
> kekka <- RMeCabC("すもももももももものうち")
> unlist(kekka)
# 第二引数 1 を加えると形態素原型を返します.
> kekka <- RMeCabC("ご飯を食べた", 1)
> unlist(kekka)
# 名詞 助詞 動詞 助動詞
# "ご飯" "を" "食べる" "た"
# 第二引数なしだと
> kekka <- RMeCabC("ご飯を食べた")
> unlist(kekka)
# 名詞 助詞 動詞 助動詞
# "ご飯" "を" "食べ" "た"
# 名詞だけ取り出したければ
unlist(kekka) [names(unlist(kekka)) == "名詞"]
# ご飯
# R-2.8.0 をMacOSXやLinuxでご利用の場合は
# 以下の3行を実行しないと動作しないかもしれません
kekka <- unlist(kekka)
Encoding(kekka) <- "UTF-8"
Encoding(names(kekka)) <- "UTF-8"# その他,和布蕪の出力をそのままリスト形式で出力する関数
> RMeCabText("data/sakura.txt")
# こんな結果
#[[1]]
# [1] "昨日" "名詞" "副詞可能" "*" "*" "*"
# [7] "*" "昨日" "キノウ" "キノー"
#
#[[2]]
# [1] "も" "助詞" "係助詞" "*" "*" "*" "*" "も"
# [9] "モ" "モ" MeCabをインストールします.Macintosh および Linux の場合はここを参考にしてください.
;C:\Program Files\MeCab\bin\を追記します.先頭のセミコロンを忘れないようにしてください.
R2MeCab_0.13.zip for R-2.10.0 :Windows
R2MeCab_0.12.zip for R-2.10.0 :Windows
R2MeCab_0.11.zip for R-2.9.2 :Windows
R2MeCab_0.10.zip for R-2.9.1 : Windows
R2MeCab_0.07.zip for R-2.8.1
R2MeCab_0.13.tgz for R-2.10.0 :
&ref(): File not found: "R2MeCab_0.12.tgz" at page "R2MeCab"; for R-2.10.0 :
R2MeCab_0.11.tgz for R-2.9.2 :
R2MeCab_0.10.tgz for R-2.9.1 :
R2MeCab_0.07.tgz for R-2.8.1
R2MeCab_0.13.tar.gz for R-2.10.0 :
R2MeCab_0.12.tar.gz for R-2.10.0 :
R2MeCab_0.11.tar.gz for R-2.9.2 :
R2MeCab_0.10.tar.gz for R-2.9.1 :
R2MeCab_0.07.tar.gz for R-2.8.1
ishida-m(at_mark)ias.tokushima-u.ac.jp にお願いします.