2010-09-27 8 views
11

Vor neun Jahren, als ich begann, HTML und freien Text mit Perl zu analysieren, las ich den Klassiker Data Munging with Perl. Weiß jemand, ob David plant, das Buch zu aktualisieren, oder ob es ähnliche Bücher oder Webseiten gibt, auf denen die neuen Parsing-Module wie XML-Twig, Regexp-Grammars usw. erklärt werden?Welche Perl-Module für die Datensicherung?

Ich gehe davon aus, dass in den letzten neun Jahren einige Module immer noch so gut sind wie sie waren, einige sind auf dem neuesten Stand, aber mit neuen interessanten Methoden und einige haben besseren Ersatz. Zum Beispiel, ist immer noch Parse-RecDescent die einzige Option für die freie Textanalyse oder wird der Perl 6 Regexp-Grammars sein Ersatz in vielen Szenarien beeinflusst?

Ich war vier Jahre ohne aktive HTML, XML oder Free Text Data Mining mit Perl, also ist mein Toolkit in diesem Bereich wahrscheinlich etwas veraltet. Daher ist jedes Feedback für HTML- und DOM-Manipulation, Link-Extraktion/Verifizierung, Web-Tests wie Mechanize, XML-Manipulation und freies Text-Parsen von Personen, die mit den aktuellen CPAN-Modulen in diesem Bereich aktuell sind, mehr als willkommen.

Einige neue Ergänzungen zu meinem Toolkit:

noch in meinem Toolkit:

Antwort

7

Es ist nicht aktualisiert unwahrscheinlich, dass es jemals eine zweite Ausgabe von "Data Munging with Perl" geben wird. Ich habe Angst, dass die Ökonomie einfach nicht aufgeht.

Aber Sie haben recht, dass die Technologie seit 2001 einen langen Weg zurückgelegt hat und es viele neue und verbesserte Module gibt, die einen Großteil des gleichen Bereichs wie die in diesem Buch behandelten Module abdecken. Zum Beispiel kann ich ' Ich erinnere mich an das letzte Mal, als ich XML :: Parser oder XML :: DOM verwendet habe. Ich verwende XML :: LibXML für den Großteil meiner XML-Arbeit in diesen Tagen. Natürlich ist meine Diskussion von Datenbanken auch unvollständig, weil DBIx :: Class nicht erwähnt wird.

Vielleicht wäre es eine interessante Idee, einige dieser Informationen durch einige Beiträge auf my Perl blog zu aktualisieren. Ich werde darüber nachdenken. Danke für die Idee.

+0

Einige der Besonderheiten haben sich geändert könnten, aber die Konzepte sind die gleichen. :) –

+0

Dave, es wäre ein Vergnügen, diese Bewertungen und Rezepte in Ihrem Blog eines Tages zu lesen. –

+0

Ja, ich wäre sehr daran interessiert, diese Beiträge zu lesen. Wenn Sie am Ende einige zusätzliche Updates in Ihrem Blog veröffentlichen, ist das super. Prost! – blunders

4

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

Damian Conway wurde zitiert, dass Regexp::Grammarsder Nachfolger Parse::RecDescent- ist.Aber selbst wenn Parse::RecDescent immer noch die Arbeit für Sie erledigt, dann verwenden Sie es weiter. Das Werkzeug, das Sie gut kennen, ist besser als das Werkzeug, das Sie nicht kennen!

Wenn Leistung jedoch ein Schlüsselproblem ist und Sie Perl 5.10+ ausführen, dann betrachten Sie Regexp::Grammars.

Hoffnung Dave nicht, aber hier hat nichts dagegen, ist sein erstes Parse::RecDescent Beispiel aus Daten Mungen mit Perl (11.1.1) umgewandelt 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. Für diejenigen, die Sie nicht nur über das Buch haben „Dave sehr wütend bekam“ ist ein ungültiger Satz :)

/I3az/

+0

noun_phase = nomen_phrase? – Mike

+0

@Mike: Es ist nervig Sie können nicht kopieren/einfügen von gedrucktem Papier nach hier :) Gut entdeckt habe ich 's/noun_phase/nomen_phrase /' – draegtun

+1

Natürlich "Dave wurde sehr wütend" ist kein gültiger Satz. Dave wird nie wütend :-) –

Verwandte Themen