[[過去の日録]] * 2008年 2月 6日(水) 曇 [#u5a2a6d3] - 06:00 起床 -- 07:20 研究室着(整頓) - 午前 -- 最近,RとJavaのインターフェイスを実現するCプログラムをコンパイルしようとすると,以下のようなエラーに遭遇する. error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before どうもヘッダファイルが正しく読み込めていないようなので,明示的にLD_INCLUDE_PATHを設定した他,ついでにR_HOME, JAVA_HOME, CLASSPATH なども設定してみた.ちなみに,この四つは今までは未設定で空のまま.しかし,エラーは消えない. -- [[SJava_0.69-0.tar.gzをコンパイルする>SJavaのコンパイル]]ために苦労して,その後 JavaからRを呼ぶには[[JRI_0.2-4.tar.gz:http://rosuda.org/JRI/]]も使えるようだとおもって,こちらをコンパイルしようとしてるのだが,どうも通らない.LD_INCLUDE_PATHなどに加えて,R_INCLUDE_DIR, R_SHARE_DIR,R_DOC_DIRもセットしたのだが...Fedora で試してみると,こちらではRのヘッダファイルへのパスも通らないもよう... --- 後で分かった.Fedoraでは export C_INCLUDE_PATH=/usr/local/lib/R/include でヘッダファイルへのパスが通った. -- ところが,良く調べると,JRIは,rJavaにすでに含まれており,わざわざコンパイルする必要がない... -- いずれにせよ,libR.soがなかったようなので,[[Rをshare library オプション付きで再コンパイルする:http://www.omegahat.org/RSJava/FAQ.html]]ことにした. -- R-2.6.0 のディレクトリで make distclean を実行する.これは > This removes any existing libraries which may not be recompiled to link against libR.so. < だそうな. 次にR-2.6.1を以下のようにコンパイルする. $ ./configure --enable-R-shlib $ make $sudo make install RのJava環境をセットしなおす. $ sudo R CMD javareconf Java interpreter : /usr/lib/j2se/1.4/jre/bin/java Java version : 1.4.2-02 Java home path : /usr/lib/j2se/1.4 Java compiler : /usr/lib/j2se/1.4/bin/javac Java headers gen.: /usr/lib/j2se/1.4/bin/javah Java archive tool: /usr/lib/j2se/1.4/bin/jar Java library path: $(JAVA_HOME)/jre/lib/i386/client: $(JAVA_HOME)/jre/lib/i386: $(JAVA_HOME)/jre/../lib/i386::/usr/lib: /lib:/usr/lib/j2se/i386: /usr/lib/jni JNI linker flags : -L$(JAVA_HOME)/jre/lib/i386/client -L$(JAVA_HOME)/jre/lib/i386 -L$(JAVA_HOME)/jre/../lib/i386 -L -L/usr/lib -L/lib -L/usr/lib/j2se/i386 -L/usr/lib/jni -ljvm JNI cpp flags : -I/usr/lib/j2se/1.4/include -I/usr/lib/j2se/1.4/include/linux Updating Java configuration in /usr/local/lib/R Done. ところが,JAVA_HOMEをj2seにすると,R上のrJavaでこける.JAVA_HOMEもR_HOMEをアンセットして,もう一度 $ sudo R CMD javareconf Java interpreter : /usr/bin/java Java version : 1.6.0_03 Java home path : /usr/lib/jvm/java-6-sun-1.6.0.03/jre Java compiler : /usr/bin/javac Java headers gen.: /usr/bin/javah Java archive tool: /usr/bin/jar Java library path: $(JAVA_HOME)/lib/i386/server: $(JAVA_HOME)/lib/i386: $(JAVA_HOME) /../lib/i386::/usr/java/packages/lib/i386: /lib:/usr/lib JNI linker flags : -L$(JAVA_HOME)/lib/i386/server -L$(JAVA_HOME)/lib/i386 -L$(JAVA_HOME)/../lib/i386 -L -L/usr/java/packages/lib/i386 -L/lib -L/usr/lib -ljvm JNI cpp flags : -I/usr/lib/jvm/java-6-sun-1.6.0.03/jre/../include -I/usr/lib/jvm/java-6-sun-1.6.0.03/jre/../include/linux Updating Java configuration in /usr/local/lib/R Done. Javaのこと考えて,R-2.6.1をもう一度コンパイルとインストール.やれやれ. -- さてここで&color(blue){JRI/examples}; にあった rtest.javaをコンパイルしようとすると rtest.java:9: TextConsole は abstract でなく、 org.rosuda.JRI.RMainLoopCallbacks 内の abstract メソッド rWriteConsole (org.rosuda.JRI.Rengine,java.lang.String,int) をオーバーライドしません。 といわれる.この日本語何とかしてくれ.&color(red){「オーバーライドしません」};ではなくて,&color(blue){「オーバーライドされていません」};だろう...そこで,無理やり rtest.java に public void rWriteConsole(Rengine re, String text, int i) { System.out.print(text); } を追加してコンパイルした.実行すると libjri.soがないと文句を言ってくる. $ java rtest Creating Rengine (with arguments) Cannot find JRI native library! Please make sure that the JRI native library is in a directory listed in java.library.path. そこでパスを明示すると, $ java -Djava.library.path=R/lib/rJava/jri rtest Exception in thread "main" java.lang.NoClassDefFoundError: rtest 今度はカレントディレクトリがセットされていない.疲れる. $ java -Djava.library.path=.:R/lib/rJava/jri rtest Creating Rengine (with arguments) Rengine created, waiting for R [STRING "iris"] [REAL* (6.0)] と,まあ,実行された.修正ファイルは&ref(rtest.java);ここ. - 午後.ヨーグルト.カロリーメイトチョコ. -- [[LeeのBayesian Statistics第3版>書籍検索:Lee Bayesian Statistics]]が届いた.初版は読んだことがあるが,とにかく誤植が多くて閉口だった.第3版はRのコードが付記されているらしいのだが. -- 去年の早い段階で生協に発注し,その後,たびたび継続してきたInference and Disputed Authorship も同じく届いた.中を見ると,前書きと目次だけで38ページもある. -- Alebert の ''LearnBayes''パッケージには Dirichlet 分布の関数が実装されていた. * 2008年 2月 5日(火) 晴 [#kf72afea] - 06:00 起床 -- 07:20 研究室着 - 午前 -- linux-headers-2.6.22.-14へのアップデートあり -- Mainichi Daily News 1998-1999 (12.9 MB) をダウンロード -- 時系列分析の要点をまとめる.Crawleyを引っ張り出す. -- T大のY先生より[[ご著書>書籍検索:巡回セールスマン問題への招待]]を賜る.とても面白そうな本でうれしい. - 午後.工学部でカレー300円.試験期間中でもあり,周りに顔見知りの学生がたくさんいて,落ち着かん. -- そろそろ花粉症の薬を貰いに行かなければならないもよう. -- ベイズの要約を続ける.授業で取り上げられるのは,いつのことになるやら. -- R であるリストから特定の要素だけを抽出し,抽出したベクトルをまとめて別のリストにまとめようという処理を次のように書いたが,ループなど使わない,もっと賢い方法がありそうな気がする. kekka2 <- list() j <- 1 for(i in 1:length(kekka)){ if(kekka[[i]][2] == "名詞"){ kekka2[[j]] <- kekka[[i]] j <- j+1 # kekka2 <- c(kekka2, kekka[[i]])#これはダメ # kekka2 <- list(kekka2, kekka[[i]])#ましてダメ } } こんなことしてみたけど,条件が偽となる元リストの要素がNULLとして返されてしまう.これを同時に削るのは無理かな?とりあえず NA を返して,最後に一行追加して,NA の行を取り去るという処理もできるけど. kekka2 <- rapply( kekka[1:length(kekka)], function(x) if(x[2] == "名詞") x , else NA, how = "list") kekka2[!is.na(kekka2)] -- iGoogleなど使い出したけど,これをフルに使うと,OSとブラウザさえあれば,他のソフトは一切必要なさそう...フツーには.あと,RとTeXとEmacsがシームレスに使えればね. //必須の私にも,iGoogleは便利は便利.個人情報なぞ,どうでもいい.画面上のテーマというのが,時間によって表示が変わり,なかなかよろしい. -- 帰り際,近くの研究室の留学生から,アンケート結果の集計結果について「統計的検定」を行う方法を尋ねられた.しかし,いろいろお話をうかがっても分析意図やアンケート内容が良く分からず,ご本人はさかんに「エックス二乗検定」(「カイ二乗検定」のことらしい)をやりたいとおっしゃるのだが,どう説明してあげるべきか,少々弱った.一応,こうしたらどうかと意見は述べたけど,伝わっただろうか? - 定時帰宅.クローズアップ現代でソフトウェアのバグについての話題を取り上げていた.定時就寝. * 2008年 2月 4日(月) 晴 [#b5ff282d] - 06:00 起床 -- 昨日あれだけ飲んだのだが,別に何ともない... -- 07:20 研究室着 (整頓) - 午前 -- Yahooにこういう[[テキスト解析サービス:http://developer.yahoo.co.jp/jlp/]]がある. -- NTCIR Test Collection のデータコレクションNTCIR-3 CLIR: Topics and Relevance Judgments (17.2 MB)をダウンロード. -- [[CaboCha がUTF-8に対応した:http://chasen.org/~taku/blog/archives/2008/01/cabocha_060_pre.html]]という情報があったので,さっそくインストールしてみた.拡張子が bz2 となっている圧縮ファイルの解凍方法をすぐ忘れてしまう. bzip2 -cd cabocha-0.60pre2.tar.bz2 | tar xf - --- configure は通ったが,make が通らない.[[CRF++: Yet Another CRF toolkit:http://crfpp.sourceforge.net/]]が必要なもよう.configureの際,意味なさそうだが, UTF8オプションをつけてみた.configureファイルを確認すると,実際,意味なし. ./configure --with-charset=UTF8 make sudo make install sudo ldconfig # これを忘れないように その上で Cabocha0.60pre2をインストール ./configure --with-charset=UTF8 make sudo make install sudo ldconfig # これも忘れないうちに実行しておく 実行してみる. $ cabocha 僕は,今日大学で授業があるんだ. 僕は,-----D 今日大学で---D 授業が-D あるんだ. EOS $ cabocha -f1 僕は,今日大学で授業があるんだ. * 0 3D 0/1 -1.541709 僕 名詞,代名詞,一般,*,*,*,僕,ボク,ボク O は 助詞,係助詞,*,*,*,*,は,ハ,ワ O , 記号,読点,*,*,*,*,,,,,, O * 1 3D 1/2 -1.541709 今日 名詞,副詞可能,*,*,*,*,今日,キョウ,キョー O 大学 名詞,一般,*,*,*,*,大学,ダイガク,ダイガク O で 助詞,格助詞,一般,*,*,*,で,デ,デ O * 2 3D 0/1 -1.541709 授業 名詞,サ変接続,*,*,*,*,授業,ジュギョウ,ジュギョー O が 助詞,格助詞,一般,*,*,*,が,ガ,ガ O * 3 -1D 1/2 0.000000 ある 動詞,自立,*,*,五段・ラ行,基本形,ある,アル,アル O ん 名詞,非自立,一般,*,*,*,ん,ン,ン O だ 助動詞,*,*,*,特殊・ダ,基本形,だ,ダ,ダ O . 記号,句点,*,*,*,*,.,.,. O EOS いい模様. - 午後.乾麺 -- [[CaboChaのCインターフェイス]]を試してみる. -- CaboCha Java をキーワードにGoogleしていたら,[[Swig:http://www.swig.org/]]なるものを見つけた.Swigについては[[ここのサイト:http://d.hatena.ne.jp/higepon/20050915/1126767727]]など参考になる. -- Rでこういう初期化方法もあるのか.Albert ''Bayes'' p.48 > summ2 <- c() > summ2 NULL -- ある方が作成したRによる統計関連のpdfファイルを見ていたら,Rで作成されたeps画像内のHelveticaフォントを表示できない.Adobe Reader 8「Helvetica」フォントを検出または作成できません.というエラーが出るようになった.先週ぐらいまでは何の問題もなかったはずなので,この間のUbuntuアップデートによる影響なのか?やれやれ,これは去年まで使っていたFedoraで,自分が作成したpdfでも頻出した現象である.作る側の対処は分かっているのだが. --- いったん右クリックして,別のビューアーで開いた後,ダブルクリックしてAdobe Reader 8で開いたら,ちゃんとHelveticaを表示するようになった.わけが分からん.この Reader関連のファイルはここにあるようだが. /opt/Adobe/Reader8/ - 定時帰宅,定時就寝 * 2008年 2月 3日(日) 曇 [#xbcd1e2b] - 06:00 起床 - 午後 -- 自宅のUbuntuにwineとR2WinBUGSをインストール. -- 昼から寝るまで,ちびちびとやっていたら一升まるまる空けてしまった模様. - 定時就寝 * 2008年 2月 2日(土) 曇 [#l72fab92] - 06:00 起床 -- 07:20 研究室着 (整頓) - 午前 -- 問い合わせに応じてc++のプログラム &ref(strTest.cpp); をチョコチョコッと作成.ついでにVisual C++ で[[コントロールを配列化]]する方法. - 午後.乾麺.ヨーグルト. -- 例によってベイズ. - 整頓して定時帰宅、2合のんで定時就寝 * 2008年 2月 1日(金) 曇 [#v9b86745] - 06:00 起床 -- 07:20 研究室着 (整頓) - 午前 -- 充電. -- Bayes 関連の調べ物. -- 授業用に[[VBでHashtable]]を作成. -- 黒マックにFinkをインストール sudo でClosest URLを使うよう指定した. - 午後.来客と外食. -- 東京から電話. -- 16:20-18:40 ゼミ. - 定時帰宅,4合ばかりのんで定時就寝.『算法少女』を一気に読んだ.