[[管理人>admin]] について : 参考ページ [[統計的言語処理]]: 形態素解析パッケージ [[RMeCab]] ---------- &size(20){&color(blue){[[RCaBoCha]]パッケージ};}; 日本語の係り受け関係を R で解析できるようにします.形態素解析パッケージ[[RMeCab]]もご参照ください. - ''&color(green){テキストマイニング入門};'':テキストマイニングについては『[[Rによるテキストマイニング入門:http://www.amazon.co.jp/R%E3%81%AB%E3%82%88%E3%82%8B%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E3%83%9E%E3%82%A4%E3%83%8B%E3%83%B3%E3%82%B0%E5%85%A5%E9%96%80-%E7%9F%B3%E7%94%B0-%E5%9F%BA%E5%BA%83/dp/4627848412/]]』森北出版,2008.12 を参照いただければ幸いです. #contents * 実装済みの関数 [#e9db8318] &size(18){&color(blue){RCaBoCha};関数}; : CaBocha の単純な出力を返す. > kekka <- RCaBoCha("今日は鰻が食べたいな。") FROMAT_TREE = <DATE>今日</DATE>は---D 鰻が-D 食べたいな。 EOS > kekka # D1 は句の連番,D2 はその係り受け関係を表す Term1 Term2 POS D1 D2 1 今日 今日 名詞 1 2 2 は は 助詞 1 2 3 鰻 鰻 名詞 2 2 4 が が 助詞 2 2 5 食べ 食べる 動詞 3 -1 6 たい たい 助動詞 3 -1 7 な な 助詞 3 -1 8 。 。 記号 3 -1 &size(18){&color(blue){RCaBoChaFreq};関数}; : 否定の係りを判定して頻度を測る > kekka <- RCaBoChaFreq("今日は鰻が美味しいな. + 昨日は鰻が美味しくなかった。") > kekka Term1 Freq 1 が 2 2 た 1 3 な 1 4 は 2 5 今日 1 6 昨日 1 7 美味しい 1 8 美味しい+ない 1 9 鰻 2 &size(18){&color(blue){RCaBoChaFile};関数}; : ファイルを対象に否定の係りを判定して頻度を測る.''引数&color(green){rmT = c("助詞", "記号")}; ''などとして,抽出''しない''品詞を指定可能.デフォルトは記号のみ. ただし半角スペースと全角スペース,"!?.。.!?"は常に削除する. > kekka <- RCaBoChaFile("綺麗な花.txt") file = 綺麗な花.txt > kekka Term1 Freq 1 あの 1 2 この 1 3 その 1 4 だ 1 5 だ+ない 2 6 は 2 7 は+ない 1 8 も 1 9 綺麗 1 10 綺麗+ない 2 11 花 3 &size(18){&color(blue){RCaBoChaDF};関数}; : データフレームの指定列を対象に否定の係りを判定して頻度を測り,ターム・文章行列を作成.''引数 &color(green){rmT = c("助詞", "記号")};'' などとして,抽出''しない''品詞を指定可能.デフォルトは記号のみ. ただし半角スペースと全角スペース,"!?.。.!?"は常に削除する. また ''&color(green){minFreq};引数''で,全文書を通じての総頻度の閾値を指定可能. > dat <- read.csv("data/flower.csv") > kekka <- RCaBoChaDF(dat[,"Reply"], rmT = c("助詞")) > kekka OBS.1 OBS.2 OBS.3 OBS.4 OBS.5 あの 0 0 1 0 0 う 0 0 0 0 1 が 0 0 0 1 0 この 0 1 0 0 0 その 1 0 0 0 0 だ 0 1 0 1 0 だろ 0 0 0 0 1 で 1 0 1 0 0 な 0 0 0 1 1 の 0 0 0 0 1 は 1 1 0 0 1 は+ない 0 0 1 0 0 も 0 0 1 0 0 やっぱり 0 0 0 1 0 バラ 0 0 0 1 0 花 1 1 1 0 0 桜 0 0 0 0 1 綺麗 0 1 0 1 1 綺麗+ない 1 0 1 0 0 #### 重み付けも可能 TD IDF を計算して、標準化するには > res <- RCaBoChaDF(dat[,"Reply"],rmT =c("記号","助詞"), weight = "tf*idf*norm") > nrow(res) [1] 15 > res OBS.1 OBS.2 OBS.3 OBS.4 OBS.5 あの 0.00000 0.00000 0.66658 0.00000 0.00000 う 0.00000 0.00000 0.00000 0.00000 0.43546 この 0.00000 0.70093 0.00000 0.00000 0.00000 その 0.66658 0.00000 0.00000 0.00000 0.00000 だ 0.00000 0.48993 0.00000 0.42058 0.00000 だろ 0.00000 0.00000 0.00000 0.00000 0.43546 で 0.46592 0.00000 0.46592 0.00000 0.00000 な 0.00000 0.00000 0.00000 0.00000 0.43546 の 0.00000 0.00000 0.00000 0.00000 0.43546 やっぱり 0.00000 0.00000 0.00000 0.60171 0.00000 バラ 0.00000 0.00000 0.00000 0.60171 0.00000 花 0.34854 0.36650 0.34854 0.00000 0.00000 桜 0.00000 0.00000 0.00000 0.00000 0.43546 綺麗 0.00000 0.36650 0.00000 0.31462 0.22769 綺麗+ない 0.46592 0.00000 0.46592 0.00000 0.0000 > apply(res^2, 2, sum) ## 各列の自乗の合計は1 OBS.1 OBS.2 OBS.3 OBS.4 OBS.5 1 1 1 1 1 &size(18){&color(blue){RCaBoChaMx};関数}; : フォルダ全体あるいは単独ファイルを対象に否定の係りを判定して頻度を測り,ターム・文章行列を作成.''引数 &color(green){rm = c("助詞", "記号")};'' などとして,抽出''しない''品詞を指定可能.デフォルトは記号のみ. ただし半角スペースと全角スペース,"!?.。.!?"は常に削除する. また ''&color(green){minFreq };引数''で,全文書を通じての総頻度の閾値を指定可能. > kekka <- RCaBoChaMx("data/flower") file_name = data/flower/hana1.txt opened file_name = data/flower/hana2.txt opened file_name = data/flower/hana3.txt opened file_name = data/flower/hana4.txt opened file_name = data/flower/hana5.txt opened > kekka hana1.txt hana2.txt hana3.txt hana4.txt hana5.txt あの 0 0 1 0 0 う 0 0 0 0 1 が 0 0 0 1 0 この 0 1 0 0 0 その 1 0 0 0 0 だ 0 1 0 1 0 だろ 0 0 0 0 1 で 1 0 1 0 0 な 0 0 0 1 1 の 0 0 0 0 1 は 1 1 0 0 1 は+ない 0 0 1 0 0 も 0 0 1 0 0 やっぱり 0 0 0 1 0 バラ 0 0 0 1 0 花 1 1 1 0 0 桜 0 0 0 0 1 綺麗 0 1 0 1 1 綺麗+ない 1 0 1 0 0 ### 重み付けも可能 TD IDF を計算して、標準化するには > res <- RCaBoChaMx("C:/data/flower" ,rmT =c("記号","助詞"), weight = "tf*idf*norm") file_name = C:/data/flower/hana1.txt opened file_name = C:/data/flower/hana2.txt opened file_name = C:/data/flower/hana3.txt opened file_name = C:/data/flower/hana4.txt opened file_name = C:/data/flower/hana5.txt opened > nrow(res) [1] 15 > res hana1.txt hana2.txt hana3.txt hana4.txt hana5.txt あの 0.00000 0.00000 0.66658 0.00000 0.00000 う 0.00000 0.00000 0.00000 0.00000 0.43546 この 0.00000 0.70093 0.00000 0.00000 0.00000 その 0.66658 0.00000 0.00000 0.00000 0.00000 だ 0.00000 0.48993 0.00000 0.42058 0.00000 だろ 0.00000 0.00000 0.00000 0.00000 0.43546 で 0.46592 0.00000 0.46592 0.00000 0.00000 な 0.00000 0.00000 0.00000 0.00000 0.43546 の 0.00000 0.00000 0.00000 0.00000 0.43546 やっぱり 0.00000 0.00000 0.00000 0.60171 0.00000 バラ 0.00000 0.00000 0.00000 0.60171 0.00000 花 0.34854 0.36650 0.34854 0.00000 0.00000 桜 0.00000 0.00000 0.00000 0.00000 0.43546 綺麗 0.00000 0.36650 0.00000 0.31462 0.22769 綺麗+ない 0.46592 0.00000 0.46592 0.00000 0.00000 > apply(res^2, 2, sum) ## 各列の自乗の合計は1 hana1.txt hana2.txt hana3.txt hana4.txt hana5.txt 1 1 1 1 1 ## 単独ファイルも読み込み可能 > res <- RCaBoChaMx("C:/data/flower/hana1.txt") file_name = C:/data/flower/hana1.txt opened > res hana1.txt その 1 で 1 は 1 花 1 綺麗+ない 1 &size(18){&color(blue){RCaBoChaCnt};関数}; : 単独のファイルを引数として,そのファイルを文に分割し,各文の形態素数と句数をデータフレームとして出力する. > kekka <- RCaBoChaCnt("data/merosu.txt") file = data/merosu.txt #『走れメロス』を解析 > kekka Nr. Terms Phrases 1 1 5 2 2 2 17 6 3 3 7 3 4 4 8 3 5 5 12 5 ... 以下略 文の区切りは " !?.。.!?" である.これも引数で指定できた方が良いかな? * CaBoCha 0.60 [#we305e34] [[ここからダウンロード:http://sourceforge.net/projects/cabocha/]]して,インストールしてください. Windowsではファイルをダブルクリックし,文字コードは Shift-JISを選び,後は[続ける]を押すだけです. Linux や Mac OS X ではかなり面倒な手続きが必要です.[[ここを参考にしてください>和布蕪他インストール]]. * 現在のヴァージョン [#k5093330] ** バージョン 0.10 (R-2.8.0) 2008 年 11 月 10 日 [#mbdd839f] 微調整 ** バージョン 0.09 (R-2.8.0) 2008 年 11 月 07 日 [#f0f8d07a] 文字コードまわりの修正を行った //** バージョン 0.08 (R-2.8.0) 2008 年 11 月 05 日 [#p5e9d414] ** バージョン 0.07 (R-2.7.1) 2008 年 9 月 26 日 [#jf56709e] //** バージョン 0.06 (R-2.7.1) 2008年 8月30日 [#zdb23311] * &color(blue){&size(18){Windows 版バイナリ}; }; のインストール方法 [#af8cffd2] &ref(RCaBoCha_0.10.zip); (R-2.8.0) &ref(RCaBoCha_0.07.zip); (R-2.7.1) &ref(SoftArchive/README_RCaBoCha.txt); (Shift-JIS) と 付属の環境設定ファイル (CaBoChaへのPATHをWindowsの環境設定に追加したい場合は不要) -- &ref(RCaBoChaInstall.bat); (標準的なライブラリフォルダ設定の場合) -- &ref(RCaBoChaInstallXP.bat);(ライブラリフォルダがユーザーフォルダ内にあるXPの場合) -- &ref(RCaBoChaInstallVista.bat); (ライブラリフォルダがユーザーフォルダ内にあるVISTAの場合) &color(green){&size(20){インストール手順};}; + まず''&color(red){[[CaBoCha:http://CaBoCha.sourceforge.net/]]};''をインストールしてください.[[ここ:http://sourceforge.net/projects/cabocha/]] から win32バイナリをダウンロードしてインストールします.インストール先は標準設定のまま ''[[C:\Program Files\CaBoCha]]'' とします.また文字コードは Shit-Jis のままとします.なお自身のある方はCaBoChaへのPATHをWindowsの環境設定に追加してください.C:\Program Files\CaBoCha\binをPATHに追記.) + 次に ''&color(blue){RCaBoCha_***.zip};'' をRにインストールします.*** の部分はバージョン番号です.Rのメニューから''[パッケージ]''→''[ローカルにあるzipファイルからのパッケージのインストール]''を選んで,ダウンロードした ''&color(blue){RCaBoCha_***.zip};''ファイルを選んでインストールします.[win-libraryを作成したいのですか] と聞いてきた時は OK を押してください(この際,R はユーザーフォルダを作成します). CaBoChaへのPATHをWindowsの環境設定に追加した方は,続く3.以下の処理は不要です.詳しくは &ref(SoftArchive/README_RCaBoCha.txt); (Shift-JISファイル)をご覧ください. + ここで,Rのライブラリフォルダがどこにあるかを確認してください.Rのコンソール画面で ''.libPaths() '' を実行すると分かります.通常はRがインストールされたフォルダになります. ++この結果の''最初の出力 ([1] のすぐ右横の表示内容)'' が [1] "C:/PROGRA~1/R/R-2*~*.*/library" のように (*の部分はバージョン番号)なっていれば,R 本体と同じ場所にあります.以下の手順の''4.''までを実行してください. ++ ''.libPaths() '' の''最初の出力''が [1] "C:\\Document and Settings\\ishida\\Documents/R/win-library/2.7" あるいは [1] "C:\\Users\\ishida\\Documents/R/win-library/2.7" のようにユーザー名を含んでいる場合は,ユーザーフォルダにライブラリはインストールされています.以下の手順の''4.'' は飛ばして,手順の''5.'',場合によっては ''6.'' までを実行してください. + 続いて, CaBoCha と R の両方が標準的なフォルダにインストールされた状態であり,またRのライブラリフォルダが R 本体と同じ場所にあれば,&ref(RCaBoChaInstall.bat); をダブルクリック してください.''これでインストールは完了です''.さっそく[[機能>RCaBoCha#kinou]]を試してみてください.なお[[試用データセット>#data]]を用意しました. + CaBoCha はデフォルトのままインストール先を変更しなかったが,Rのライブラリフォルダがユーザフォルダになっている場合,XPのユーザーであれば&ref(RCaBoChaInstallXP.bat); を,またVistaのユーザーは&ref(RCaBoChaInstallVista.bat); を実行して,環境設定を行ってください.これでインストールは完了です. + 以上です。なお、R 終了時にはワークスペースを保存しないことをお勧めします。言語解析結果は、一般に大きなオブジェクトになり、容量を必要とします。 + ''&color(red){ここまでの手順でうまく動作しない場合}; ''. ++ CaBoCha と R のインストール先を独自に変更した場合や RCaBoCha が動作しない場合は以下を手作業で実行してください. +++ CaBoChaをインストールしたフォルダ内の bin フォルダに ''&color(red){libcabocha.dll};'' ''&color(red){libcrtff.dll};'' というファイルがありますので,この二つを R のライブラリ関連フォルダ library にインストールされた RCaBoChaパッケージフォルダ内の ''libs'' フォルダ内にコピーします. +++ R のインストール先に RCaBoChaパッケージ用のライブラリフォルダが存在しない場合,別の場所,すなわちユーザーフォルダにインストールされた可能性があります. //''Vistaの場合'' (場合によっては XP でも) 、Rのインストール後にユーザーが追加したRライブラリ類は、&color(red){個人フォルダにインストールされていることがあります};. 例えば個人名のフォルダの中に ''「ドキュメント」''->''「R」''->''「win-library」''->''「2.*」''があり,その中に ''RCaBoCha\libs'' フォルダがあるかもしれません。Rのコンソール画面で ''.libPaths() ''と実行すると分かります.以下は Vista Home Basic にR-2.7.1をインストールし、続いて''RCaBoCha'' をインストールした直後に実行した結果です。 > .libPaths() [1] "C:\\Users\\ishida\\Documents/R/win-library/2.7" [2] "C:/PROGRA~1/R/R-27~1.1/library" この場合は ''&color(red){libcabocha.dll};'' と''&color(red){libcrftt.dll};'' を ''win-library/2.7'' の中の''[[RCaBoCha\libs]]'' というフォルダの中に手作業でコピーしてください。 ご利用は自己責任でお願いします. * &color(blue){&size(18){Mac 版バイナリ}; }; のインストール方法 [#nd01f207] &ref(RCaBoCha_0.10.tgz); (R-2.8.0), &ref(RCaBoCha_0.07.tgz); (R-2.7.1) + CaBoChaをインストールします.かなり面倒です.[[ここを参考にしてください>和布蕪他インストール]]. + R を起動します. メニューから'' [パッケージとデータ]→[パッケージインストーラ]''を選びます.一番上の''CRAN''と表示されているメニューを''[このコンピューター上のバイナリパッケージ]''に変更します.右下の ''installボタン''を押して,ダウンロードした ''&color(blue){RCaBoCha_***.tgz};''を選びます.*** の部分はバージョン番号です. ++ インストールする権限がないといわれた場合は,自分のホームに例えば RLibs などというフォルダを新規作成します。そして,やはりホームに ''.Renviron''というファイルを作成し,中身を次のように編集してください. R_LIBS=/Users/ishida/Rlibs ''ishida'' の部分は terminal 画面の $ マークの前に表示されているログイン名に変えてください.terminal上では以下のようにしても作成できます. $ echo 'R_LIBS=/Users/ishida/Rlibs' > .Renviron $ cat .Renviron ++ その上で,Rを起動しなおして,再び''&color(blue){RCaBoCha_***.tgz};'' パッケージをインストールする手続きを行い、ファイルを選ぶ前に ウィンドウ下の ''[ユーザーエリア]'' にチェックを入れておきます. 以上です。なお、R 終了時にはワークスペースを保存しないことをお勧めします。言語解析結果は、一般に大きなオブジェクトになり、容量を必要とします。 ご利用は自己責任でお願いします. /////////// * &color(blue){&size(18){Linux 版バイナリ & ソース}; }; のインストール方法 [#a0fb2bc3] &ref(RCaBoCha_0.10.tar.gz); (R-2.8.0), &ref(RCaBoCha_0.07.tar.gz); (R-2.7.1) + CaBoChaをインストールします.かなり面倒です.[[ここを参考にしてください>和布蕪他インストール]]. + R コンソールで次のように実行してください. > install.packages("RCaBoCha_0.07.tar.gz", lib.loc = ".", repos = NULL) > library(RCaBoCha) 以上です。なお、R 終了時にはワークスペースを保存しないことをお勧めします。言語解析結果は、一般に大きなオブジェクトになり、容量を必要とします。 * [[ソース>#Q]] [#ae7b2def] * 試行用データ [#sba31629] ** &ref(dataRCaBoChaWin.zip); Windows用Shift JIS です。 [#veeede36] ** &ref(dataRCaBoChaUnix.zip); MacOSXやLinux用UTF-8 です。 [#yb05f918] &aname(Q); * バージョン履歴:お問い合わせ [#oa08596b] -お問い合わせはメールをください.関数の追加についても,気楽にご相談ください. 石田基広 ishida-m(この部分を"@"に変更下さい)ias.tokushima-u.ac.jp -[[SoftArchive]][[ソース>RSource]] --パスワードはめかぶです.