2010-09-27 20 views
11

Nove anni fa, quando ho iniziato ad analizzare l'HTML e il testo libero con Perl, ho letto il classico Data Munging with Perl. Qualcuno sa se David ha intenzione di aggiornare il libro o se ci sono libri o pagine web simili in cui vengono spiegati i nuovi moduli di analisi come XML-Twig, Regexp-Grammars, ecc.?Quali moduli Perl vanno bene per i dati munging?

Suppongo che negli ultimi nove anni alcuni moduli siano ancora validi come erano, alcuni sono aggiornati ma con nuovi metodi interessanti e alcuni hanno sostituzioni migliori. Ad esempio, è ancora Parse-RecDescent l'unica opzione per l'analisi del testo libero o sarà il Perl 6 influenzato Regexp-Grammars la sua sostituzione in molti scenari?

Ho trascorso quattro anni senza HTML attivo, XML o data mining di testo libero con Perl, quindi probabilmente il mio toolkit in questo settore è un po 'obsoleto. Pertanto qualsiasi feedback per la manipolazione di HTML e DOM, link di estrazione/verifica, test web come Mechanize, manipolazione XML e analisi del testo libero, da persone che sono aggiornate con i moduli CPAN attuali in quest'area sarà più che benvenuto.

alcune nuove aggiunte al mio toolkit:

ancora nel mio toolkit:

risposta

7

E ' improbabile che ci sarà mai una seconda edizione di "Data Munging with Perl". Ho paura che l'economia non si impili.

Ma, hai ragione che la tecnologia ha fatto grandi passi avanti dal 2001 e ci sono molti moduli nuovi e migliorati che coprono gran parte della stessa area dei moduli discussi nel libro, Ad esempio, posso ' Ricordo l'ultima volta che ho usato XML :: Parser o XML :: DOM. Mi sembra di usare XML :: LibXML per la maggior parte del mio lavoro XML in questi giorni. Inoltre, ovviamente, la mia discussione sui database è incompleta perché non menziona DBIx :: Class.

Forse sarebbe un'idea interessante aggiornare alcune di queste informazioni tramite alcuni post su my Perl blog. Ci penserò un po '. Grazie per l'idea.

+0

alcune delle specifiche potrebbe avere cambiato, ma i concetti sono gli stessi. :) –

+0

Dave, sarebbe un piacere leggere un giorno queste recensioni e ricette sul tuo blog. –

+0

Sì, sarei MOLTO interessato a leggere anche quei post. Se finisci per postare alcuni aggiornamenti aggiuntivi sul tuo blog, è super. Saluti! – blunders

4

Re: Parse::RecDescent < =>Regexp::Grammars

Damian Conway è stato citato dicendo che Regexp::Grammarsè il successore diParse::RecDescent.Ma anche così se Parse::RecDescent continua a svolgere il lavoro per te, continua a utilizzarlo. Lo strumento che conosci bene è migliore dello strumento che non conosci!

Tuttavia se le prestazioni sono una questione chiave e si esegue perl 5.10+ allora non prendere in considerazione Regexp::Grammars.

speranza Dave non mente, ma qui è il suo primo Parse::RecDescent esempio dalla munging dati con Perl (11.1.1) convertito in Regexp::Grammars:

use 5.010; 
use warnings; 
use Regexp::Grammars; 

my $parser = qr{ 
    <Sentence> 

    <rule: Sentence>  <subject> <verb> <object> 
    <rule: subject>   <noun_phrase> 
    <rule: object>   <noun_phrase> 
    <rule: noun_phrase>  <pronoun> | <proper_noun> | <article> <noun> 

    <token: verb>   wrote | likes | ate 
    <token: article>  a | the | this 
    <token: pronoun>  it | he 
    <token: proper_noun> Perl | Dave | Larry 
    <token: noun>   book | cat 
}xms; 

while (<DATA>) { 
    chomp; 
    print "'$_' is "; 
    print 'NOT ' unless $_ =~ $parser; 
    say 'a valid sentence'; 
} 

__DATA__ 
Larry wrote Perl 
Larry wrote a book 
Dave likes Perl 
Dave likes the book 
Dave wrote this book 
the cat ate the book 
Dave got very angry 

NB. Per coloro che non si ha il libro unico "Dave si arrabbiò molto" è una frase valida :)

/I3az/

+0

noun_phase = nome_phrase? – Mike

+0

@Mike: È fastidioso che non si possa copiare/incollare da carta stampata a qui :) Ben avvistato I've 's/noun_phase/nome_phrase /' – draegtun

+1

Ovviamente "Dave è molto arrabbiato" non è una frase valida. Dave non si arrabbia mai :-) –

Problemi correlati