Thread Wörter zählen in Textdaten (Perl 5.8) (5 answers)
Opened by GwenDragon at 2010-10-07 12:25

Gast wer
 2010-10-07 12:57
#141768 #141768
Ich glaube so wäre es schneller:

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#/usr/bin/perl -w

use strict;
use warnings;
use utf8;

my %words;
my @blacklist_entries = qw( insurance Sxx porn buy viagra ZENIC Möbelkauf Bußgeld Führerschein);

my $regexp=join('|',map{qr/\Q$_\E/i}@blacklist_entries);
$regexp=qr/(?<=^|\b)($regexp)(?=\b|$)/;

while (my $line = <DATA>) {
        $words{lc($1)}++ while ($line =~/$regexp/gi);
}

while (my ($key, $value) = each %words) {
        print "$key=$value\n";
}

__DATA__
Das ist ein VIAGRA Text für Viagra.
ViaGrA or Zenic BuY thS!

$VIAGRA!
************ Möbelkauf ganz billig.
$VIAGRA
$VIAGRA:
schnellstmöglich Bußgeld Führerschein neu!
pOr N.

    POrn---------.
 :sxx: download

porN.

vIaGrH.

Last edited: 2010-10-07 13:02:04 +0200 (CEST)

View full thread Wörter zählen in Textdaten (Perl 5.8)