Ich stoße bei diesem Problem auf eine Mauer und ich frage mich, ob mir ein paar frische Gehirne helfen könnten.Effiziente Tupel-Listenvergleiche
ich eine große Liste von vier Elementen Tupeln im Format haben:
(ID-Nummer, Typ, Start-Index, End Index)
Zuvor im Code, habe ich durch Tausende von Blöcken gesucht Text für zwei bestimmte Arten von Teilstrings. Diese Tupel speichern, in welchem großen Teil des Textes der Teilstring gefunden wurde, welcher der beiden Arten von Teilstrings er ist, und den Start- und Endindex dieses Teilstrings.
Das letzte Ziel besteht darin, diese Liste zu durchsuchen, um alle Instanzen zu finden, in denen ein Teilstring vom Typ 1 vor einem Teilstring vom Typ 2 in einem Textblock mit derselben ID vorkommt. Dann möchte ich diese Objekte im Format speichern (ID, Typ 1, Start, Ende, Typ2, Start, Ende).
Ich habe versucht, mit einer Reihe von Sachen herumzualbern, die sehr ineffizient war. Ich habe die Liste nach ID und dann Start Index sortiert, und wenn ich verschiedene Möglichkeiten versucht habe, die Artikel von der Liste für Vergleiche zu knacken. Ich muss mir vorstellen, dass es eine elegantere Lösung gibt. Irgendwelche brillanten Leute da draußen möchten meinem müden Gehirn helfen ???
Vielen Dank im Voraus
Wie sind IDs den Textblöcke zugewiesen? Das zu wissen, wird helfen, einen effizienten Algorithmus zu entwickeln. – Kai
Wie bestimmen Sie, dass Typ 1 vor Typ 2 liegt? Ist es einfach Typ 1 Start
mamboking
Das Finden eines schnellen Ansatzes hängt etwas von der Form der Dinge ab. Gibt es viele IDs, und für jede ID gibt es mehrere oder viele Vorkommen desselben Typs? – tom10