Thread Haeufigkeit von Woertern: chatlog analysieren (5 answers)
Opened by styx-cc at 2006-10-18 21:40

styx-cc
 2006-10-18 21:40
#70983 #70983
User since
2006-05-20
533 Artikel
BenutzerIn

user image
Halli hallo, ich versuche gerade zu ermitteln, wie oft welches Wort an welchem Tag (blabla) gesagt wurde..
Allerdings bekomm ich das irgendwie nicht hin :(

Hatt versucht, ein mehrdimensionales Array zu nehmen:

Code: (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
sub make_stat {
my ($tmpdir, $logfile) = @_;
my @words;

open(LOG, "<$tmpdir/$logfile") or die("Can't open logfile. $!");
for my $line (<LOG>) {
#print $line;
my @parts = split(/ /,$line);
my $time = shift(@parts);
my $user = shift(@parts);

for (my $i=0;$i<scalar(@parts);$i++) {
next if ( (length($parts[$i]) < 3) || ($parts[$i] =~ m/(;|:|\(|\)|\/|<|>|)/) ); #smilies und kurze worte aussortieren
push(@words, [$parts[$i], 1]) if (scalar(@words) < 1);

my $found = 0;
my $j = 0;
for (@words) {
if ($words[$j][0] eq $parts[$i]) {
$words[$j][1]++; #wort hochzaehlen
$found = 1;
last;
}
$j++;
}
push(@words, [$parts[$i], 1]) unless $found;
}
}
close LOG or die("Can't close logfile. $!");
for my $i (0..scalar(@words)) {
print "$words[$i][0], $words[$i][1]\n";
}
} #sub make_stat


Die Daten kommen wie folgt auf den Logfiles:
Code: (dl )
1
2
3
4
5
(00:10) <Henda> =(
(00:10) <pHyL> seufzt :[
(00:12) <styx> mhmh
(00:12) <styx> jetzt passieren kommische dinge
(00:13) <Henda> welche denn?


Es scheint alles zu klappen, bis auf die Sache mit dem Zaehlen..
Freue mich schon auf eure Hilfe :-)

MfG

P.s.: In wirklichkeit sind die Logfiles natuerlich n bisschen groesser :- )
Pörl.

View full thread Haeufigkeit von Woertern: chatlog analysieren