Forum: PC Hard- und Software Redundanzen in Texten entfernen


von Worf (Gast)


Lesenswert?

Hallo,

ich habe hier Datenbank-Einträge, in denen es ein Notiz-Feld gibt. Dort 
wird quasi Fließtext eingegeben. Leider sind durch fehlerhafte 
Synchronisations-Vorgänge die Einträge innerhalb des Notiz-Feldes 
verdoppelt und teilweise sogar verdreifacht worden. Also z.B. so:

Dies ist eine Testnotiz,
hier stehen ein paar Zeilen,
oder aber auch sehr viele...

Dies ist eine Testnotiz,
hier stehen ein paar Zeilen,
oder aber auch sehr viele...

Dies ist eine Testnotiz,
hier stehen ein paar Zeilen,
oder aber auch sehr viele...

Natürlich wurde in der Zwischenzeit mit den Notizen gearbeitet, so dass 
sich die Blöcke teilweise unterscheiden. So könnte z.B. bei meinem 
Beispiel im ersten Block etwas geändert, gelöscht oder hinzugefügt 
worden sein:


Dies ist eine Testnotiz,
hier steht jetzt eine geänderte Zeile,
oder aber auch sehr viele...

Dies ist eine Testnotiz,
hier stehen ein paar Zeilen,
oder aber auch sehr viele...

Dies ist eine Testnotiz,
hier stehen ein paar Zeilen,
oder aber auch sehr viele...

Wenn es nur ein paar Datensätze und nur wenige Zeilen pro Notiz wären, 
würde ich es sicherlich per Hand erledigen. So aber suche ich nach 
irgend einer Hilfe, die diesen Korrektur-Prozess vereinfacht. Das 
Problem ist, dass es keine Duplikate im klassischen Sinne sind, sondern 
so etwas wie Duplikate auf Feld-Inhalt-Basis. Die Daten sind in der 
iCloud, Kommentare wie "BackUp zurückspielen" bitte verkneifen, wenn es 
so einfach wäre, hätte ich das schon längst getan. Für hilfreiche 
Lösungsansätze wäre ich euch sehr dankbar!

von Blinky (Gast)


Lesenswert?

Ändert sich immer nur der erste "Block"?
Gibt es eine Möglichkeit zu erkennen wann ein neuer Block in dem Feld 
anfängt(z.B. Wie im Beispiel die Zeile "Dies ist eine Testnotiz,")?
Kann man mit einer Programmiersprache(z.B. Java) auf die Datenbank 
zugreifen?

Wenn ja, wäre ein Ansatz ein folgendes Programm:
Loop über die betroffene Tabelle
- Lesen des Datensatzes
- Erkennungsmerkmal des Blocks im Feld ermitteln
- Entfernen des Feldinhalts ab der Stelle an der das Erkennungsmerkmal
  wieder auftritt
- Zurückschreiben(Update) des Datensatzes mit dem verkürzten Feldinhalt

von Martok (Gast)


Lesenswert?

Worf schrieb:
> Das
> Problem ist, dass es keine Duplikate im klassischen Sinne sind, sondern
> so etwas wie Duplikate auf Feld-Inhalt-Basis.

Ok, wenn das das Problem ist, wie würdest du die Sache denn angehen, 
wenn es klassische Duplikate wären?


Worf schrieb:
> Die Daten sind in der
> iCloud, Kommentare wie "BackUp zurückspielen" bitte verkneifen, wenn es
> so einfach wäre, hätte ich das schon längst getan.

Es ist nett, dass du uns mit auf den Weg gibst, welche Werkzeuge nicht 
zur Verfügung stehen. Leider ist die umgekehrte Richtung die 
interessantere: Was ist das für eine Datenbank? Wie kannst du darauf 
zugreifen, d.h. welchen Werkzeugen ist dieses Problem zugänglich?

Auch wenn das Zurückspielen von Backups das Problem offensichtlich nicht 
löst, könnten vorhandene Backups gute Lösungsansätze ermöglichen. Daher: 
Was für Backups gibt es?


Worf schrieb:
> So aber suche ich nach
> irgend einer Hilfe, die diesen Korrektur-Prozess vereinfacht.

Bis die Beschreibung wesentlich präziser wird: Versuch's mit einer Kanne 
starkem Kaffee und sei dankbar, dass dein Gehirn Mustererkennung gut 
kann.

von Worf (Gast)


Lesenswert?

Blinky schrieb:
> Ändert sich immer nur der erste "Block"?

Leider nein.

Blinky schrieb:
> Gibt es eine Möglichkeit zu erkennen wann ein neuer Block in dem Feld
> anfängt(z.B. Wie im Beispiel die Zeile "Dies ist eine Testnotiz,")?

Keine zuverlässige - wenn überhaupt dann nur über die vorhandenen 
Redundanzen, die mit steigender Buchstabenanzahl einen wiederholten 
Block wahrscheinlicher erscheinen lassen.

Blinky schrieb:
> Kann man mit einer Programmiersprache(z.B. Java) auf die Datenbank
> zugreifen?
Ja, man kann z.B. mit Objective-C das Notiz-Feld auslesen.

Martok schrieb:
> Ok, wenn das das Problem ist, wie würdest du die Sache denn angehen,
> wenn es klassische Duplikate wären?

