Seite 1 von 1

Suchmethoden

Verfasst: Sonntag 24. Februar 2019, 17:12
von kwatzka
Hallo.
Ich bräuchte Hilfe.
Problem: Ich habe in einem Text-File ca. 300.000 Zeilen.
Ich möchte nun mit Python TextZeilen herausfinden die in der Suche ähnlichen Text Inhalt haben.
Beispiel:
Filenames = open(textfile)
search="saragossa - medley dance mix.mp3"
for line in Filenames:
if search in line:
print ("gefunden")
Im textfile steht allerdings: "Q:\mp3\fasching\saragossa band - medley dance mix (2011).mp3
Diese zeile ist mit der Funktion IN nicht abzudecken.
Wie kann ich nach verschiedenen TextTeilen in den Zeilen suchen. Ich habe re probiert. Ich habe bereits find ausprobiert. Beide haben keinen Erfolg gebracht.
Ich möchte gerne wie beim Suchen in einem Textfile nur Teile zum suchen verwenden: z.B "saragossa" und "dance mix". und es sollte zu finden sein. Danke

Re: Suchmethoden

Verfasst: Sonntag 24. Februar 2019, 19:26
von sls
Zunächst solltest du Quellcode hier entsprechend mit Codetags <> versehen, sonst gehen Einrückungen verloren die wichtig für Python sind, und der Code wirkt dann auch nicht mehr ganz so kryptisch. Der in-Operator vergleicht den search-String mit jeder Zeile und schaut, ob dieser exakt so vorkommt. Wenn du den String aufbrichst, bspw. nur in den Bandnamen und den Song, wird der Sucherfolg wahrscheinlicher.

Mich würde interessieren, was bei deinem regulären Ausdruck nicht passt, dazu müsstest du den Versuch hier pasten.

Re: Suchmethoden

Verfasst: Sonntag 24. Februar 2019, 20:03
von __deets__
Für so ein Problem gibt es verschiedene Ansätze. Man will eigentlich Unschärfe um gegen Rechtschreibfehler gewappnet zu sein. Und ggf Dinge wie Wortstämme um Abwandlungen zu finden. Dafür gibt es fertige Tools wie zb elastic search, oder zumindest grundlegende Verfahren wie trigramme oder Levensthein-Distanz mit denen du arbeiten kannst.

Ein Projekt das Hilfe verspricht aber ggf etwas leichtgewichtiger ist wäre zb http://whoosh.readthedocs.io/en/latest/intro.html - habe ich selbst noch nicht mit gearbeitet, aber sieht gut aus.

Re: Suchmethoden

Verfasst: Sonntag 24. Februar 2019, 20:43
von nezzcarth
Interessant wäre hier zu wissen, wie die Datei, in der gesucht werden soll, strukturell aussieht. Wenn die Datei, wie das Beispiel nahelegt, nur aus einem Dateinamen pro Zeile besteht, kann man die Fragestellung etwas anders angehen, als wenn man eine generische Suche braucht. Whoosh kann man schon nehmen. Es ist halt nicht ganz so Feature-complete wie Elasticsearch oder solr. Aber vmtl. brauchst du das auch gar nicht, denn die grundlegenden Sachen, die man so braucht, sind auch in whoosh implementiert.

Re: Suchmethoden

Verfasst: Montag 25. Februar 2019, 08:30
von kwatzka
Guten Morgen.
Danke für die schnellen Antworten. Whoosh sieht vielversprechend aus. Werde dies auspropieren.