[SP-pm] analise de texto

Marcio Ferreira marciodesouzaferreira at gmail.com
Wed Apr 17 08:22:17 PDT 2013


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 <creaktive at gmail.com>

> 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 <glasswalk3r at yahoo.com.br>
>
>> 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 <glasswalk3r at yahoo.com.br
>>> <mailto:glasswalk3r at yahoo.com.**br <glasswalk3r at yahoo.com.br>>>
>>>
>>>
>>>     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: SaoPaulo-pm at pm.org
>>>         <mailto:SaoPaulo-pm at pm.org>
>>>            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: SaoPaulo-pm at pm.org <mailto:
>>> SaoPaulo-pm at pm.org>
>>>     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: SaoPaulo-pm at pm.org
>>>   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: SaoPaulo-pm at pm.org
>> 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: SaoPaulo-pm at pm.org
>  L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
> =end disclaimer
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.pm.org/pipermail/saopaulo-pm/attachments/20130417/1691c0e1/attachment.html>


More information about the SaoPaulo-pm mailing list