Falando ainda de matrix e comparações, 2 módulos que me ajudam muito e poupam tempo https://metacpan.org/module/List::Compare https://metacpan.org/module/Algorithm::Combinatorics
Esse tipo de trabalho você precisa saber o que quer e ir construindo aos poucos. E vai pegando essas manhas que o Stan citou. Recomendo também distribuir o trabalho com https://metacpan.org/module/Parallel::ForkManager, MAS cuidado!! Saiba qual ponto distribuir. O run_on_finish é útil usado com moderação, ele escreve no disco, aí pode ser um baita gargalo =S. Use um https://metacpan.org/module/Devel::NYTProf pra saber onde otimizar. Stan++ #ótimo artigo! []s, Marcio Ferreira skype: marcio.ferreir4 (21) 8365-7768 2013/4/16 Stanislaw Pusep <[email protected]> > 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 > >
=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
