Sonntag, 11. August 2013

Helferlein Postkorrektur von 'Und'

Mithilfe eines Scriptes, welches eigentlich Worttrennungen aufsammeln sollte habe ich festgestellt, daß in den schon korrigierten Texten ab und an das Wort 'und' mitten im Satz groß geschrieben war, zB.: 'Der Müller Und sein Sohn…'.

Eigentlich sollte ja, wie in meinem Beitrag "Erkennung von OCR- und Tippfehlern in Textdateien" beschrieben, die Verwendung von DPCustomMono2 solche Fehler bei der Korrektur sichtbar machen. Hat leider in diesem Beispiel nicht gut nicht funktioniert…

Da die korrigierten Texte aber Basis für ein Wörterbuch für Tesseract sind, kam es durch die gehäufte Verwendung von 'Und' zu einer sich selbstverstärkenden Schleife, die in neuen OCR-Texten immer öfter das 'Und' mit Großbuchstaben mitten in den Satz einbaut.

Dank Linux ist das Problem schnell behoben, ich habe jetzt ein Script, in welchen ich solche Kandidaten eintrage (Update: Script nun vereinfacht):

#!/bin/bash
if [ ! -e "$1" ]; then
    echo "needs a file on commandline"
    exit 1
fi
grep "[a-z]\+ Und" $1 && echo "#### found 'Und' (und) in $1"
grep "[a-z]\+U[a-z]\+" $1 && echo "#### found 'xxUxx' in $1"
grep "[a-z]\+ dein" $1 && echo "#### found 'dein' (dem) in $1"
grep "[a-z]\+ init" $1 && echo "#### found 'init' (mit) in $1"

Der Ausdruck '[a-z]\+ Und' im Grep heißt nichts anderes als 'Finde alle Stellen mit einem "Und", vor welchem ein Leerzeichen und davor mindestens ein Kleinbuchstabe steht.'

In einer Schleife lasse ich dies über die OCR-Texte laufen:

$> for i in ../txt/img*.txt; do bash find_typical_errors.sh $i; done| less

Voila! :)