Olá Stanislaw,

Eu li seu artigo em https://gist.github.com/creaktive/1924499 e achei bastante didático, principalmente sobre a parte estatística.

No entanto, eu devo dizer que é possível sim utilizar persistência com o AI::Categorizer:

if ( -e $store_file ) {

    $know_set = AI::Categorizer::KnowledgeSet->restore_state($store_file);
    $c        = AI::Categorizer->new(
        knowledge_set => $know_set,
        verbose       => 0
    );

}
else {

    $know_set = AI::Categorizer::KnowledgeSet->new(
        name    => 'Integration Errors',
        verbose => 0
    );

    $c = AI::Categorizer->new(
        knowledge_set => $know_set,
        verbose       => 0
    );

    create_categs(
{ file => $cat_file, categorizer => $c, stop_words => $stopwords } );

    $know_set->save_state($store_file);
}

O fato de poder evitar "reaprender" economizou tempo, ciclo de CPU e memória no programa que desenvolvi.

No mais, por qual motivo você optou por usar MongoDB como backend? Digo, além da escalabilidade? Não existe uma possível perda de dados neste caso?

[]'s
Alceu

Em 18-04-2013 10:03, Stanislaw Pusep escreveu:
Não dá: ele é high-level demais. O que pode ser feito é uma gambiarra:
pre-processar o documento e representá-lo com hashes de seus tokens
customizados. Uma excelente referencia:
http://hunch.net/~jl/projects/hash_reps/index.html


ABS()


2013/4/18 Alceu Rodrigues de Freitas Junior <[email protected]
<mailto:[email protected]>>

    De fato foram ótimas dicas.

    Só fiquei com uma dúvida: como controlar o AI::Categorizer para
    utilizar como tokens mais de uma palavra?

    []'s
    Alceu


=begin disclaimer
  Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
SaoPaulo-pm mailing list: [email protected]
L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
=end disclaimer

Responder a