RCaBoCha_make
_ CaBocha? は 0.60 以降でないと動かない.
ここからダウンロードして,インストールしましょう.
_ Windows版の場合
CaBoCha\bin フォルダの libcabocha.lib からライブラリファイルを次のように作成する必要はなかった.
> C: \Rtools\minGW\bin\pexports.exe libcabocha.dll > libcabocha.def > C: \Rtools\minGW\bin\dlltool --input-def libcabocha.def --output-lib libcabocha.lib
ということは,libmecab.dll でも,これは実行しなかったのかな.R.dll だけ実行したのだろうか.
_ CaBoCha Checkでキャスト
#define CHECK(eval) if (! eval) { \ fprintf (stderr, "Exception:%s\n", cabocha_strerror(cabocha)); \ cabocha_destroy(cabocha); \ return (SEXP) -1; }
を忘れてはいけない.
_ まとまった節を文を単位に区切る.
こうするしかないのだろうか?
#define DELIMITER L" ,、。!?.!?" /* 区切り文字 */ ... setlocale(LC_ALL, ""); wchar_t *endptr = NULL; ... mbstowcs(wbuf, p, 100); sentences = wcstok(wbuf, DELIMITER, &endptr); while(sentences != NULL){ wcstombs(str,sentences, 100); tree = const_cast<cabocha_tree_t*> (cabocha_sparse_totree(cabocha, str) ); CHECK(tree); size = cabocha_tree_token_size(tree); cid = 0; for (i = 0; i < size; ++i) { const cabocha_token_t *token = cabocha_tree_token(tree, i); if (token->chunk != NULL){ cid++; linkN = token->chunk->link; } strcpy(buf1, token->feature); node = strtok(buf1, ","); j = 1; while(node != NULL){ ...
_ wcstok は UTF-8で
ということらしいので,Windows版では CPP ソースファイルだけUTF-8にした.従って,コード内に日本語文字をハードコーディングできない.R から引数で渡すしかない.
Link: R_old_tips2(1913d)
Rの備忘録(3950d)
CaBoCha(5159d)
hidden_R_Packages(5380d)
Last-modified: 2008-08-30 (土) 17:02:04 (5886d)