RCaBoCha のバックアップ差分(No.27) - アールメカブ

アールメカブ


RCaBoCha のバックアップ差分(No.27)


  • 追加された行はこの色です。
  • 削除された行はこの色です。
[[管理人>admin]] について : 参考ページ [[統計的言語処理]]: 形態素解析パッケージ [[RMeCab]]
----------
&size(20){&color(blue){[[RCaBoCha]]パッケージ};};


日本語の係り受け関係を R で解析できるようにします.形態素解析パッケージ[[RMeCab]]もご参照ください.

- ''&color(green){テキストマイニング入門};'':[[RMeCab]]を利用したテキストマイニングについては
&htmlinsert(amazontext,asin=4627848412,text=『Rによるテキストマイニング入門』森北出版);
//『[[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.13 (R-2.9.0) 2009 年 04 月 20 日 大幅修正版[#mcfc859b]
大幅に修正。今までは Linux の UTF-8 作成したC++ソースファイルやDESCRIPTIONは UTF-8 のまま、しかし R ソース、Man ファイルを、Windows常でバイナリを作成する場合には Shift-Jisに変換してコンパイルするという手抜きをしていたが、そろそろ限界なので UTF-8で作成した C++ ソース内で、Riconv_open("", "UTF-8") を使って文字コードをプラットフォームにあわせて変換する処理を行うことにして R ソースや man ファイルから日本語文字列を削除した。
** バージョン 0.12 (R-2.9.0) 2009 年 04 月 18 日 [#jc0e09b7]
** バージョン 0.11 (R-2.8.1) 2008 年 12 月 24 日 [#q17740aa]
以前の R-2.8.0 には文字コードに不具合があるので,できれば最新の R を利用してください.
** バージョン 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.13.zip); (R-2.9.0)  &ref(RCaBoCha_0.11.zip); (R-2.8.1), &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.8'' の中の''[[RCaBoCha\libs]]'' というフォルダの中に手作業でコピーしてください。




ご利用は自己責任でお願いします.

* &color(blue){&size(18){Mac 版バイナリ}; }; のインストール方法 [#nd01f207]
&ref(RCaBoCha_0.13.tgz); (R-2.9.0), &ref(RCaBoCha_0.11.tgz); (R-2.8.1), &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.13.tar.gz); (R-2.9.0), &ref(RCaBoCha_0.11.tar.gz); (R-2.8.1), &ref(RCaBoCha_0.07.tar.gz); (R-2.7.1)
+ CaBoChaをインストールします.かなり面倒です.[[ここを参考にしてください>和布蕪他インストール]].
+ R コンソールで次のように実行してください.
 > install.packages("RCaBoCha_0.11.tar.gz", lib.loc = ".",
    repos = NULL)
 > library(RCaBoCha)

以上です。なお、R 終了時にはワークスペースを保存しないことをお勧めします。言語解析結果は、一般に大きなオブジェクトになり、容量を必要とします。

//* [[ソース>#Q]] [#ae7b2def]

* 試行用データ [#sba31629]
** &ref(dataRCaBoChaWin.zip); Windows用Shift JIS です。 [#veeede36]
** &ref(dataRCaBoChaUnix.tar.gz); MacOSXやLinux用UTF-8 です。 [#yb05f918]



&aname(Q);
* バージョン履歴:お問い合わせ [#oa08596b]
 
-お問い合わせはメールをください.関数の追加についても,気楽にご相談ください.

石田基広

ishida-m(この部分を"@"に変更下さい)ias.tokushima-u.ac.jp


-[[SoftArchive]] [[ソース>RSource]]
-- 掲示板を兼ねてますので,パスワードを設定しています.めかぶです.

* R の参考書 [#oca4f220]
//&htmlinsert(amazontext,asin=,text=); 
-&htmlinsert(amazontext,asin=4431712186,text=U・リゲス著『Rの基礎とプログラミング技法』シュプリンガー社); 中級者になるために.
-&htmlinsert(amazontext,asin=4431713123,text=B・エヴェリット著『RとS-PLUSによる多変量解析』シュプリンガー社); 解析をばりばり行うために.
-&htmlinsert(amazontext,asin=4431100474,text=P・スペクター著『Rデータ自由自在』シュプリンガー社); データをばりばり処理するために.
-&htmlinsert(amazontext,asin=4274067572,text=青木繁伸『Rによる統計解析』オーム社); R のプログラミングテクニックを学ぶために.
- &htmlinsert(amazontext,asin=4627096011,text=金明哲『Rによるデータサイエンス』森北書店); R での解析手法に慣れるために.
- &htmlinsert(amazontext,asin=,text=舟尾暢男『データ解析環境「R」』工学社); とにかく R を使ってみたい.
-&htmlinsert(amazontext,asin=4894717573,text=中澤港『Rによる統計解析の基礎』ピアソンエデュケーション); 統計学と R を同時に学びたい.