Servas,ich will ein Dictonary bzw Posting List erzeugen indem ich verschiedene Dokumente einlese, komm aber einfach nicht weiter. Mein Code soll eine Liste mit Wörter erzeugen und daneben hinschreiben in welchen Dokument es vorgekommen ist. Stufe eins schaff ich schon, also erstes Dokument einlesen, docid hinzufuegen und in File speichern. Weiß aber nicht wie jetzt ein neues File einlese, und prüfe ob das wort schon vorkommt und neue doc id hinzufuege... Hash array?
soll ca so aussehen:
wort doc1,doc3,doc5
wort doc2,doc3,doc7
wort doc3
also so weit bin ich schon:
#! /usr/bin/perl -w
#use strict;
my $satzzeichen = "[\(\)\.,!\?;:\"\'\»\«\-]"; # mögliche Satzzeichen
#%hash = ();
$file1 = 'C:\Perl_Source\Doc1.txt'; # Filename zuweisen
$file2 = 'C:\Perl_Source\Doc2.txt';
open(DICT,">$file2");
open(FILE1, $file1); # File öffnen
#my %hash;
while(<FILE1>){
my $satz = $_;
$satz =~ s/$satzzeichen//g; # Satzzeichen killen
@words= split(/\s+/,$satz); # Text nach Leerzeichen aufspliten und im Arra y speichern
foreach $word (@words) { # foreach Schleife behandelt alle Element des Array
$counter{$word}="doc"; # Hash mit den Wörter als Key erzeugen und hochzaehlen wenn mehrmals vorhanden
}
}
foreach $word ( keys %counter) { # foreach Schleife behandelt wieder alle Elemnte des Array
print DICT "$word $counter{$word}\n"; # Ausgabe der Schluessel Wertpaare
}
also mein Plan ist irgendwie ein hash array erzeugen und ihm als array wert immer die neue docid zu übergeben wenn schon vorhanden, und wenn nicht neues key/wertpaar zu erzeugen...die Idee ist ja da, aber an der implementierung happerts halt noch!
für Hilfe wäre ich sehr dankbar
DAnke backstaia
Datum: 18.10.2006-09:52