Unter OS X in der Kontakte-App im Menü "Visitenkarte" den Menüpunkt 
"Nach Duplikaten suchen..." nutzen. Was hat das jetzt mit meinem Problem 
zu tun?

Martok schrieb:
> Leider ist die umgekehrte Richtung die
> interessantere: Was ist das für eine Datenbank? Wie kannst du darauf
> zugreifen, d.h. welchen Werkzeugen ist dieses Problem zugänglich?

Wie ich schon schrieb sind die Daten in der iCloud. Somit gilt...
Datenbank = iCloud
Zugriff und Werkzeuge = alles das was Apple im Rahmen von Web-Interface, 
iOS-App oder OS X App erlaubt. Oder alternativ mit Xcode via API.

Martok schrieb:
> Bis die Beschreibung wesentlich präziser wird: Versuch's mit einer Kanne
> starkem Kaffee und sei dankbar, dass dein Gehirn Mustererkennung gut
> kann.

Da die Beschreibung nun wesentlich präziser ist, bin ich gespannt auf 
Deine  Vorschläge.

von Torf (Gast)


Lesenswert?

Worf schrieb:
> Da die Beschreibung nun wesentlich präziser ist, bin ich gespannt auf
> Deine  Vorschläge.

Da die Beschreibung nun immer noch gehaltloses Geschwafel ist, sind wir 
gespannt auf den Link, unter dem du deine Datenbank mit der 
Allgemeinheit teilst, weil wir dir sonst keine weiteren Hilfestellungen 
geben können und werden.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Naja, das Problem lässt sich durchaus komplett losgelöst von der Art der 
Datenbank und der Anbindung betrachten.

Denn zu betrachten ist jedes Textfeld isoliert für sich. Wie der Inhalt 
jeweils bestimmt wird und wie er nach Änderungen wieder in die Datenbank 
(oder was auch immer) zurücktransportiert wird, ist zweitrangig.

Zunächst geht es darum, zu untersuchen, ob es im Textfeld überhaupt 
Doubletten gibt. Dazu ist die Anzahl des Auftretens jedes Wortes zu 
suchen.
1
Dies ist eine Testnotiz,
2
hier stehen ein paar Zeilen,
3
oder aber auch sehr viele...
4
5
Dies ist eine Testnotiz,
6
hier stehen ein paar Zeilen,
7
oder aber auch sehr viele...
8
9
Dies ist eine Testnotiz,
10
hier stehen ein paar Zeilen,
11
oder aber auch sehr viele...

In diesem Fall taucht jedes Wort genau dreimal auf.

Gibt es Häufungen von Wortdoubletten (oder -mehrfachen), dann ist 
anzunehmen, daß so ein "Redundanzstörfall" vorliegt.

Jetzt kann weiterverfahren werden: Das erste Wort im Text wird im 
Folgetext gesucht. Im Beispiel wäre das "Dies".

Mit einem Textvergleich lässt sich nun herausfinden, ob eine 
Textredundanz vorliegt; der Text von der Anfangsposition bis vor das 
zweite Auftreten des Wortes "Dies" wird mit dem Text ab der Position 
dieses zweiten "Dies" verglichen.

Ist er identisch, kann abgebrochen werden und der Text ab dem zweiten 
gefundenen "Dies" gelöscht werden.

von c-hater (Gast)


Lesenswert?

Worf schrieb:

> ich habe hier Datenbank-Einträge, in denen es ein Notiz-Feld gibt. Dort
> wird quasi Fließtext eingegeben. Leider sind durch fehlerhafte
> Synchronisations-Vorgänge die Einträge innerhalb des Notiz-Feldes
> verdoppelt und teilweise sogar verdreifacht worden. Also z.B. so:
>
> Dies ist eine Testnotiz,
> hier stehen ein paar Zeilen,
> oder aber auch sehr viele...
>
> Dies ist eine Testnotiz,
> hier stehen ein paar Zeilen,
> oder aber auch sehr viele...
>
> Dies ist eine Testnotiz,
> hier stehen ein paar Zeilen,
> oder aber auch sehr viele...
>
> Natürlich wurde in der Zwischenzeit mit den Notizen gearbeitet, so dass
> sich die Blöcke teilweise unterscheiden. So könnte z.B. bei meinem
> Beispiel im ersten Block etwas geändert, gelöscht oder hinzugefügt
> worden sein:

Wirklich nur im ersten oder auch in anderen (temporal gesehen vermutlich 
"früheren").

Wenn spätere gewollte Änderungen immer nur im ersten existierenden Block 
erfolgt sein können, ist die Sache eigentlich recht trivial.

Was die bescheuerte Idee betrifft, Daten dort abzulegen, wo man keine 
Kontrolle darüber hat und dann auch noch, kein Backup zu besitzen: 
Soviel vollständige Idiotie muss einfach mit Maximalstrafe belegt sein: 
also komplett mit Rauschen durchsetzten Daten. No mercy.

Nur so lernen auch die krass unfähigen Frickler auf die harte Tour, 
worauf es bei der Datenhaltung wirklich ankommt...

von Wegstaben V. (wegstabenverbuchsler)


Lesenswert?

Verstopfung?

von Ahnungsloser (Gast)


Lesenswert?

> Redundanzen in Texten entfernen

Bei Politiker-Reden ist das jedenfalls ganz einfach, geht schon unter 
CP/M bzw. DOS:
ALLES ersatzlos streichen ...

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.