Lingua::JA::Summarize::Mecab - mecab wrapper for C<Lingua::JA::Summarize>


Lingua-JA-Summarize documentation Contained in the Lingua-JA-Summarize distribution.

Index


Code Index:

NAME

Top

Lingua::JA::Summarize::Mecab - mecab wrapper for Lingua::JA::Summarize

METHODS

Top

new

getline

AUTHOR

Top

Kazuho Oku <kazuhooku ___at___ gmail.com>

COPYRIGHT

Top


Lingua-JA-Summarize documentation Contained in the Lingua-JA-Summarize distribution.

package Lingua::JA::Summarize::Mecab;

use strict;
use warnings;

use Lingua::JA::Summarize;

sub new {
    my ($proto, $ljs, $srcfile) = @_;
    my $klass = ref $proto || $proto;
    
    # open mecab
    my $mecab = $ljs->mecab;
    my $def_cost =
        $ljs->default_cost * Lingua::JA::Summarize::DEFAULT_COST_FACTOR();
    my $mecab_cmd = join(' ', (
        $mecab,
        q(--node-format="%m\t%pn\t%pw\t%H\n"),
        sprintf(
            q(--unk-format="%%m\t%d\t%d\tUnkType\n"), $def_cost, $def_cost),
        q(--bos-format="\n"),
        q(--eos-format="\n"),
        $srcfile,
    ));
    open my $fh, '-|', $mecab_cmd
        or croak("failed to call mecab ($mecab): $!");
    my $self = bless {
        fh => $fh,
    }, $klass;
    $self;
}

sub DESTROY {
    my $self = shift;
    $self->{fh}->close;
}

sub getline {
    my $self = shift;
    $self->{fh}->getline;
}

1;
__END__