11

9年前にPerlでHTMLとフリーテキストの解析を始めたとき、私はPerlで古典的なデータ変更を読みました。Davidが本を更新する予定があるかどうか、またはXML-TwigRegexp-Grammarsなどの新しい解析モジュールが説明されている同様の本やWebページがあるかどうかを誰かが知っていますか?

過去9年間で、いくつかのモジュールは以前と同じように優れていると思います。いくつかは最新ですが、新しい興味深い方法があり、いくつかはより良い代替品があります。たとえば、Parse-RecDescentはフリーテキスト解析の唯一のオプションですか、それとも多くのシナリオでPerl 6の影響を受けるRegexp-Grammarsに置き換わるのでしょうか?

私はPerlを使用したアクティブなHTML、XML、またはフリーテキストデータマイニングを4年間行っていないため、この分野のツールキットは少し古くなっている可能性があります。したがって、この分野の現在のCPANモジュールに精通している人々からの、HTMLおよびDOM操作、リンク抽出/検証、MechanizeなどのWebテスト、XML操作、およびフリーテキスト解析に関するフィードバックは大歓迎です。

私のツールキットへのいくつかの新しい追加:

まだ私のツールキットにあります:

4

2 に答える 2

7

「Perlによるデータ変更」の第2版が登場する可能性はほとんどありません。経済学が積み重なっていないのではないかと心配しています。

しかし、2001年以降、テクノロジーは大きく進歩し、本で説明されているモジュールと同じ領域の多くをカバーする、新しく改善されたモジュールがたくさんあります。たとえば、最後のモジュールは思い出せません。 XML::ParserまたはXML::DOMを使用したとき。最近のXML作業の大部分にXML::LibXMLを使用しているようです。また、もちろん、データベースについての私の議論は、DBIx::Classについて言及していないため不完全です。

おそらく、私のPerlブログのいくつかの投稿を通じて、この情報の一部を更新することは興味深い考えでしょう。少し考えてみます。アイデアをありがとう。

于 2010-09-27T07:34:20.740 に答える
4

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

ダミアン・コンウェイは、それが後継者であると言っていると言われています。しかし、それでもあなたのために仕事が終われば、それを使い続けてください。あなたがよく知っているツールはあなたが知らないツールよりも優れています!Regexp::Grammars Parse::RecDescentParse::RecDescent

ただし、パフォーマンスが重要な問題であり、perl 5.10+を実行している場合は、検討してRegexp::Grammarsください。

Daveが気にしないことを願っていますが、 Perl (11.1.1)を使用したData MungingParse::RecDescentからの最初の例を次のように変換します: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。あなたが本を持っていない人にとっては、「デイブは非常に怒った」だけは無効な文です:)

/ I3az /

于 2010-09-27T12:26:17.177 に答える