Quanto ao módulo de stopwords em português, existe um, sim: https://metacpan.org/module/Lingua::StopWords Outra coisa interessante é aplicar um stemmer: https://metacpan.org/module/Lingua::Stem::Snowball Também vale notar uma técnica "ninja": quem disse que token precisa corresponder a UMA palavra? Usando bi- ou tri-gramas, observei aumento considerável na precisão da categorização de textos curtos. Ah, um detalhe importantíssimo: para mensurar o desempenho dos modelos estatísticos, é comum usar uma "matriz da confusão" ( https://en.wikipedia.org/wiki/Confusion_matrix). Por fim, existem coisas prontas para análise de texto usando Hadoop/Mahout: https://cwiki.apache.org/MAHOUT/twenty-newsgroups.html
ABS() 2013/4/16 Alceu Rodrigues de Freitas Junior <[email protected]> > Tiago, > > Um passo à passo vou ficar devendo até porque o assunto é um tanto > complexo e vai depender fortemente do tipo que dados que você vai analisar. > > Vale a pena ler um pouco de teoria sobre Naive Bayes (existe muito > material disponível na internet) para que você entenda melhor como > trabalhar com o corpus que for criando. > > Basicamente você vai pegar algumas mensagens e vai categorizá-las você > mesmo. > > Depois vai passar isto para o AI::Categorizer fazer parsing dessas > mensagens (criando tokens). Por estatística, ele vai entender que uma > mensagem pode ou não fazer parte daquela categoria pelos tokens encontrados. > > Depois que o categorizador recebeu este treinamento, você pode passar para > ele outras mensagens e ele vai tentar repetir o processo. Claro que não é > um método determinístico, algumas vezes ele vai errar o "chute". Você terá > que refinar o processo algumas vezes até ter resultados satisfatórios. Mas > é um trabalho contínuo se as mensagens forem mudando. > > Uma forma boa de refinar o processo é utilizar "stop words", que > basicamente é dizer para o categorizar o que ele deve ignorar como tokens. > Infelizmente não achei um módulo para fazer isto que utilizasse palavras em > português, mas você sempre pode incluir sua lista. > > []'s > Alceu > > Em 14-04-2013 09:24, Tiago Peczenyj escreveu: > >> Alceu >> >> Vc podia dar mais detalhes do seu trabalho? Como vc categorizava as >> mensagens, de repente mostrando um passo a passo a partir de algum >> exemplo mais simples... achei isso bem legal! >> >> >> 2013/4/14 Alceu Rodrigues de Freitas Junior <[email protected] >> <mailto:[email protected].**br <[email protected]>>> >> >> >> Olá Ricardo, >> >> Eu usei a distro AI::Categorizer >> (http://search.cpan.org/~__**kwilliams/AI-Categorizer-0.09/** >> __lib/AI/Categorizer.pm<http://search.cpan.org/~__kwilliams/AI-Categorizer-0.09/__lib/AI/Categorizer.pm> >> <http://search.cpan.org/~**kwilliams/AI-Categorizer-0.09/** >> lib/AI/Categorizer.pm<http://search.cpan.org/~kwilliams/AI-Categorizer-0.09/lib/AI/Categorizer.pm> >> >) >> >> para categorizar centenas de mensagens de erros diários do >> middleware de integração aonde trabalho atualmente. >> >> O AI::Categorizer tem a interface meio confusa, o POD não ajuda >> muito, mas se você pesquisar em perlmonks.org <http://perlmonks.org> >> >> você vai encontrar referências interessantes. >> >> Eu usei o algoritmo de Naive Bayes, que é estatístico, mas funciona >> suficientemente bem na maioria dos casos. Você pode querer tentar >> outros. >> >> Dê também uma olhada o projeto Weka >> >> (http://www.cs.waikato.ac.nz/_**_ml/weka/<http://www.cs.waikato.ac.nz/__ml/weka/> >> >> <http://www.cs.waikato.ac.nz/**ml/weka/<http://www.cs.waikato.ac.nz/ml/weka/>>), >> não é Perl mas pode te >> >> ajudar a decidir mais facilmente que algoritmo usar. >> >> []'s >> >> Em 13-04-2013 18:16, Ricardo Stock escreveu: >> >> Ola para todos. >> gostaria da ajuda da galera para a descoberta de algum >> módulo ou >> caso alguem já tenha trabalhado com analise de texto. >> Alguem poderia me dar alguma dica ou caminho das pedras para >> trabalhar com analise de texto, para dependendo da frase tomar >> determinada ação. >> No aguardo >> Ricardo Stock >> www.stocksistemas.com.br >> <http://www.stocksistemas.com.**br<http://www.stocksistemas.com.br> >> > >> <http://www.stocksistemas.com.**__br >> >> <http://www.stocksistemas.com.**br<http://www.stocksistemas.com.br> >> >> >> >> >> =begin disclaimer >> Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ >> SaoPaulo-pm mailing list: [email protected] >> <mailto:[email protected]> >> >> L<http://mail.pm.org/mailman/_**_listinfo/saopaulo-pm<http://mail.pm.org/mailman/__listinfo/saopaulo-pm> >> >> >> <http://mail.pm.org/mailman/**listinfo/saopaulo-pm<http://mail.pm.org/mailman/listinfo/saopaulo-pm> >> >> >> =end disclaimer >> >> >> =begin disclaimer >> Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ >> SaoPaulo-pm mailing list: [email protected] <mailto: >> [email protected]> >> >> L<http://mail.pm.org/mailman/_**_listinfo/saopaulo-pm<http://mail.pm.org/mailman/__listinfo/saopaulo-pm> >> >> >> <http://mail.pm.org/mailman/**listinfo/saopaulo-pm<http://mail.pm.org/mailman/listinfo/saopaulo-pm> >> >> >> =end disclaimer >> >> >> >> >> -- >> Tiago B. Peczenyj >> Linux User #405772 >> >> http://about.me/peczenyj >> >> >> =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<http://mail.pm.org/mailman/listinfo/saopaulo-pm> >> > >> =end disclaimer >> >> > =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<http://mail.pm.org/mailman/listinfo/saopaulo-pm> > > > =end disclaimer >
=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
