テキストマイニングのためのツール: データ解析・グラフィックス環境 R から日本語形態素解析ソフト和布蕪(MeCab)を呼び出して使うインターフェイス RMeCab の簡易版
RMeCab機能?にある三つの関数が使えます.
第 1 引数で指定されたファイル (フォルダが指定された場合は,その中の全ファイル),あるいは第1引数でデータフレームを,また第 2 引数で列(番号あるいは名前)を指定して,Ngram行列,あるいはターム・文書行列を作成する.指定可能な引数は target, column = 0, type = 0, pos = c("名詞","形容詞"), minFreq = 1, N = 2, sym = 0, kigo = "記号", Genkei = 0, weight = ""
> (res <- docDF(target, col = 3)) # 文字の抽出 number of extracted terms = 13 now making a data frame. wait a while! 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 12 写 1 1 1 1 1 13 真 1 1 1 1 1 > > (res <- docDF(target, col = 3, type = 1, N = 2, pos = c("名詞","動詞"))) # 名詞と動詞を対象に Bi-gramで行列 number of extracted terms = 3 now making a data frame. wait a while! 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
> 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 12 [写] 1 1 1 1 1 13 [真] 1 1 1 1 1 > (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] "モ" "モ"
基本的に RMeCab と変わりませんので,詳細はそちらを参考にしてください.
C:\Program Files\MeCab\bin;を追加します.
このページ一番下のファイルをクリックしてください.ファイル名が変更されないように注意してください.