Guten Tag allerseits,
Ich bearbeite momentan verschiedene eingescannte und mit OCR umgewandelte Dokumente. Im OCR schleichen sich nun Fehler ein (verursacht i.d.R. durch nicht 100%-ige saubere Scans).
So wiederholt sich folgender Fehler, den ich nicht immer von Hand korrigieren möchte:
1. "Diesen Fall finde .ich sehr interessant",
2. oder "Das Gehirn. lässt sich folgendermassen unterteilen:"
D.h. es werden Punkte in die Sätze eingebaut, die eigentlich nicht vorhanden sein sollten.
Meine Absicht ist es nun, all diese Punkte mit der Suchen-und-Ersetzen-Funktion in einem Rutsch (d.h. ich möchte nicht jeden Punkt einzeln suchen und ersetzen lassen) zu löschen. Hierbei muss wohl für das erste und das zweite Beispiel eine unterschiedliche Suchstrategie eingegeben werden. Ausserdem wird das Ersetzen beim zweiten Beispiel schwierig werden, wenn der Anfangsbuchstabe des nach dem Punkt und Leerzeichen folgende Wort ein Grossbuchstabe ist ("Der Vogel am. Himmel fliegt schnell."), ist die Suchstrategie des zweiten Beispiels sehr wahrscheinlich auf Wörter mit Kleinbuchstaben zu beschränken, weil ansonsten auch die korrekt gesetzten Endpunkte gelöscht werden ("Der Vogel am. Himmel fliegt schnell. Die Spitzengeschwindigkeit beträgt ungefähr 80km/h.").
Hat jemand einen Tipp?
Danke im Voraus - wb
Suchen und Ersetzen: Punktzeichen in Sätzen
Moderator: Moderatoren
Re: Suchen und Ersetzen: Punktzeichen in Sätzen
Lieber Wolfgang,
Danke für die Antwort. Da habe ich beim ersten Beispiel zu weit gesucht...es geht manchmal wirklich einfacher als man es sich dies vorstellt. Für das zweite Probleme warte ich mal ab, ob die Spezialisten einige Tipps haben.
Grüsse
Danke für die Antwort. Da habe ich beim ersten Beispiel zu weit gesucht...es geht manchmal wirklich einfacher als man es sich dies vorstellt. Für das zweite Probleme warte ich mal ab, ob die Spezialisten einige Tipps haben.
Grüsse
Re: Suchen und Ersetzen: Punktzeichen in Sätzen
Spezialist vielleicht nicht, aber getüftelt habe ich trotzdem:
Suche nach: X Groß-/Kleinschreibung
X Regulärer Ausdruck
Ersetze durch:
Der Punkt wird maskiert \. und der Rest als Referenz in runde Klammern gesetzt, um sie im Ersetzen-Feld zu verwenden. Das [:lower:]. sucht ein einzelnes kleingeschriebenes Zeichen, mit Fragezeichen würden beliebig viele (auch null) kleingeschriebene gefunden, also alle Punkt-Leerzeichen-Buchstaben-Kombinationen.
Suche nach:
Code: Alles auswählen
\.([:space:]?[:lower:].)
X Regulärer Ausdruck
Ersetze durch:
Code: Alles auswählen
$1
Re: Suchen und Ersetzen: Punktzeichen in Sätzen
Gut dass Du drauf hinweist.Sanne hat geschrieben:Oder ist das mit den Referenzen eine funktion, die neu in 2.4 hinzugekommen ist? - ich arbeite noch mit 2.3 (Linux)
Ja, die $-Referenzen sind erst in 2.4 hinzugekommen, vorher gab es nur das & für den gesamten String, vgl. http://www.oooninja.com/2008/03/new-fea ... g-240.html (Überblick) und http://www.oooninja.com/2007/12/backref ... s-new.html.
Für das & kann man ab 2.4 auch $0 verwenden.
Re: Suchen und Ersetzen: Punktzeichen in Sätzen
Jein.Sanne hat geschrieben:Wir haben doch zwei Teile (richtig?):
den Punkt und die Kombination Space+Kleinbuchstabe.
Der Punkt ist nicht geklammert und hat damit keine eigene Referenz. Aus dem Stehgreif kann ich das mit den RegEx auch nicht, deshalb habe ich mich herangetastet, indem ich erst zwei Klammern verwendet habe. Aber, warum zwei Variablen verschwenden, wenn ich nur eine brauche? - Also habe ich die eine Klammerung weggelassen und dann auf die einzige ($1) referenziert.
Nein, $0 ist "alles", also der gesamte Suchstring. Vergleiche:Sanne hat geschrieben:die Zählung beginnt bei 0?
OOo 2.4.1 Hilfe hat geschrieben:& oder $0
Fügt die Zeichenfolge, die durch die Suchkriterien im Feld Suchen nach gefunden wurde, zu dem Begriff im Feld Ersetzen durch hinzu, wenn Sie die Ersetzung durchführen.
Wenn Sie in Suchen nach zum Beispiel "Fenster" und in Ersetzen durch "&rahmen" eingeben, wird das Wort "Fenster" durch "Fensterrahmen" ersetzt.
Außerdem können Sie mit dem Ausdruck "&" im Feld Ersetzen durch die Attribute oder das Format des durch die Suchkriterien gefundenen Suchbegriffs ändern.
Exakt. Siehe oben.wolle2000 hat geschrieben:Hallo Sanne,
könnte es sein, dass es nur eine Referenz gibt? Es gibt ja nur ein rundes Klammerpaar.
Der maskierte Punkt \. sagt dem RegEx, dass ich nach einem Punkt suche (literal), sonst ist der Punkt Quantisierer für ein Vorkommen des Zeichens vor dem Punkt.Was ich hingegen nicht verstehe, ist der "maskierte" Punkt. Was bedeutet das?
Re: Suchen und Ersetzen: Punktzeichen in Sätzen
Hallo zusammen,
Der Tipp von Christian hat bestens funktioniert, genau das habe ich benötigt!!! HERZLICHEN DANK!!!
Wolfgang hat bezüglich dem Klammerpaar recht: Ein Klammerpaar = eine Referenz = $1. Falls es zwei Referenzen gäbe wurde noch ein Klammerpaar mehr stehen, d.h. erstes Klammerpaar = $1, zweites Klammerpaar = $2 usw. wobei es egal ist, ob vor, zwischen oder nach den Klammerpaaren noch etwas steht.
Die Markierung "\" = "hebt die Bedeutung von Meta-Zeichen auf, wenn es vor diese gesetzt wird, also z.B. \+ für ein wörtlich gemeintes Plus-Zeichen", d.h. in unserem Fall: der Punkt "." soll wirklich als Punkt verstanden werden.
Grüsse
Der Tipp von Christian hat bestens funktioniert, genau das habe ich benötigt!!! HERZLICHEN DANK!!!
Wolfgang hat bezüglich dem Klammerpaar recht: Ein Klammerpaar = eine Referenz = $1. Falls es zwei Referenzen gäbe wurde noch ein Klammerpaar mehr stehen, d.h. erstes Klammerpaar = $1, zweites Klammerpaar = $2 usw. wobei es egal ist, ob vor, zwischen oder nach den Klammerpaaren noch etwas steht.
Die Markierung "\" = "hebt die Bedeutung von Meta-Zeichen auf, wenn es vor diese gesetzt wird, also z.B. \+ für ein wörtlich gemeintes Plus-Zeichen", d.h. in unserem Fall: der Punkt "." soll wirklich als Punkt verstanden werden.
Grüsse