AI-Classifier
view release on metacpan or search on metacpan
t/file_reader.t view on Meta::CPAN
$hash{$doc->{file}} = $doc;
}
my $target = {
File::Spec->catfile( qw( t data training_initial_features ham 1 ) ) => {
'file' => File::Spec->catfile( qw( t data training_initial_features ham 1 ) ),
'categories' => [ 'ham' ],
features => { trala => 1, some_tag => 3, NO_URLS => 2 }
},
};
is_deeply( \%hash, $target );
}
{
{
package TestLearner;
sub new { bless { examples => [] } };
sub add_example {
my ( $self, @example ) = @_;
push @{ $self->{examples} }, \@example;
}
}
my $internal_learner = TestLearner->new();
my $learner = AI::Classifier::Text::FileLearner->new(
training_dir => File::Spec->catdir( @training_dirs ),
learner => $internal_learner
);
$learner->teach_it;
my $weights;
if( $internal_learner->{examples}[0][1]{aaaa} ){
$weights = $internal_learner->{examples}[1][1];
}
else{
$weights = $internal_learner->{examples}[0][1];
}
ok( abs( $weights->{ccccc} - 0.44 ) < 0.01
and
abs( $weights->{NO_URLS} - 0.9 ) < 0.01 )
or warn Dumper( $weights );
$internal_learner = TestLearner->new();
$learner = AI::Classifier::Text::FileLearner->new(
training_dir => File::Spec->catdir( @training_dirs ),
learner => $internal_learner,
term_weighting => 'n',
);
$learner->teach_it;
if( $internal_learner->{examples}[0][1]{aaaa} ){
$weights = $internal_learner->{examples}[1][1];
}
else{
$weights = $internal_learner->{examples}[0][1];
}
ok( abs( $weights->{ccccc} - 0.75 ) < 0.01 );
ok( abs( $weights->{NO_URLS} - 1 ) < 0.01 );
# warn Dumper( $internal_learner ); use Data::Dumper;
}
done_testing;
( run in 1.080 second using v1.01-cache-2.11-cpan-677af5a14d3 )