[86] | 1 | ;;; |
---|
| 2 | ;;; cabochalib.stub |
---|
| 3 | ;;; |
---|
[88] | 4 | ;;; 2009.3.15 by naoya_t |
---|
| 5 | ;;; |
---|
[86] | 6 | |
---|
| 7 | " |
---|
| 8 | #include <gauche.h> |
---|
| 9 | #include <gauche/extend.h> |
---|
| 10 | |
---|
[89] | 11 | #include <mecab.h> |
---|
| 12 | #include \"mecab.h\" |
---|
[86] | 13 | #include <cabocha.h> |
---|
| 14 | #include \"cabocha.h\" |
---|
| 15 | " |
---|
| 16 | |
---|
| 17 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
---|
| 18 | |
---|
| 19 | (define-cclass <cabocha> "ScmCaboCha*" "Scm_CaboChaClass" () ()) |
---|
| 20 | (define-type <cabocha-t> "cabocha_t*" "cabocha_t" |
---|
| 21 | "SCM_CABOCHAP" "unwrap_cabocha_t" "wrap_cabocha_t") |
---|
| 22 | |
---|
[89] | 23 | (define-cclass <cabocha-tree> "ScmCaboChaTree*" "Scm_CaboChaTreeClass" () ()) |
---|
| 24 | (define-type <cabocha-tree-t> "cabocha_tree_t*" "cabocha_tree_t" |
---|
| 25 | "SCM_CABOCHA_TREEP" "unwrap_cabocha_tree_t" "wrap_cabocha_tree_t") |
---|
| 26 | |
---|
| 27 | (define-cclass <cabocha-chunk> "ScmCaboChaChunk*" "Scm_CaboChaChunkClass" () ()) |
---|
| 28 | (define-type <cabocha-chunk-t> "cabocha_chunk_t*" "cabocha_chunk_t" |
---|
| 29 | "SCM_CABOCHA_CHUNKP" "unwrap_cabocha_chunk_t" "wrap_cabocha_chunk_t") |
---|
| 30 | |
---|
| 31 | (define-cclass <cabocha-token> "ScmCaboChaToken*" "Scm_CaboChaTokenClass" () ()) |
---|
| 32 | (define-type <cabocha-token-t> "cabocha_token_t*" "cabocha_token_t" |
---|
| 33 | "SCM_CABOCHA_TOKENP" "unwrap_cabocha_token_t" "wrap_cabocha_token_t") |
---|
| 34 | |
---|
| 35 | ;;; |
---|
| 36 | ;(define-cclass <mecab> "ScmMeCab*" "Scm_MeCabClass" () ()) |
---|
| 37 | (define-cclass <mecab-node> "ScmMeCabNode*" "Scm_MeCabNodeClass" () ()) |
---|
| 38 | ;(define-cclass <mecab-dictionary-info> "ScmMeCabDictionaryInfo*" "Scm_MeCabDictionaryInfoClass" () ()) |
---|
| 39 | (define-type <const-mecab-node-t> "const mecab_node_t*" "const mecab_node_t" |
---|
| 40 | "SCM_MECAB_NODEP" "unwrap_mecab_node_t" "wrap_mecab_node_t") |
---|
| 41 | |
---|
[86] | 42 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
---|
| 43 | |
---|
[89] | 44 | (define-cproc cabocha-do (&rest args) |
---|
| 45 | (expr <int> "cabocha_call_int_func(&cabocha_do,args)")) |
---|
| 46 | |
---|
| 47 | ;; |
---|
| 48 | ;; parser |
---|
| 49 | ;; |
---|
| 50 | |
---|
[86] | 51 | ;;cabocha_t *cabocha_new(int argc, char **argv) |
---|
| 52 | ;; cabocha のインスタンスを生成します. |
---|
| 53 | ;; 引数には, C 言語の, main 関数で使用される argc, argv スタイルの引数を与えます. |
---|
| 54 | ;; この引数は, cabocha コマンドと同じ方法で処理されます. |
---|
| 55 | ;; 成功すれば, cabocha_t 型のポインタが返ってきます. このポインタを通して解析を行います. |
---|
| 56 | (define-cproc cabocha-new (&rest args) |
---|
| 57 | (expr <cabocha-t> "cabocha_call_cabocha_func(&cabocha_new,args)")) |
---|
| 58 | |
---|
| 59 | ;;cabocha_t *cabocha_new2(char *arg) |
---|
| 60 | ;; cabocha のインスタンスを生成します. |
---|
| 61 | ;; 引数には, 一つの文字列として表現したパラメータを与えます. |
---|
| 62 | ;; この引数は, cabocha コマンドと同じ方法で処理されますが, |
---|
| 63 | ;; 文字列を解釈するルーチンが貧弱なので留意してください. |
---|
| 64 | ;; 成功すれば, cabocha_t 型のポインタが返ってきます. このポインタを通して解析を行います. |
---|
| 65 | (define-cproc cabocha-new2 (arg::<const-cstring>) |
---|
| 66 | (call <cabocha-t> "cabocha_new2")) |
---|
| 67 | |
---|
| 68 | ;;char *cabocha_sparse_tostr(cabocha_t *p, char *str) |
---|
| 69 | ;; 解析を行います. 引数には, cabocha_new で得られた cabocha_t 型のポインタと, |
---|
| 70 | ;; 各レイヤの1解析単位を1つの文字列で表現した char 型のポインタ文字列を与えます. |
---|
| 71 | ;; デフォルトの動作ならば, 引数の文字列は生文となります. |
---|
| 72 | ;; 成功すれば, 解析後の結果が char 型のポインタとして返ってきます. |
---|
| 73 | ;; 戻り値のポインタが指すメモリ領域は, 呼び出し側で管理する必要はありませんが, |
---|
| 74 | ;; cabocha_sparse_tostr を呼ぶ度に上書きされます. |
---|
| 75 | ;; また, cabocha_destroy を呼ぶと解放されます. |
---|
| 76 | (define-cproc cabocha-sparse-tostr (c::<cabocha-t> str::<const-cstring>) |
---|
| 77 | (call <const-cstring> "cabocha_sparse_tostr")) |
---|
| 78 | |
---|
| 79 | ;;char *cabocha_sparse_tostr2 (cabocha_t *m, char *str, unsigned int len) |
---|
| 80 | ;; cabocha_sparse_tostr とほぼ同じですが, len にて, 解析する文の長さを指定できます. |
---|
| 81 | (define-cproc cabocha-sparse-tostr2 (c::<cabocha-t> str::<const-cstring> len::<uint>) |
---|
| 82 | (call <const-cstring> "cabocha_sparse_tostr2")) |
---|
| 83 | ;;char *cabocha_sparse_tostr3 (cabocha_t *m, char *istr,unsigned int ilen char *ostr,unsigned int olen) |
---|
| 84 | ;; cabocha_sparse_tostr2 に加え, 出力用のバッファ領域 (ostr), 及びその長さ (olen) を指定できます. ostr の領域の管理は, 呼び出し側が行います. 成功すれば, 解析後の結果が char 型のポインタとして返ってきます. これは, ostr と同じになります. もし, 解析結果の長さが olen 以上になった場合は, 解析失敗とみなし, NULL を返します. |
---|
| 85 | |
---|
| 86 | ;;char *cabocha_strerror (cabocha_t* m) |
---|
| 87 | ;; エラーの内容を文字列として取得します. cabocha_sparse_tostr 等で, NULL が返ってきた場合に, cabocha_strerror を呼ぶことで, エラーの内容を取得できます. cabocha_new,cabocha_new2 のエラーは, m を NULL と指定してください. |
---|
| 88 | (define-cproc cabocha-strerror (c::<cabocha-t>) |
---|
| 89 | (call <const-cstring> "cabocha_strerror")) |
---|
| 90 | |
---|
| 91 | ;;void cabocha_destroy(cabocha_t *p) |
---|
| 92 | ;; cabocha_t 型のポインタを解放します. |
---|
| 93 | ;;(define-cproc cabocha-destroy (c::<cabocha-t>) |
---|
| 94 | ;; (call <void> "cabocha_destroy")) |
---|
| 95 | (define-cproc cabocha-destroy (p::<cabocha>) |
---|
| 96 | " if (p->c) { cabocha_destroy(p->c); p->c = NULL; } |
---|
| 97 | SCM_RETURN(SCM_UNDEFINED); ") |
---|
| 98 | |
---|
| 99 | (define-cproc cabocha-destroyed? (c::<cabocha-t>) |
---|
| 100 | " SCM_RETURN(SCM_MAKE_BOOL(c == NULL)); ") |
---|
| 101 | |
---|
[89] | 102 | ;; |
---|
| 103 | (define-cproc cabocha-sparse-totree (c::<cabocha-t> str::<const-cstring>) |
---|
| 104 | (call <cabocha-tree-t> "cabocha_sparse_totree")) |
---|
| 105 | |
---|
| 106 | (define-cproc cabocha-sparse-totree2 (c::<cabocha-t> str::<const-cstring> len::<uint>) |
---|
| 107 | (call <cabocha-tree-t> "cabocha_sparse_totree2")) |
---|
| 108 | |
---|
| 109 | ;; |
---|
| 110 | ;; tree |
---|
| 111 | ;; |
---|
| 112 | (define-cproc cabocha-tree-new () |
---|
| 113 | (call <cabocha-tree-t> "cabocha_tree_new")) |
---|
| 114 | (define-cproc cabocha-tree-destroy (tree::<cabocha-tree-t>) |
---|
| 115 | (call <void> "cabocha_tree_destroy")) |
---|
| 116 | (define-cproc cabocha-tree-empty (tree::<cabocha-tree-t>) |
---|
| 117 | (call <int> "cabocha_tree_empty")) |
---|
| 118 | (define-cproc cabocha-tree-clear (tree::<cabocha-tree-t>) |
---|
| 119 | (call <void> "cabocha_tree_clear")) |
---|
| 120 | (define-cproc cabocha-tree-clear-chunk (tree::<cabocha-tree-t>) |
---|
| 121 | (call <void> "cabocha_tree_clear_chunk")) |
---|
| 122 | (define-cproc cabocha-tree-size (tree::<cabocha-tree-t>) |
---|
| 123 | (call <uint> "cabocha_tree_size")) |
---|
| 124 | (define-cproc cabocha-tree-chunk-size (tree::<cabocha-tree-t>) |
---|
| 125 | (call <uint> "cabocha_tree_chunk_size")) |
---|
| 126 | (define-cproc cabocha-tree-token-size (tree::<cabocha-tree-t>) |
---|
| 127 | (call <uint> "cabocha_tree_token_size")) |
---|
| 128 | (define-cproc cabocha-tree-sentence (tree::<cabocha-tree-t>) |
---|
| 129 | (call <const-cstring> "cabocha_tree_sentence")) |
---|
| 130 | (define-cproc cabocha-tree-sentence-size (tree::<cabocha-tree-t>) |
---|
| 131 | (call <uint> "cabocha_tree_sentence_size")) |
---|
| 132 | (define-cproc cabocha-tree-set-sentence (tree::<cabocha-tree-t> sentence::<const-cstring> length::<uint>) |
---|
| 133 | (call <void> "cabocha_tree_set_sentence")) |
---|
| 134 | (define-cproc cabocha-tree-read (tree::<cabocha-tree-t> input::<const-cstring> length::<uint> input-layer::<int>) |
---|
| 135 | ;; cabocha_input_layer_t : enum { INPUT_RAW_SENTENCE, _POS, _CHUNK, _SELECTION, _DEP } |
---|
| 136 | (call <int> "cabocha_tree_read")) |
---|
| 137 | (define-cproc cabocha-tree-read-from-mecab-node (tree::<cabocha-tree-t> node::<const-mecab-node-t>) |
---|
| 138 | (call <int> "cabocha_tree_read_from_mecab_node")) |
---|
| 139 | |
---|
| 140 | (define-cproc cabocha-tree-token (tree::<cabocha-tree-t> i::<uint>) |
---|
| 141 | (call <cabocha-token-t> "cabocha_tree_token")) ;; const |
---|
| 142 | (define-cproc cabocha-tree-chunk (tree::<cabocha-tree-t> i::<uint>) |
---|
| 143 | (call <cabocha-chunk-t> "cabocha_tree_chunk")) ;; const |
---|
| 144 | |
---|
| 145 | (define-cproc cabocha-tree-add-token (tree::<cabocha-tree-t>) |
---|
| 146 | (call <cabocha-token-t> "cabocha_tree_add_token")) |
---|
| 147 | (define-cproc cabocha-tree-add-chunk (tree::<cabocha-tree-t>) |
---|
| 148 | (call <cabocha-chunk-t> "cabocha_tree_add_chunk")) |
---|
| 149 | |
---|
| 150 | (define-cproc cabocha-tree-strdup (tree::<cabocha-tree-t> str::<const-cstring>) |
---|
| 151 | (call <const-cstring> "cabocha_tree_strdup")) |
---|
| 152 | (define-cproc cabocha-tree-alloc (tree::<cabocha-tree-t> size::<uint>) |
---|
| 153 | (call <const-cstring> "cabocha_tree_alloc")) |
---|
| 154 | |
---|
| 155 | (define-cproc cabocha-tree-tostr (tree::<cabocha-tree-t> format::<int>) ;; cabocha_format_t : ENUM { FORMAT-TREE -LATTICE -TREE_LATTICE -XML -NONE } |
---|
| 156 | (call <const-cstring> "cabocha_tree_tostr")) |
---|
| 157 | ;(define-cproc cabocha-tree-tostr2 (tree::<cabocha-tree-t> format::<cabocha-format-t str::<const-cstring> length::<uint>) |
---|
| 158 | ; const char *cabocha_tree_tostr2(cabocha_tree_t* tree, cabocha_format_t format, |
---|
| 159 | ; char *str, size_t length); |
---|
| 160 | (define-cproc cabocha-tree-set-charset (tree::<cabocha-tree-t> charset::<int>) ;; cabocha_charset_t : enum { EUC_JP, CP932, UTF8, ASCII } |
---|
| 161 | (call <void> "cabocha_tree_set_charset")) |
---|
| 162 | (define-cproc cabocha-tree-charset (tree::<cabocha-tree-t>) |
---|
| 163 | (call <int> "cabocha_tree_charset")) ;; cabocha_charset_t |
---|
| 164 | (define-cproc cabocha-tree-set-posset (tree::<cabocha-tree-t> posset::<int>) ;; cabocha_posset_t : enum { IPA, JUMAN } |
---|
| 165 | (call <void> "cabocha_tree_set_posset")) |
---|
| 166 | (define-cproc cabocha-tree-posset (tree::<cabocha-tree-t>) |
---|
| 167 | (call <int> "cabocha_tree_posset")) ;; cabocha_posset_t |
---|
| 168 | (define-cproc cabocha-tree-set-output-layer (tree::<cabocha-tree-t> output-layer::<int>) |
---|
| 169 | ;; cabocha_output_layer_t : enum { OUTPUT*_RAW_SENTENCE, _POS, _CHUNK, _SELECTION, _DEP } |
---|
| 170 | (call <void> "cabocha_tree_set_output_layer")) |
---|
| 171 | (define-cproc cabocha-tree-output-layer (tree::<cabocha-tree-t>) |
---|
| 172 | (call <int> "cabocha_tree_output_layer")) ;; cabocha_output_layer_t |
---|
| 173 | |
---|
| 174 | (define-cproc cabocha-learn (&rest args) |
---|
| 175 | (expr <int> "cabocha_call_int_func(&cabocha_learn,args)")) |
---|
| 176 | (define-cproc cabocha-system-eval (&rest args) |
---|
| 177 | (expr <int> "cabocha_call_int_func(&cabocha_system_eval,args)")) |
---|
| 178 | (define-cproc cabocha-model-index (&rest args) |
---|
| 179 | (expr <int> "cabocha_call_int_func(&cabocha_model_index,args)")) |
---|
| 180 | |
---|
[86] | 181 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
---|
[89] | 182 | (define-cproc cabocha-chunk-link (chunk::<cabocha-chunk-t>) |
---|
| 183 | (expr <int> "chunk->link")) |
---|
| 184 | (define-cproc cabocha-chunk-head-pos (chunk::<cabocha-chunk-t>) |
---|
| 185 | (expr <uint> "chunk->head_pos")) |
---|
| 186 | (define-cproc cabocha-chunk-func-pos (chunk::<cabocha-chunk-t>) |
---|
| 187 | (expr <uint> "chunk->func_pos")) |
---|
| 188 | (define-cproc cabocha-chunk-token-size (chunk::<cabocha-chunk-t>) |
---|
| 189 | (expr <uint> "chunk->token_size")) |
---|
| 190 | (define-cproc cabocha-chunk-token-pos (chunk::<cabocha-chunk-t>) |
---|
| 191 | (expr <uint> "chunk->token_pos")) |
---|
| 192 | (define-cproc cabocha-chunk-score (chunk::<cabocha-chunk-t>) |
---|
| 193 | (expr <float> "chunk->score")) |
---|
| 194 | (define-cproc cabocha-chunk-feature-list (chunk::<cabocha-chunk-t>) |
---|
| 195 | " return Scm_MakeStringList(chunk->feature_list,chunk->feature_list_size);") |
---|
| 196 | (define-cproc cabocha-chunk-feature-list-size (chunk::<cabocha-chunk-t>) |
---|
| 197 | (expr <uint> "chunk->feature_list_size")) |
---|
[86] | 198 | |
---|
[89] | 199 | (define-cproc cabocha-token-surface (token::<cabocha-token-t>) |
---|
| 200 | (expr <const-cstring> "token->surface")) |
---|
| 201 | (define-cproc cabocha-token-normalized-surface (token::<cabocha-token-t>) |
---|
| 202 | (expr <const-cstring> "token->normalized_surface")) |
---|
| 203 | (define-cproc cabocha-token-feature (token::<cabocha-token-t>) |
---|
| 204 | (expr <const-cstring> "token->feature")) |
---|
| 205 | (define-cproc cabocha-token-feature-list (token::<cabocha-token-t>) |
---|
| 206 | " return Scm_MakeStringList(token->feature_list,token->feature_list_size);") |
---|
| 207 | (define-cproc cabocha-token-feature-list-size (token::<cabocha-token-t>) |
---|
| 208 | (expr <uint> "token->feature_list_size")) |
---|
| 209 | (define-cproc cabocha-token-ne (token::<cabocha-token-t>) |
---|
| 210 | (expr <const-cstring> "token->ne")) |
---|
| 211 | (define-cproc cabocha-token-chunk (token::<cabocha-token-t>) |
---|
| 212 | (expr <cabocha-chunk-t> "token->chunk")) |
---|
| 213 | |
---|
| 214 | |
---|
| 215 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
---|
| 216 | |
---|
[86] | 217 | ;; Local variables: |
---|
| 218 | ;; mode: scheme |
---|
| 219 | ;; end: |
---|