root/lang/scheme/gauche/bindings/cabocha/trunk/cabochalib.stub @ 122

Revision 89, 11.4 kB (checked in by naoya_t, 16 years ago)

cabocha: +tree +token +chunk

Line 
1;;;
2;;; cabochalib.stub
3;;;
4;;;  2009.3.15 by naoya_t
5;;;
6
7"
8#include <gauche.h>
9#include <gauche/extend.h>
10
11#include <mecab.h>
12#include \"mecab.h\"
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
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
42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
43
44(define-cproc cabocha-do (&rest args)
45  (expr <int> "cabocha_call_int_func(&cabocha_do,args)"))
46
47;;
48;; parser
49;;
50
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
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
181;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
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"))
198
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
217;; Local variables:
218;; mode: scheme
219;; end:
Note: See TracBrowser for help on using the browser.