|
|
|
|
|
|
|
|
|
|
|
|
|
package CRFPP; |
|
use base qw(Exporter); |
|
use base qw(DynaLoader); |
|
package CRFPPc; |
|
bootstrap CRFPP; |
|
package CRFPP; |
|
@EXPORT = qw(); |
|
|
|
|
|
|
|
package CRFPP; |
|
|
|
sub TIEHASH { |
|
my ($classname,$obj) = @_; |
|
return bless $obj, $classname; |
|
} |
|
|
|
sub CLEAR { } |
|
|
|
sub FIRSTKEY { } |
|
|
|
sub NEXTKEY { } |
|
|
|
sub FETCH { |
|
my ($self,$field) = @_; |
|
my $member_func = "swig_${field}_get"; |
|
$self->$member_func(); |
|
} |
|
|
|
sub STORE { |
|
my ($self,$field,$newval) = @_; |
|
my $member_func = "swig_${field}_set"; |
|
$self->$member_func($newval); |
|
} |
|
|
|
sub this { |
|
my $ptr = shift; |
|
return tied(%$ptr); |
|
} |
|
|
|
|
|
|
|
|
|
package CRFPP; |
|
|
|
|
|
|
|
|
|
package CRFPP::Tagger; |
|
use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS); |
|
@ISA = qw( CRFPP ); |
|
%OWNER = (); |
|
%ITERATORS = (); |
|
*set_vlevel = *CRFPPc::Tagger_set_vlevel; |
|
*vlevel = *CRFPPc::Tagger_vlevel; |
|
*set_cost_factor = *CRFPPc::Tagger_set_cost_factor; |
|
*cost_factor = *CRFPPc::Tagger_cost_factor; |
|
*set_nbest = *CRFPPc::Tagger_set_nbest; |
|
*nbest = *CRFPPc::Tagger_nbest; |
|
*add = *CRFPPc::Tagger_add; |
|
*size = *CRFPPc::Tagger_size; |
|
*xsize = *CRFPPc::Tagger_xsize; |
|
*dsize = *CRFPPc::Tagger_dsize; |
|
*result = *CRFPPc::Tagger_result; |
|
*answer = *CRFPPc::Tagger_answer; |
|
*y = *CRFPPc::Tagger_y; |
|
*y2 = *CRFPPc::Tagger_y2; |
|
*yname = *CRFPPc::Tagger_yname; |
|
*x = *CRFPPc::Tagger_x; |
|
*ysize = *CRFPPc::Tagger_ysize; |
|
*prob = *CRFPPc::Tagger_prob; |
|
*alpha = *CRFPPc::Tagger_alpha; |
|
*beta = *CRFPPc::Tagger_beta; |
|
*emission_cost = *CRFPPc::Tagger_emission_cost; |
|
*next_transition_cost = *CRFPPc::Tagger_next_transition_cost; |
|
*prev_transition_cost = *CRFPPc::Tagger_prev_transition_cost; |
|
*best_cost = *CRFPPc::Tagger_best_cost; |
|
*Z = *CRFPPc::Tagger_Z; |
|
*empty = *CRFPPc::Tagger_empty; |
|
*clear = *CRFPPc::Tagger_clear; |
|
*next = *CRFPPc::Tagger_next; |
|
*parse = *CRFPPc::Tagger_parse; |
|
*what = *CRFPPc::Tagger_what; |
|
sub DESTROY { |
|
return unless $_[0]->isa('HASH'); |
|
my $self = tied(%{$_[0]}); |
|
return unless defined $self; |
|
delete $ITERATORS{$self}; |
|
if (exists $OWNER{$self}) { |
|
CRFPPc::delete_Tagger($self); |
|
delete $OWNER{$self}; |
|
} |
|
} |
|
|
|
sub new { |
|
my $pkg = shift; |
|
my $self = CRFPPc::new_Tagger(@_); |
|
bless $self, $pkg if defined($self); |
|
} |
|
|
|
sub DISOWN { |
|
my $self = shift; |
|
my $ptr = tied(%$self); |
|
delete $OWNER{$ptr}; |
|
} |
|
|
|
sub ACQUIRE { |
|
my $self = shift; |
|
my $ptr = tied(%$self); |
|
$OWNER{$ptr} = 1; |
|
} |
|
|
|
|
|
|
|
|
|
package CRFPP; |
|
|
|
*VERSION = *CRFPPc::VERSION; |
|
1; |
|
|