AI-MaxEntropy
view release on metacpan or search on metacpan
lib/AI/MaxEntropy/Util.pm view on Meta::CPAN
8910111213141516171819202122232425262728293031323334353637383940our
$VERSION
=
'0.20'
;
our
@ISA
=
qw/Exporter/
;
our
@EXPORT_OK
=
qw/traverse_partially map_partially train_and_test precision recall/
;
our
%EXPORT_TAGS
=
(
all
=> [
@EXPORT_OK
]);
sub
traverse_partially(&$$;$) {
my
(
$code
,
$samples
,
$pattern
,
$t
) =
@_
;
$t
||=
'x'
;
my
(
$p
,
$n
) = (
length
(
$pattern
),
scalar
(
@$samples
));
for
my
$i
(
grep
{
substr
(
$pattern
,
$_
, 1) eq
$t
} (0 ..
$p
- 1)) {
for
(
int
(
$n
*
$i
/
$p
) ..
int
(
$n
* (
$i
+ 1) /
$p
) - 1) {
$_
=
$samples
->[
$_
];
$code
->();
}
}
}
sub
map_partially(&$$;$) {
my
(
$code
,
$samples
,
$pattern
,
$t
) =
@_
;
my
@r
;
traverse_partially {
push
@r
,
$code
->(
$_
) }
$samples
,
$pattern
,
$t
;
return
\
@r
;
}
sub
train_and_test {
my
(
$me
,
$samples
,
$pattern
) =
@_
;
traverse_partially {
$me
->see(
@$_
) }
$samples
,
$pattern
,
'x'
;
my
$m
=
$me
->learn;
( run in 1.404 second using v1.01-cache-2.11-cpan-26ccb49234f )