Thread Arrayvergleich - Index von gefundenen Einträgen (2 answers)
Opened by ferdi317 at 2010-11-25 18:41

ferdi317
 2010-11-25 18:41
#143043 #143043
User since
2010-11-25
2 Artikel
BenutzerIn
[default_avatar]
Hallo,

ich muss große Datensätze (150.000 Einträge) vergleichen. Es handelt sich um ein Lexikon der häufigsten deutschen Wörter und ein Transkriptionswörterbuch. Letzteres hat zwei Einträge pro Zeile (Wort \t Transkription). Erst öffne ich die Dateien und lese sie in Arrays ein; das Wörterbuch splitte ich in 2 Arrays (gra für Graphem = Wort und pho für phonetische Transkription)


Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
open(HFGWRT, "<hfgwrtnew.txt") || die "Datei hfgwrtnew.txt konnte nicht geöffnet werden!";
my @hfgwrt = <HFGWRT>;
close(HFGWRT);

open(BOSSLEX, "<bosslexikon.txt") || die "Datei bosslexikon.txt konnte nicht geöffnet werden!";
while (<BOSSLEX>) {
  chomp;
  my ($bossgra, $bosspho) = split /\t/, $_;
  push (@bossgra_ar,("$bossgra\n"));
  push (@bosspho_ar,("$bosspho\n"));
}


Jetzt will ich die häuftigsten Wörter durchsuchen (hfgwrt) und von allen Einträgen, die mit den Graphemen übereinstimmen, das Graphem und die phonetische Transkription mit \t als Trennzeichen in eine neue Datei schreiben.

Beispiel:
@hfgwrt = (Affe, Apfel, Vergaser);
@bossgra_ar = (Affe, Ampel, Astronaut, Vergaser, Zimbel);
@bosspho_ar = (?af6, ?amp6l, ?astronaut, fe@ga:s6, tsImb@l);

bei allen übereinstimmenden Einträgen soll die Transkription mit übernommen werden (gleiche Indizes, da sortiert).

Ich habe jetzt 2 Stunden lang versucht, dafür eine Lösung zu finden, aber ich bin noch nicht so fit mit Perl und konnte nichts geeignetes übernehmen. Bin für jede Hilfe dankbar!

Chris
Last edited: 2010-11-25 18:50:00 +0100 (CET)

View full thread Arrayvergleich - Index von gefundenen Einträgen