AI::Categorizerで日本語

| コメント(0) | トラックバック(0)



AI::Categorizerで日本語を読み込んでみたら全然動かなかったので30分Hack。以下をAI::Categorizer::Documentが読み込まれた後に読み込むと一応動く。30分hackなのであまり信用しないように。



package AI::Categorizer::Document;
use strict;
use warnings;
use Text::MeCab;

sub tokenize_ascii {
my $self = shift;
my @tokens;
while ($_[0] =~ /([-\w]+)/g) {
my $word = lc $1;
next unless $word =~ /[a-z]/;
$word =~ s/^[^a-z]+//; # Trim leading non-alpha characters (helps with ordinals)
push @tokens, $word;
}
return \@tokens;
}

sub tokenize
{
my $self = shift;
if ($_[0] =~ /[\P{ASCII}]/) {
my @ret;
my $mecab = Text::MeCab->new();
for(my $node = $mecab->parse($_[0]); $node; $node = $node->next) {
push @ret, $node->surface;
}
return \@ret;
} else {
return $self->tokenize_ascii(@_);
}
}

1;

Author

Daisuke Maki (a.k.a lestrrat): Perl hacker, Director of Japan Perl Association, YAPC::Asia Tokyo Organizer (2009-2012), Fluent in Japanese, English. Ex-Brazilian (sorta)

#perl #c #ruby #java #mysql #english #japanese #opensource #stf #cooking #scotch #cigar


このエントリーをはてなブックマ
ークに追加

翔泳社よりモダンPerl入門(2010)を出版させていただいております。できれば内容をアップデートしたいので是非皆様・・・現在の在庫処理にお力をお貸しください!><

月別アーカイブ