テキストマイニングのためのツール: データ解析・グラフィックス環境 R から日本語形態素解析ソフト和布蕪//(MeCab)を呼び出して使うインターフェイス RMeCab の簡易版
第 1 引数で指定されたファイル (フォルダが指定された場合は,その中の全ファイル),あるいは第1引数でデータフレームを,また第 2 引数で列(番号あるいは名前)を指定して,Ngram行列,あるいはターム・文書行列を作成する.指定可能な引数は
> setwd("C:/data")
> (res <- docDF("doc")) # docフォルダの全ファイルを対象に
# 文字の Bi-gram
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 = 19
Ngram doc1.txt doc2.txt doc3.txt
1 い-ま 0 0 1
2 す-。 1 1 1
3 で-い 0 0 1
4 で-す 1 1 0
5 の-学 0 1 0
6 は-学 1 0 0
7 は-数 0 1 1
8 ま-す 0 0 1
9 を-学 0 0 1
10 ん-で 0 0 1
11 女-は 0 1 1
12 学-の 0 1 0
13 学-を 0 0 1
14 学-ん 0 0 1
15 学-生 1 1 0
16 彼-女 0 1 1
17 数-学 0 1 1
18 生-で 1 1 0
19 私-は 1 0 0
> (res <- docDF("doc", type = 1, N=1))
# 名詞と形容詞を対象にターム・文章行列
...
number of extracted terms = 4
TERM POS1 POS2 doc1.txt doc2.txt doc3.txt
1 学生 名詞 一般 1 1 0
2 彼女 名詞 代名詞 0 1 1
3 数学 名詞 一般 0 1 1
4 私 名詞 代名詞 1 0 0
> (res <- docDF("doc", pos = c("名詞","形容詞"), type = 1, N=3))
# 名詞と形容詞を対象にTri-gramで行列
number of extracted terms = 1
TERM POS1 POS2
1 彼女-数学-学生 名詞-名詞-名詞 代名詞-一般-一般
doc1.txt doc2.txt doc3.txt
0 1 0
> (res <- docDF("doc", type=1, N=1,pos = c("名詞","動詞")))
# 名詞と動詞対象にターム・文章行列
number of extracted terms = 6
TERM POS1 POS2 doc1.txt doc2.txt doc3.txt
1 いる 動詞 非自立 0 0 1
2 学ぶ 動詞 自立 0 0 1
3 学生 名詞 一般 1 1 0
4 彼女 名詞 代名詞 0 1 1
5 数学 名詞 一般 0 1 1
6 私 名詞 代名詞 1 0 0
>
> # データフレームを解析する
> (target <- read.csv("photo.csv"))
ID Sex Reply
1 1 M 写真とってくれよ
2 2 F 写真とってください
3 3 M 写真とってね
4 4 F 写真とってください
5 5 M 写真とってっす
> (res <- docDF(target, col = 3))
# col はデータフレーム列あるいは名前
# データフレームの3列目からBi-gram行列
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, N=1, col = 3))
# データフレームの3列目から文字頻度
number of extracted terms = 13
Ngram Row1 Row2 Row3 Row4 Row5
1 い 0 1 0 1 0
2 く 1 1 0 1 0
3 さ 0 1 0 1 0
4 す 0 0 0 0 1
5 だ 0 1 0 1 0
6 っ 1 1 1 1 2
7 て 1 1 1 1 1
8 と 1 1 1 1 1
9 ね 0 0 1 0 0
10 よ 1 0 0 0 0
11 れ 1 0 0 0 0
> (res <- docDF(target, col = 3, type = 1, N = 1,
pos = c("名詞","動詞")))
# データフレームの3列目からターム・文章行列
number of extracted terms = 4
TERM POS1 POS2 Row1 Row2 Row3 Row4 Row5
1 くださる 動詞 非自立 0 1 0 1 0
2 くれる 動詞 非自立 1 0 0 0 0
3 とる 動詞 自立 1 1 1 1 1
4 写真 名詞 一般 1 1 1 1 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;を追加します.
ishida-m(at_mark)ias.tokushima-u.ac.jp にお願いします.