![]() |
|< 1 2 3 4 5 >| | ![]() |
50 Einträge, 5 Seiten |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
my %hash = ('Abend' => 'NN', 'Sonne' => 'NN', 'Haus' => 'NN', 'Abendsonne' => 'who knows', ); for my $word ( keys %hash ) { for my $pre ( keys %hash ) { for my $post ( keys %hash ) { if ( "\L$word" eq "\L$pre$post" ) { print $word, $/; } } } }
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
sub lese_korpus {
my $dateiname = shift;
my %hash_korpus;
open my $input, "<", $dateiname or return 0;
while (my $zeile = <$input>) {
# Whitespace entfernen und normalisieren:
$zeile =~ s/(\S+)\s+(\S+)/$1 $2/;
$zeile =~ s/^\s+//;
# Leere Zeilen überspringen
next if ($zeile eq '');
# Token und Tag im Hash als Schlüssel und Wert ablegen:
$zeile =~ s/(\S+)\s(\S+)/$hash_korpus{$1}=$2/ge;
}
close $input;
return %hash_korpus;
}
LanX-+2008-07-25 19:19:42--debugge mal lieber was hinten rauskommt indem du in die Schleifen ein
print "$word\n"; # und $pre und $post
einfügst.
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 38 39 40
use strict; use diagnostics; use locale; my %korpus = lese_korpus("korpus.txt"); sub lese_korpus { my $dateiname = shift; my %hash_korpus; open my $input, "<", $dateiname or return 0; while (my $zeile = <$input>) { # Whitespace entfernen und normalisieren: $zeile =~ s/(\S+)\s+(\S+)/$1 $2/; $zeile =~ s/^\s+//; # Leere Zeilen überspringen next if ($zeile eq ''); # Token und Tag im Hash als Schlüssel und Wert ablegen: $zeile =~ s/(\S+)\s(\S+)/$hash_korpus{$1}=$2/ge; } close $input; return %hash_korpus; }
1 2 3 4 5 6 7 8 9 10 11
foreach my $schluessel (keys %korpus) { if ($schluessel =~ /\w+/) { foreach my $pre (keys %korpus) { foreach my $post (keys %korpus) { if ($schluessel eq "\Q$pre$post\E") { print $schluessel . "\n"; } } } } }
Dingels+2008-07-27 13:38:38--Gibt's ne Abkürzung, mit der man alle Sonderzeichen auf einmal ausschließen kann?
@woerter= grep {/w+/} keys %hash ;
Dingels+2008-07-27 13:38:38--Was muss ich machen, damit der Code endlich funktioniert?
1 2 3 4 5 6 7 8 9 10 11
my @woerter = grep {/w+/} keys %korpus; foreach my $schluessel (@woerter) { foreach my $pre (@woerter) { foreach my $post (@woerter) { if ("\L$schluessel" eq "\L$pre$post") { print $schluessel . "\n"; } } } }
![]() |
|< 1 2 3 4 5 >| | ![]() |
50 Einträge, 5 Seiten |