1#[repr(C)]
4#[derive(Debug, Copy, Clone)]
5pub struct fasttext_t {
6 _unused: [u8; 0],
7}
8#[repr(C)]
9#[derive(Debug, Copy, Clone)]
10pub struct fasttext_args_t {
11 _unused: [u8; 0],
12}
13#[repr(C)]
14#[derive(Debug, Copy, Clone)]
15pub struct fasttext_autotune_t {
16 _unused: [u8; 0],
17}
18#[repr(C)]
19#[derive(Debug, Copy, Clone)]
20pub struct fasttext_prediction_t {
21 pub prob: f32,
22 pub label: *mut ::std::os::raw::c_char,
23}
24#[repr(C)]
25#[derive(Debug, Copy, Clone)]
26pub struct fasttext_predictions_t {
27 pub predictions: *mut fasttext_prediction_t,
28 pub length: usize,
29}
30#[repr(C)]
31#[derive(Debug, Copy, Clone)]
32pub struct fasttext_tokens_t {
33 pub tokens: *mut *mut ::std::os::raw::c_char,
34 pub length: usize,
35}
36#[repr(C)]
37#[derive(Debug, Copy, Clone)]
38pub struct fasttext_words_t {
39 pub words: *const i32,
40 pub length: usize,
41}
42#[repr(C)]
43#[derive(Debug, Copy, Clone)]
44pub struct fasttext_vocab_t {
45 pub words: *mut *mut ::std::os::raw::c_char,
46 pub freqs: *const i64,
47 pub length: usize,
48}
49#[repr(C)]
50#[derive(Debug, Copy, Clone)]
51pub struct fasttext_labels_t {
52 pub labels: *mut *mut ::std::os::raw::c_char,
53 pub freqs: *const i64,
54 pub length: usize,
55}
56#[repr(u32)]
57#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
58pub enum model_name_t {
59 MODEL_CBOW = 1,
60 MODEL_SG = 2,
61 MODEL_SUP = 3,
62}
63#[repr(u32)]
64#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
65pub enum loss_name_t {
66 LOSS_HS = 1,
67 LOSS_NS = 2,
68 LOSS_SOFTMAX = 3,
69 LOSS_OVA = 4,
70}
71#[repr(u32)]
72#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
73pub enum metric_name_t {
74 F1_SCORE = 1,
75 LABEL_F1_SCORE = 2,
76}
77
78extern "C" {
79 pub fn cft_str_free(s: *mut ::std::os::raw::c_char);
80 pub fn cft_args_new() -> *mut fasttext_args_t;
81 pub fn cft_args_parse(
82 handle: *mut fasttext_args_t,
83 argc: ::std::os::raw::c_int,
84 argv: *mut *mut ::std::os::raw::c_char,
85 );
86 pub fn cft_args_free(handle: *mut fasttext_args_t);
87 pub fn cft_args_get_input(handle: *mut fasttext_args_t) -> *const ::std::os::raw::c_char;
88 pub fn cft_args_set_input(handle: *mut fasttext_args_t, input: *const ::std::os::raw::c_char);
89 pub fn cft_args_get_output(handle: *mut fasttext_args_t) -> *const ::std::os::raw::c_char;
90 pub fn cft_args_set_output(handle: *mut fasttext_args_t, output: *const ::std::os::raw::c_char);
91 pub fn cft_args_get_lr(handle: *mut fasttext_args_t) -> ::std::os::raw::c_double;
92 pub fn cft_args_set_lr(handle: *mut fasttext_args_t, lr: ::std::os::raw::c_double);
93 pub fn cft_args_get_lr_update_rate(handle: *mut fasttext_args_t) -> ::std::os::raw::c_int;
94 pub fn cft_args_set_lr_update_rate(handle: *mut fasttext_args_t, lr: ::std::os::raw::c_int);
95 pub fn cft_args_get_dim(handle: *mut fasttext_args_t) -> ::std::os::raw::c_int;
96 pub fn cft_args_set_dim(handle: *mut fasttext_args_t, dim: ::std::os::raw::c_int);
97 pub fn cft_args_get_ws(handle: *mut fasttext_args_t) -> ::std::os::raw::c_int;
98 pub fn cft_args_set_ws(handle: *mut fasttext_args_t, ws: ::std::os::raw::c_int);
99 pub fn cft_args_get_epoch(handle: *mut fasttext_args_t) -> ::std::os::raw::c_int;
100 pub fn cft_args_set_epoch(handle: *mut fasttext_args_t, epoch: ::std::os::raw::c_int);
101 pub fn cft_args_get_thread(handle: *mut fasttext_args_t) -> ::std::os::raw::c_int;
102 pub fn cft_args_set_thread(handle: *mut fasttext_args_t, thread: ::std::os::raw::c_int);
103 pub fn cft_args_get_model(handle: *mut fasttext_args_t) -> model_name_t;
104 pub fn cft_args_set_model(handle: *mut fasttext_args_t, model: model_name_t);
105 pub fn cft_args_get_loss(handle: *mut fasttext_args_t) -> loss_name_t;
106 pub fn cft_args_set_loss(handle: *mut fasttext_args_t, loss: loss_name_t);
107 pub fn cft_args_get_min_count(handle: *mut fasttext_args_t) -> ::std::os::raw::c_int;
108 pub fn cft_args_set_min_count(handle: *mut fasttext_args_t, min_count: ::std::os::raw::c_int);
109 pub fn cft_args_get_min_count_label(handle: *mut fasttext_args_t) -> ::std::os::raw::c_int;
110 pub fn cft_args_set_min_count_label(
111 handle: *mut fasttext_args_t,
112 min_count: ::std::os::raw::c_int,
113 );
114 pub fn cft_args_get_neg(handle: *mut fasttext_args_t) -> ::std::os::raw::c_int;
115 pub fn cft_args_set_neg(handle: *mut fasttext_args_t, neg: ::std::os::raw::c_int);
116 pub fn cft_args_get_word_ngrams(handle: *mut fasttext_args_t) -> ::std::os::raw::c_int;
117 pub fn cft_args_set_word_ngrams(handle: *mut fasttext_args_t, ngrams: ::std::os::raw::c_int);
118 pub fn cft_args_get_bucket(handle: *mut fasttext_args_t) -> ::std::os::raw::c_int;
119 pub fn cft_args_set_bucket(handle: *mut fasttext_args_t, bucket: ::std::os::raw::c_int);
120 pub fn cft_args_get_minn(handle: *mut fasttext_args_t) -> ::std::os::raw::c_int;
121 pub fn cft_args_set_minn(handle: *mut fasttext_args_t, minn: ::std::os::raw::c_int);
122 pub fn cft_args_get_maxn(handle: *mut fasttext_args_t) -> ::std::os::raw::c_int;
123 pub fn cft_args_set_maxn(handle: *mut fasttext_args_t, maxn: ::std::os::raw::c_int);
124 pub fn cft_args_get_t(handle: *mut fasttext_args_t) -> ::std::os::raw::c_int;
125 pub fn cft_args_set_t(handle: *mut fasttext_args_t, t: ::std::os::raw::c_int);
126 pub fn cft_args_get_verbose(handle: *mut fasttext_args_t) -> ::std::os::raw::c_int;
127 pub fn cft_args_set_verbose(handle: *mut fasttext_args_t, verbose: ::std::os::raw::c_int);
128 pub fn cft_args_get_label(handle: *mut fasttext_args_t) -> *const ::std::os::raw::c_char;
129 pub fn cft_args_set_label(handle: *mut fasttext_args_t, label: *const ::std::os::raw::c_char);
130 pub fn cft_args_get_save_output(handle: *mut fasttext_args_t) -> bool;
131 pub fn cft_args_set_save_output(handle: *mut fasttext_args_t, save_output: bool);
132 pub fn cft_args_get_qout(handle: *mut fasttext_args_t) -> bool;
133 pub fn cft_args_set_qout(handle: *mut fasttext_args_t, qout: bool);
134 pub fn cft_args_get_retrain(handle: *mut fasttext_args_t) -> bool;
135 pub fn cft_args_set_retrain(handle: *mut fasttext_args_t, retrain: bool);
136 pub fn cft_args_get_qnorm(handle: *mut fasttext_args_t) -> bool;
137 pub fn cft_args_set_qnorm(handle: *mut fasttext_args_t, qnorm: bool);
138 pub fn cft_args_get_cutoff(handle: *mut fasttext_args_t) -> usize;
139 pub fn cft_args_set_cutoff(handle: *mut fasttext_args_t, cutoff: usize);
140 pub fn cft_args_get_dsub(handle: *mut fasttext_args_t) -> usize;
141 pub fn cft_args_set_dsub(handle: *mut fasttext_args_t, dsub: usize);
142 pub fn cft_args_get_pretrained_vectors(
143 handle: *mut fasttext_args_t,
144 ) -> *const ::std::os::raw::c_char;
145 pub fn cft_args_set_pretrained_vectors(
146 handle: *mut fasttext_args_t,
147 vectors: *const ::std::os::raw::c_char,
148 );
149 pub fn cft_args_get_seed(handle: *mut fasttext_args_t) -> ::std::os::raw::c_int;
150 pub fn cft_args_set_seed(handle: *mut fasttext_args_t, seed: ::std::os::raw::c_int);
151 pub fn cft_args_get_autotune_validation_file(
152 handle: *mut fasttext_args_t,
153 ) -> *const ::std::os::raw::c_char;
154 pub fn cft_args_set_autotune_validation_file(
155 handle: *mut fasttext_args_t,
156 autotune_validation_file: *const ::std::os::raw::c_char,
157 );
158 pub fn cft_args_get_autotune_metric(handle: *mut fasttext_args_t) -> metric_name_t;
159 pub fn cft_args_get_autotune_metric_label(
160 handle: *mut fasttext_args_t,
161 ) -> *const ::std::os::raw::c_char;
162 pub fn cft_args_get_autotune_model_size(handle: *mut fasttext_args_t) -> i64;
163 pub fn cft_args_has_autotune(handle: *mut fasttext_args_t) -> bool;
164 pub fn cft_args_get_autotune_predictions(handle: *mut fasttext_args_t)
165 -> ::std::os::raw::c_int;
166 pub fn cft_args_set_autotune_predictions(
167 handle: *mut fasttext_args_t,
168 autotune_predictions: ::std::os::raw::c_int,
169 );
170 pub fn cft_args_get_autotune_duration(handle: *mut fasttext_args_t) -> ::std::os::raw::c_int;
171 pub fn cft_args_set_autotune_duration(
172 handle: *mut fasttext_args_t,
173 autotune_duration: ::std::os::raw::c_int,
174 );
175 pub fn cft_args_print_help(handle: *mut fasttext_args_t);
176 pub fn cft_args_print_basic_help(handle: *mut fasttext_args_t);
177 pub fn cft_args_print_dictionary_help(handle: *mut fasttext_args_t);
178 pub fn cft_args_print_training_help(handle: *mut fasttext_args_t);
179 pub fn cft_args_print_quantization_help(handle: *mut fasttext_args_t);
180
181 pub fn cft_fasttext_new() -> *mut fasttext_t;
182 pub fn cft_fasttext_free(handle: *mut fasttext_t);
183 pub fn cft_fasttext_get_args(handle: *mut fasttext_t) -> *mut fasttext_args_t;
184 pub fn cft_fasttext_load_model(
185 handle: *mut fasttext_t,
186 filename: *const ::std::os::raw::c_char,
187 errptr: *mut *mut ::std::os::raw::c_char,
188 );
189 pub fn cft_fasttext_save_model(
190 handle: *mut fasttext_t,
191 filename: *const ::std::os::raw::c_char,
192 errptr: *mut *mut ::std::os::raw::c_char,
193 );
194 pub fn cft_fasttext_save_output(
195 handle: *mut fasttext_t,
196 filename: *const ::std::os::raw::c_char,
197 errptr: *mut *mut ::std::os::raw::c_char,
198 );
199 pub fn cft_fasttext_save_vectors(
200 handle: *mut fasttext_t,
201 filename: *const ::std::os::raw::c_char,
202 errptr: *mut *mut ::std::os::raw::c_char,
203 );
204 pub fn cft_fasttext_get_dimension(handle: *mut fasttext_t) -> ::std::os::raw::c_int;
205 pub fn cft_fasttext_get_word_id(
206 handle: *mut fasttext_t,
207 word: *const ::std::os::raw::c_char,
208 ) -> i32;
209 pub fn cft_fasttext_get_subword_id(
210 handle: *mut fasttext_t,
211 word: *const ::std::os::raw::c_char,
212 ) -> i32;
213 pub fn cft_fasttext_is_quant(handle: *mut fasttext_t) -> bool;
214 pub fn cft_fasttext_train(
215 handle: *mut fasttext_t,
216 args: *mut fasttext_args_t,
217 errptr: *mut *mut ::std::os::raw::c_char,
218 );
219 pub fn cft_fasttext_predict(
220 handle: *mut fasttext_t,
221 text: *const ::std::os::raw::c_char,
222 k: i32,
223 threshold: f32,
224 errptr: *mut *mut ::std::os::raw::c_char,
225 ) -> *mut fasttext_predictions_t;
226 pub fn cft_fasttext_predict_on_words(
227 handle: *mut fasttext_t,
228 words: *const fasttext_words_t,
229 k: i32,
230 threshold: f32,
231 errptr: *mut *mut ::std::os::raw::c_char,
232 ) -> *mut fasttext_predictions_t;
233 pub fn cft_fasttext_predictions_free(predictions: *mut fasttext_predictions_t);
234 pub fn cft_fasttext_get_vocab(handle: *mut fasttext_t) -> *mut fasttext_vocab_t;
235 pub fn cft_fasttext_vocab_free(labels: *mut fasttext_vocab_t);
236 pub fn cft_fasttext_get_labels(handle: *mut fasttext_t) -> *mut fasttext_labels_t;
237 pub fn cft_fasttext_labels_free(labels: *mut fasttext_labels_t);
238 pub fn cft_fasttext_quantize(
239 handle: *mut fasttext_t,
240 args: *mut fasttext_args_t,
241 errptr: *mut *mut ::std::os::raw::c_char,
242 );
243 pub fn cft_fasttext_get_word_vector(
244 handle: *mut fasttext_t,
245 word: *const ::std::os::raw::c_char,
246 buf: *mut ::std::os::raw::c_float,
247 );
248 pub fn cft_fasttext_get_sentence_vector(
249 handle: *mut fasttext_t,
250 sentence: *const ::std::os::raw::c_char,
251 buf: *mut ::std::os::raw::c_float,
252 );
253 pub fn cft_fasttext_abort(handle: *mut fasttext_t);
254 pub fn cft_fasttext_tokenize(
255 handle: *mut fasttext_t,
256 text: *const ::std::os::raw::c_char,
257 ) -> *mut fasttext_tokens_t;
258 pub fn cft_fasttext_tokens_free(tokens: *mut fasttext_tokens_t);
259 pub fn cft_autotune_new(handle: *mut fasttext_t) -> *mut fasttext_autotune_t;
260 pub fn cft_autotune_free(handle: *mut fasttext_autotune_t);
261 pub fn cft_autotune_train(
262 handle: *mut fasttext_autotune_t,
263 args: *mut fasttext_args_t,
264 errptr: *mut *mut ::std::os::raw::c_char,
265 );
266}