Frage

Weiß jemand, der eine Bibliothek oder ein Stück Software gibt, die Unregelmäßigkeiten in Text finden wird? Zum Beispiel kann sagen, ich habe ...

1. Name 1, Comment
2. Name 2, Comment
3. Name 3 , Comment
5. Name 10, Comment

Diese Software oder Bibliothek würde erste Teile des Textes zerschneiden, dass es (viel gleich ein Stück Komprimierungssoftware würde kodieren wiederholende Ähnliche Abschnitte von Text, um ihn nach unten zu komprimieren) ähnlichen Bildern finden würde, aber eine Variable für Fehlertoleranz verwendet, könnte es finden ähnliches Teile des Textes, jetzt viel gleich eine Textvergleich-Anwendung oder diff / Merge-Tool könnte es tatsächlich hervorzuheben, was sie als anders sieht. Ich denke über möglicherweise dieses Werkzeug zu machen, aber ich mag nicht, das Rad neu zu erfinden. Wenn es etwas gibt, überall fern dazu in der Lage ist, würde Ich mag zu wissen, wirklich möglicherweise an diesem Projekt zu helfen oder zumindest weiß, nicht zu machen. Nicht diese Antwort zu erwähnen, möglicherweise auch andere Menschen für die gleiche Sache der Jagd helfen könnte, würde ich denkt, dass die Nachfrage hoch genug wäre, um für die Versorgung, die ist, warum es meinen Geist verwirrt, dass ich gar nichts finden können.

War es hilfreich?

Lösung

Je nachdem, welche Art von wirklichen Leben Unregelmäßigkeiten wollen Sie dieses Problem finden oder zu korrigieren radikal verschieden ist.

Hier ist Ihr Beispiel mit echtem Text aktualisiert:

1. Lazarus Long, Get the first shot off fast.
2. Hiro Protagonist, Greatest swordfighter[sic] in the world.
3. Alice , Down the rabbit hole.
5. Orem, Sink of power.

In diesem Beispiel könnten die Fehler mit einem anständigen Texteditor festgelegt werden mit finden eine ersetzen. Texteditoren und Hex-Editoren können Wunder wirken, wenn Sie mit Wildcards kreativ. Das Problem bleibt einfach, solange Ihre Begrenzungsfaktoren in Existenz sind (. Oder,). Wie Sie wahrscheinlich bereits wissen; sobald einer von denen ist das Problem fehlt viel komplexer wird.

Beispiel für ein schwieriges Problem:

1. Lazarus Long, Get the first shot off fast.
 2. Hiro Protagonist  Greatest swordfighter[sic] in the world.
3. Alice , Down the rabbit hole.
5 . Orem, , Sink of power.

Ich würde wahrscheinlich diese in wenigen Schritten angreifen. 1. Bereinigen Sie zusätzliche Leerzeichen. 2. Finden Sie heraus, wichtige Statistiken wie die Anzahl von Trennzeichen pro Zeile und die avg Anzahl von Wörtern oder Zeichen pro Spalte begrenzt. Die meisten Namen sind ein oder zwei Wörter, Kommentare sind unbekannt oder durch Eingabe beschränkt. 3. Suchen Sie Linien mit einer statistisch unwahrscheinliche Anzahl von Schlüsselfunktionen. 4. Versuchen Sie Ihr Bestes, um sie zu korrigieren.

Ich verstehe, dass dies nicht direkt Ihr Problem zu lösen, aber vielleicht eine Idee kann Ihr Problem über ein bisschen patchen. Es ist möglich, dass in der Vergangenheit Rad wright nie irgendwelche Entwürfe abgeschlossen.

Andere Tipps

Wenn Sie in Python sind, können Sie versuchen, difflib .

Es ist keine exakte Lösung für Ihr Problem, aber es könnte hilfreich sein.

Sounds im Grunde wie Sie Regex verwenden wollen würden eine „ideale Antwort“, dann vergleichen Sie den Rest der Zeilen gegen sie zu schaffen.

Sie können auch ein komplizierteres Programm schreiben, das jede Zeile nach unten in eine Regex Abfrage kochen würde, und vergleicht dann die Abfragen zueinander zu sehen, welche unterschiedlich sind.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top