Indizierung von HTML Dokumenten
Besseresser
- datenbank
0 hotti0 Besseresser0 hotti
0 Tom0 hotti
Guten Morgen!
Für eine Suche nach html. - (bzw. htm. -) Dokumente benötige ich eine Indizierung der Dokumente. So soll das Script oder Programm die Dateien durchsuchen und anschließend die vorhanden Wörter inklusive Dateiort in einer Listenform aufbereiten, damit ich diese in eine mysql Datenbank importieren kann.
Im Moment teste ich das ganze auf meinem System mit xampp, später wird das ganze unter Windows Server 2003 laufen. Allerdings könnte man mit cygwin auch Shellscripts laufen lassen...
Kennt ihr zufällig ein geeignetes Programm oder Script?
Danke für alle Antworten :-)
Schönen tag noch!
hi,
Kennt ihr zufällig ein geeignetes Programm oder Script?
Naja, sowas ähnliches hab ich schon mal gemacht. Allerdings hatte ich dabei den Index der html-Doks schonmal als Textdatei vorliegen. Auf jeden Fall dürfte Dir das Perl Modul "HTML::TagParser" weiterhelfen, damit kriegst Du z.B. alles was zwischen <body> und </body> steht.
Um einzelne Worte zu bekommen, splitte den Text nach \s+. Duplikate haust Du dann raus mit einem hash. Und mit einem hash-Slice entfernst Du mit einem Schlag Stop-Worte wie "der die das usw". Solche Stopwort-Listen findest Du auch im Internet.
Hotte
Um einzelne Worte zu bekommen, splitte den Text nach \s+. Duplikate haust Du dann raus mit einem hash. Und mit einem hash-Slice entfernst Du mit einem Schlag Stop-Worte wie "der die das usw". Solche Stopwort-Listen findest Du auch im Internet.
Danke dir!
Bräuchte aber noch genauere Infos zu dem Hashthema.
Wie funktioniert das?
Gruß,
Besseresser
hi,
Danke dir!
Bräuchte aber noch genauere Infos zu dem Hashthema.
Wie funktioniert das?
#!/usr/bin/perl
################################################
use strict;
my %h;
@h{qw(eins zwei drei der die das)} = (1..6);
print join("\n", keys %h), "\n\n--------\n\n"; # hier haste noch alle
my @stopwords = qw(der die das);
delete @h{@stopwords};
print join("\n", keys %h), "\n"; # no stopwords
Hotte
Ui, danke Hotte!
Dann werde ich mich da erstmal reinwuseln...
Die Gewichtung ist erst mal optional. Primäres Ziel ist, dass ich eine mögliche Lösung habe.
Hello,
Um einzelne Worte zu bekommen, splitte den Text nach \s+. Duplikate haust Du dann raus mit einem hash.
Er müsste sie gewichten. Und im Index auch vermerken, auf welcher Seite das Suchwort wie oft vorkommt.
Liebe Grüße aus dem Cyberspace
Tom vom Berg
Hello,
»» Um einzelne Worte zu bekommen, splitte den Text nach \s+. Duplikate haust Du dann raus mit einem hash.
Er müsste sie gewichten. Und im Index auch vermerken, auf welcher Seite das Suchwort wie oft vorkommt.
Letzteres schon. Die Wichtung nicht unbedingt, nur dann, wenn die Suche, die auf den Index aufsetzt, nach einer solchen Relevanz die Ergebnisse ausgibt, z.B. sortiert (so auf meiner Site, siehe match-Method bei Perl-Modul Text::Query).
Hotte
Momentan realisiere ich das Ganze mit php, sowohl die Indizierung, als auch die Suche.
Bei Problemen und weiteren Nachfragen melde ich bestimmt noch einmal :-)
Schönen Tag wünsche ich euch!