Re: Advice

[email protected] (Ken Williams) Sun, 6 Feb 2005 10:20:22 -0600
Newsgroups perl.ai
Message-ID <[email protected]>
Aha, yes.

AI::Categorizer lets you customize the tokenization behavior to be 
however you want, by subclassing the Document class and overriding the 
tokenize() method.  You could do something like this:

{
   package My::Documents;
   @ISA = qw(AI::Categorizer::Document::Text);
   sub tokenize {
     return [split ' ', $_[1]];
   }
}
my $c = new AI::Categorizer(
               document_class => 'My::Documents',
);

...

  -Ken

On Feb 5, 2005, at 11:23 AM, Jason Armstrong wrote:

> Thanks for all the good feedback, I'll certainly be following up on it.
>
> I did find one reason why I wasn't getting good matches ... when I
> looked more carefully at the perl data structure, I found that the
> 'features' hash only contained alphabetic characters. So, for example,
> in the string 'WARRIOR 14-160 14-160', only the warrior part was being
> used. Also, with 'BMW 318i' and 'BWM 525i', the numbers were being
> ignored, and with something like 'A/T', two separate features 'a' and
> 't' were there.
>
> So my further question is how to get NaiveBayes to use white space
> separated words as features ('318i', 'a/t') and not just the individual
> alphabetic characters. Is it a simple option when calling
> new AI::Categorizer?
>
> --
> Jason Armstrong
>