#/*-*- Mode: C++ -*- */
MODULE = Moot PACKAGE = Moot::Ngrams
##=====================================================================
## Constructors etc.
##=====================================================================
##-- disable perl prototypes
PROTOTYPES: DISABLE
##--------------------------------------------------------------
## Constructor: new()
mootNgrams*
new(char *CLASS)
CODE:
RETVAL=new mootNgrams();
OUTPUT:
RETVAL
##--------------------------------------------------------------
## clear
void
clear(mootNgrams* ng)
CODE:
ng->clear();
##--------------------------------------------------------------
## Destructor: DESTROY()
void
DESTROY(mootNgrams* ng)
CODE:
if (ng) delete ng;
##=====================================================================
## Accessors
##=====================================================================
##--------------------------------------------------------------
size_t
n_unigrams(mootNgrams* ng)
CODE:
RETVAL = ng->n_unigrams();
OUTPUT:
RETVAL
##--------------------------------------------------------------
size_t
n_bigrams(mootNgrams* ng)
CODE:
RETVAL = ng->n_bigrams();
OUTPUT:
RETVAL
##--------------------------------------------------------------
size_t
n_trigrams(mootNgrams* ng)
CODE:
RETVAL = ng->n_trigrams();
OUTPUT:
RETVAL
##--------------------------------------------------------------
void
add_count(mootNgrams *ng, ...)
CODE:
if (items<3) {
Perl_croak(aTHX_ "Usage: Moot::Ngrams::add_count(ng, tag1 [,tag2 [,tag3]] count)");
} else if (items==3) {
char *tag1 = SvPV_nolen(ST(1));
CountT count = (double)SvNV(ST(2));
ng->add_counts(mootNgrams::Ngram(tag1),count);
} else if (items==4) {
char *tag1 = SvPV_nolen(ST(1));
char *tag2 = SvPV_nolen(ST(2));
CountT count = (double)SvNV(ST(3));
ng->add_counts(mootNgrams::Ngram(tag1,tag2),count);
} else if (items>=5) {
char *tag1 = SvPV_nolen(ST(1));
char *tag2 = SvPV_nolen(ST(2));
char *tag3 = SvPV_nolen(ST(3));
CountT count = (double)SvNV(ST(4));
ng->add_counts(mootNgrams::Ngram(tag1,tag2,tag3),count);
}
##--------------------------------------------------------------
CountT
lookup(mootNgrams *ng, ...)
CODE:
if (items<2) {
Perl_croak(aTHX_ "Usage: Moot::Ngrams::lookup(ng, tag1 [,tag2 [,tag3]])");
} else if (items==2) {
char *tag1 = SvPV_nolen(ST(1));
RETVAL = ng->lookup(tag1);
} else if (items==3) {
char *tag1 = SvPV_nolen(ST(1));
char *tag2 = SvPV_nolen(ST(2));
RETVAL = ng->lookup(tag1,tag2);
} else if (items>=4) {
char *tag1 = SvPV_nolen(ST(1));
char *tag2 = SvPV_nolen(ST(2));
char *tag3 = SvPV_nolen(ST(3));
RETVAL = ng->lookup(tag1,tag2,tag3);
}
OUTPUT:
RETVAL
##--------------------------------------------------------------
## ugtotal
CountT
ugtotal(mootNgrams *ng)
CODE:
RETVAL = ng->ugtotal;
OUTPUT:
RETVAL
##--------------------------------------------------------------
## I/O: File
bool
loadFile(mootNgrams *ng, char *filename)
CODE:
RETVAL = ng->load(filename);
OUTPUT:
RETVAL
bool
saveFile(mootNgrams *ng, char *filename, bool compact=false)
CODE:
RETVAL = ng->save(filename,compact);
OUTPUT:
RETVAL
##--------------------------------------------------------------
## I/O: FH
bool
loadFh(mootNgrams *ng, FILE *f, char *filename=NULL)
CODE:
RETVAL = ng->load(f,filename);
OUTPUT:
RETVAL
bool
saveFh(mootNgrams *ng, FILE *f, char *filename=NULL, bool compact=false)
CODE:
RETVAL = ng->save(f,filename,compact);
OUTPUT:
RETVAL