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: |
---|