[Rio-pm] :engine::TRE

Stanislaw Pusep creaktive em gmail.com
Segunda Julho 2 06:24:15 PDT 2012


Só um parênteses: eu usaria o String::Approx[1] ou o re::engine::TRE[2] no
lugar do String::Trigram[3], que é extremamente veloz porém voraz no
quesito de RAM. Esses 3 módulos seriam apropriados para fuzzy match de uma
string em lista de strings.
Já o String::Similarity[4] é muito bom para comparar 2 strings, mas não é a
coisa mais eficiente para aplicar a listas.
Frequentemente uso o Text::Fingerprint[5] como "versão light" do
Text::Soundex[6] (com elementos de String::Trigram :P).
Recomendo o artigo do Blabos[7] e de um computeiro russo[8] (outro russo) a
todos que trabalharem com strings imprecisas :)

[1] https://metacpan.org/module/String::Approx
[2] https://github.com/avar/re-engine-tre
[3] https://metacpan.org/module/String::Trigram
[4] https://metacpan.org/module/String::Similarity
[5] https://metacpan.org/module/Text::Fingerprint
[6] https://metacpan.org/module/Text::Soundex
[7] http://blog.blabos.org/2008/12/faxina-depois-da-festa/
[8] http://ntz-develop.blogspot.com.br/2011/03/fuzzy-string-search.html

ABS()



2012/7/2 <ulisses em ibiz.com.br>

>   usamos por aqui
>
> use Text::DoubleMetaphone qw( double_metaphone ); # casamento fonetico
>
> use String::Approx 'adist';
>
>  *From:* Stanislaw Pusep <creaktive em gmail.com>
> *Sent:* Monday, July 02, 2012 9:24 AM
> *To:* Perl Mongers Rio de Janeiro <rio-pm em pm.org>
> *Cc:* saopaulo-pm em mail.pm.org
> *Subject:* Re: [Rio-pm] :engine::TRE
>
> Bom dia Thiago!
> Obrigado pela dica, não conhecia o String::Approx. Pelo meu rápido RTFS,
> usa o mesmo algoritmo que o re::engine::TRE (
> https://en.wikipedia.org/wiki/Bitap).
> Também fiz a coisa mais óbvia, que devia ter feito antes de mandar o email
> para a lista: olhei no CPAN Testers, e percebi que o módulo em questão só
> funcionava até Perl v5.10. Entrei em contato com o autor, e ele confirmou
> que as "entranhas" do Perl tornaram-se incompatíveis a partir do v5.12.
> Verei o que faço a respeito; o módulo me pareceu deveras útil.
>
> ABS()
>
>
>
> 2012/6/29 Thiago Glauco <thiagoglauco em ticursos.net>
>
>> Eu uso
>>   use String::Approx 'amatch';
>>
>>   print if amatch("foobar");
>>
>>   my @matches = amatch("xyzzy", @inputs);
>>
>>   my @catches = amatch("plugh", ['2'], @inputs);
>>
>>
>> Em Qui, 2012-06-28 às 18:20 -0300, Stanislaw Pusep escreveu:
>> >
>> > Um dos exemplos de aplicação prática dela é o utilitário
>> > 'agrep' (approximate grep).
>>
>> _______________________________________________
>> Rio-pm mailing list
>> Rio-pm em pm.org
>> http://mail.pm.org/mailman/listinfo/rio-pm
>>
>
>
> ------------------------------
> _______________________________________________
> Rio-pm mailing list
> Rio-pm em pm.org
> http://mail.pm.org/mailman/listinfo/rio-pm
>
>
> _______________________________________________
> Rio-pm mailing list
> Rio-pm em pm.org
> http://mail.pm.org/mailman/listinfo/rio-pm
>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/rio-pm/attachments/20120702/834a5ca5/attachment-0001.html>


Mais detalhes sobre a lista de discussão Rio-pm