|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#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) |
|
# else |
|
# define CRFPP_DLL_EXTERN __declspec(dllimport) |
|
# endif |
|
#endif |
|
|
|
#ifndef CRFPP_DLL_EXTERN |
|
# define CRFPP_DLL_EXTERN extern |
|
#endif |
|
|
|
#ifndef SWIG |
|
typedef struct crfpp_t crfpp_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 bool crfpp_add2(crfpp_t*, size_t, const char **); |
|
CRFPP_DLL_EXTERN bool 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 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 bool crfpp_parse(crfpp_t*); |
|
CRFPP_DLL_EXTERN bool crfpp_empty(crfpp_t*); |
|
CRFPP_DLL_EXTERN bool crfpp_clear(crfpp_t*); |
|
CRFPP_DLL_EXTERN bool crfpp_next(crfpp_t*); |
|
CRFPP_DLL_EXTERN int crfpp_test(int, char **); |
|
CRFPP_DLL_EXTERN int crfpp_learn(int, 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 { |
|
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 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 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 const char* getTaggerError(); |
|
} |
|
|
|
#endif |
|
#endif |
|
|