|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#ifndef CRFPP_CRFPP_H_ |
|
#define CRFPP_CRFPP_H_ |
|
|
|
|
|
#ifdef __cplusplus |
|
#include <cstdio> |
|
#else |
|
#include <stdio.h> |
|
#endif |
|
|
|
#ifdef __cplusplus |
|
extern "C" { |
|
#endif |
|
|
|
#ifdef _WIN32 |
|
#include <windows.h> |
|
# ifdef DLL_EXPORT |
|
# define CRFPP_DLL_EXTERN __declspec(dllexport) |
|
# define CRFPP_DLL_CLASS_EXTERN __declspec(dllexport) |
|
# else |
|
# define CRFPP_DLL_EXTERN __declspec(dllimport) |
|
# endif |
|
#endif |
|
|
|
#ifndef CRFPP_DLL_EXTERN |
|
# define CRFPP_DLL_EXTERN extern |
|
#endif |
|
|
|
#ifndef CRFPP_DLL_CLASS_EXTERN |
|
# define CRFPP_DLL_CLASS_EXTERN |
|
#endif |
|
|
|
#ifndef SWIG |
|
typedef struct crfpp_t crfpp_t; |
|
typedef struct crfpp_model_t crfpp_model_t; |
|
|
|
|
|
CRFPP_DLL_EXTERN crfpp_model_t* crfpp_model_new(int, char**); |
|
CRFPP_DLL_EXTERN crfpp_model_t* crfpp_model_new2(const char*); |
|
CRFPP_DLL_EXTERN crfpp_model_t* crfpp_model_from_array_new(int, char**, const char *, size_t); |
|
CRFPP_DLL_EXTERN crfpp_model_t* crfpp_model_from_array_new2(const char*, const char *, size_t); |
|
CRFPP_DLL_EXTERN const char * crfpp_model_get_template(crfpp_model_t*); |
|
CRFPP_DLL_EXTERN void crfpp_model_destroy(crfpp_model_t*); |
|
CRFPP_DLL_EXTERN const char * crfpp_model_strerror(crfpp_model_t *); |
|
CRFPP_DLL_EXTERN crfpp_t* crfpp_model_new_tagger(crfpp_model_t *); |
|
|
|
CRFPP_DLL_EXTERN crfpp_t* crfpp_new(int, char**); |
|
CRFPP_DLL_EXTERN crfpp_t* crfpp_new2(const char*); |
|
CRFPP_DLL_EXTERN void crfpp_destroy(crfpp_t*); |
|
CRFPP_DLL_EXTERN int crfpp_set_model(crfpp_t *, crfpp_model_t *); |
|
CRFPP_DLL_EXTERN int crfpp_add2(crfpp_t*, size_t, const char **); |
|
CRFPP_DLL_EXTERN int crfpp_add(crfpp_t*, const char*); |
|
CRFPP_DLL_EXTERN size_t crfpp_size(crfpp_t*); |
|
CRFPP_DLL_EXTERN size_t crfpp_xsize(crfpp_t*); |
|
CRFPP_DLL_EXTERN size_t crfpp_dsize(crfpp_t*); |
|
CRFPP_DLL_EXTERN const float* crfpp_weight_vector(crfpp_t*); |
|
CRFPP_DLL_EXTERN size_t crfpp_result(crfpp_t*, size_t); |
|
CRFPP_DLL_EXTERN size_t crfpp_answer(crfpp_t*, size_t); |
|
CRFPP_DLL_EXTERN size_t crfpp_y(crfpp_t*, size_t); |
|
CRFPP_DLL_EXTERN size_t crfpp_ysize(crfpp_t*); |
|
CRFPP_DLL_EXTERN double crfpp_prob(crfpp_t*, size_t, size_t); |
|
CRFPP_DLL_EXTERN double crfpp_prob2(crfpp_t*, size_t); |
|
CRFPP_DLL_EXTERN double crfpp_prob3(crfpp_t*); |
|
CRFPP_DLL_EXTERN void crfpp_set_penalty(crfpp_t *, size_t i, size_t j, double penalty); |
|
CRFPP_DLL_EXTERN double crfpp_penalty(crfpp_t *, size_t i, size_t j); |
|
CRFPP_DLL_EXTERN double crfpp_alpha(crfpp_t*, size_t, size_t); |
|
CRFPP_DLL_EXTERN double crfpp_beta(crfpp_t*, size_t, size_t); |
|
CRFPP_DLL_EXTERN double crfpp_emisstion_cost(crfpp_t*, size_t, size_t); |
|
CRFPP_DLL_EXTERN double crfpp_next_transition_cost(crfpp_t*, size_t, |
|
size_t, size_t); |
|
CRFPP_DLL_EXTERN double crfpp_prev_transition_cost(crfpp_t*, size_t, |
|
size_t, size_t); |
|
CRFPP_DLL_EXTERN double crfpp_best_cost(crfpp_t*, size_t, size_t); |
|
CRFPP_DLL_EXTERN const int* crfpp_emittion_vector(crfpp_t*, size_t, size_t); |
|
CRFPP_DLL_EXTERN const int* crfpp_next_transition_vector(crfpp_t*, size_t, |
|
size_t, size_t); |
|
CRFPP_DLL_EXTERN const int* crfpp_prev_transition_vector(crfpp_t*, size_t, |
|
size_t, size_t); |
|
CRFPP_DLL_EXTERN double crfpp_Z(crfpp_t*); |
|
CRFPP_DLL_EXTERN int crfpp_parse(crfpp_t*); |
|
CRFPP_DLL_EXTERN int crfpp_empty(crfpp_t*); |
|
CRFPP_DLL_EXTERN int crfpp_clear(crfpp_t*); |
|
CRFPP_DLL_EXTERN int crfpp_next(crfpp_t*); |
|
CRFPP_DLL_EXTERN int crfpp_test(int, char **); |
|
CRFPP_DLL_EXTERN int crfpp_test2(const char *); |
|
CRFPP_DLL_EXTERN int crfpp_learn(int, char **); |
|
CRFPP_DLL_EXTERN int crfpp_learn2(const char *); |
|
CRFPP_DLL_EXTERN const char* crfpp_strerror(crfpp_t*); |
|
CRFPP_DLL_EXTERN const char* crfpp_yname(crfpp_t*, size_t); |
|
CRFPP_DLL_EXTERN const char* crfpp_y2(crfpp_t*, size_t); |
|
CRFPP_DLL_EXTERN const char* crfpp_x(crfpp_t*, size_t, size_t); |
|
CRFPP_DLL_EXTERN const char** crfpp_x2(crfpp_t*, size_t); |
|
CRFPP_DLL_EXTERN const char* crfpp_parse_tostr(crfpp_t*, const char*); |
|
CRFPP_DLL_EXTERN const char* crfpp_parse_tostr2(crfpp_t*, |
|
const char*, size_t); |
|
CRFPP_DLL_EXTERN const char* crfpp_parse_tostr3(crfpp_t*, const char*, |
|
size_t, char *, size_t); |
|
CRFPP_DLL_EXTERN const char* crfpp_tostr(crfpp_t*); |
|
CRFPP_DLL_EXTERN const char* crfpp_tostr2(crfpp_t*, char *, size_t); |
|
|
|
CRFPP_DLL_EXTERN void crfpp_set_vlevel(crfpp_t *, unsigned int); |
|
CRFPP_DLL_EXTERN unsigned int crfpp_vlevel(crfpp_t *); |
|
CRFPP_DLL_EXTERN void crfpp_set_cost_factor(crfpp_t *, float); |
|
CRFPP_DLL_EXTERN float crfpp_cost_factor(crfpp_t *); |
|
CRFPP_DLL_EXTERN void crfpp_set_nbest(crfpp_t *, size_t); |
|
#endif |
|
|
|
#ifdef __cplusplus |
|
} |
|
#endif |
|
|
|
|
|
#ifdef __cplusplus |
|
|
|
namespace CRFPP { |
|
|
|
class Tagger; |
|
|
|
class CRFPP_DLL_CLASS_EXTERN Model { |
|
public: |
|
#ifndef SWIG |
|
|
|
|
|
virtual bool open(int argc, char** argv) = 0; |
|
|
|
|
|
virtual bool open(const char* arg) = 0; |
|
|
|
|
|
|
|
virtual bool openFromArray(int argc, char** argv, |
|
const char *model_buf, |
|
size_t model_size) = 0; |
|
|
|
|
|
virtual bool openFromArray(const char* arg, |
|
const char *model_buf, |
|
size_t model_size) = 0; |
|
#endif |
|
|
|
virtual const char *getTemplate() const = 0; |
|
|
|
|
|
|
|
virtual Tagger *createTagger() const = 0; |
|
|
|
virtual const char* what() = 0; |
|
|
|
virtual ~Model() {} |
|
}; |
|
|
|
class CRFPP_DLL_CLASS_EXTERN Tagger { |
|
public: |
|
#ifndef SWIG |
|
|
|
|
|
virtual bool open(int argc, char** argv) = 0; |
|
|
|
|
|
virtual bool open(const char* arg) = 0; |
|
|
|
|
|
virtual bool add(size_t size, const char **str) = 0; |
|
|
|
|
|
virtual void close() = 0; |
|
|
|
|
|
virtual const float *weight_vector() const = 0; |
|
#endif |
|
|
|
|
|
virtual bool set_model(const Model &model) = 0; |
|
|
|
|
|
virtual void set_vlevel(unsigned int vlevel) = 0; |
|
|
|
|
|
virtual unsigned int vlevel() const = 0; |
|
|
|
|
|
virtual void set_cost_factor(float cost_factor) = 0; |
|
|
|
|
|
virtual float cost_factor() const = 0; |
|
|
|
|
|
virtual void set_nbest(size_t nbest) = 0; |
|
|
|
|
|
virtual size_t nbest() const = 0; |
|
|
|
|
|
virtual bool add(const char* str) = 0; |
|
|
|
|
|
virtual size_t size() const = 0; |
|
|
|
|
|
virtual size_t xsize() const = 0; |
|
|
|
|
|
virtual size_t dsize() const = 0; |
|
|
|
|
|
virtual size_t result(size_t i) const = 0; |
|
|
|
|
|
virtual size_t answer(size_t i) const = 0; |
|
|
|
|
|
virtual size_t y(size_t i) const = 0; |
|
|
|
|
|
virtual const char* y2(size_t i) const = 0; |
|
|
|
|
|
virtual const char* yname(size_t i) const = 0; |
|
|
|
|
|
virtual const char* x(size_t i, size_t j) const = 0; |
|
|
|
#ifndef SWIG |
|
|
|
virtual const char** x(size_t) const = 0; |
|
#endif |
|
|
|
|
|
virtual size_t ysize() const = 0; |
|
|
|
|
|
virtual double prob(size_t i, size_t j) const = 0; |
|
|
|
|
|
|
|
virtual double prob(size_t i) const = 0; |
|
|
|
|
|
virtual double prob() const = 0; |
|
|
|
|
|
|
|
|
|
|
|
|
|
virtual void set_penalty(size_t i, size_t j, double penalty) = 0; |
|
virtual double penalty(size_t i, size_t j) const = 0; |
|
|
|
|
|
virtual double alpha(size_t i, size_t j) const = 0; |
|
|
|
|
|
virtual double beta(size_t i, size_t j) const = 0; |
|
|
|
|
|
virtual double emission_cost(size_t i, size_t j) const = 0; |
|
|
|
|
|
|
|
virtual double next_transition_cost(size_t i, |
|
size_t j, size_t k) const = 0; |
|
|
|
|
|
|
|
virtual double prev_transition_cost(size_t i, |
|
size_t j, size_t k) const = 0; |
|
|
|
|
|
|
|
virtual double best_cost(size_t i, size_t j) const = 0; |
|
|
|
#ifndef SWIG |
|
|
|
virtual const int* emission_vector(size_t i, size_t j) const = 0; |
|
|
|
|
|
|
|
virtual const int* next_transition_vector(size_t i, |
|
size_t j, size_t k) const = 0; |
|
|
|
|
|
|
|
virtual const int* prev_transition_vector(size_t i, |
|
size_t j, size_t k) const = 0; |
|
#endif |
|
|
|
|
|
virtual double Z() const = 0; |
|
|
|
|
|
virtual bool parse() = 0; |
|
|
|
|
|
virtual bool empty() const = 0; |
|
|
|
|
|
virtual bool clear() = 0; |
|
|
|
|
|
|
|
|
|
|
|
virtual bool next() = 0; |
|
|
|
|
|
|
|
virtual const char* parse(const char* str) = 0; |
|
|
|
#ifndef SWIG |
|
|
|
virtual const char* toString() = 0; |
|
|
|
|
|
|
|
|
|
virtual const char* toString(char* result , size_t size) = 0; |
|
|
|
|
|
|
|
|
|
|
|
virtual const char* parse(const char *str, size_t size) = 0; |
|
|
|
|
|
|
|
|
|
virtual const char* parse(const char *str, size_t size1, |
|
char *result, size_t size2) = 0; |
|
#endif |
|
|
|
virtual const char* what() = 0; |
|
|
|
virtual ~Tagger() {} |
|
}; |
|
|
|
|
|
|
|
|
|
|
|
CRFPP_DLL_EXTERN Tagger *createTagger(int argc, char **argv); |
|
|
|
|
|
|
|
CRFPP_DLL_EXTERN Tagger *createTagger(const char *arg); |
|
|
|
|
|
|
|
CRFPP_DLL_EXTERN Model *createModel(int argc, char **argv); |
|
|
|
|
|
CRFPP_DLL_EXTERN Model *createModelFromArray(int argc, char **argv, |
|
const char *model_buf, |
|
size_t model_size); |
|
|
|
|
|
|
|
CRFPP_DLL_EXTERN Model *createModel(const char *arg); |
|
|
|
|
|
CRFPP_DLL_EXTERN Model *createModelFromArray(const char *arg, |
|
const char *model_buf, |
|
size_t model_size); |
|
|
|
|
|
CRFPP_DLL_EXTERN const char *getTaggerError(); |
|
|
|
|
|
CRFPP_DLL_EXTERN const char *getLastError(); |
|
} |
|
|
|
#endif |
|
#endif |
|
|