Algorithm-Prefixspan

 view release on metacpan or  search on metacpan

lib/Algorithm/Prefixspan.pm  view on Meta::CPAN


sub projection {
  my $self = shift;
  my $seq = shift;
  my $b = shift;
  my $h;

  foreach my $i (@{$seq}) {
    my @list = split /\s+/, $i;
    for (my $j = 0; $j < @list; $j++) {
      if ($list[$j] eq $b) {
        splice @list, 0, ($j +1);
        if (@list > 0) {
          push @{$h}, join " ", @list;
        }
      }
    }
  }

  return $h;
}


1;
__END__

=encoding utf-8

=head1 NAME

Algorithm::Prefixspan - Perl implementation for the algorithm PrefixSpan (Prefix-projected Sequential Pattern mining).

=head1 SYNOPSIS

    use Algorithm::Prefixspan;
    my $data = [
                "a c d",
                "a b c",
                "c b a",
                "a a b",
               ];
    
    my $prefixspan = Algorithm::Prefixspan->new(
                                 data => $data,
                                );
    
    my $pattern = $prefixspan->run; 
    # $pattern got as follow.   
    # {
    #           'c' => 3,
    #           'a c' => 2,
    #           'a' => 5,
    #           'b' => 3,
    #           'a b' => 2
    # };

    options:
    # set minimum support (default: 2)
    $prefixspan->{'minsup'} = 2
    
    # set minimum pattern length (default: 1)
    $prefixspan->{'len'} = 1


=head1 DESCRIPTION

Algorithm::Prefixspan is pure perl implementation
for the algorithm PrefixSpan (Prefix-projected Sequential Pattern mining) 
by designed Pei et al.

This module is not fast.

Reference

* PrefixSpan: Mining Sequential Patterns Efficiently by Prefix-Projected Pattern Growth Jian Pei, Jiawei Han, Behzad Mortazavi-asl, Helen Pinto, Qiming Chen, Umeshwar Dayal and Mei-chun Hsu IEEE Computer Society, 2001, pages 215.


=head1 LICENSE

Copyright (C) Yukio HORI.

This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself.

=head1 AUTHOR

Yukio HORI E<lt>horiyuki@cpan.orgE<gt>

=cut



( run in 0.688 second using v1.01-cache-2.11-cpan-e93a5daba3e )