Text Ersetzen in ausgewählten Dateien

Post a reply


In an effort to prevent automatic submissions, we require that you complete the following challenge.
Smilies
:D :) ;) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :!: :?: :idea: :| :mrgreen: :geek: :ugeek: :arrow: :angel: :clap: :crazy: :eh: :lolno: :problem: :shh: :shifty: :sick: :silent: :think: :thumbup: :thumbdown: :salute: :wave: :wtf: :yawn: :facepalm: :bravo: :dance: :beard: :morebeard: :xmas: :HeHe: :trollface: :cookie: :rainbow: :monkeysee: :monkeysay: :happybday: :headwall: :offtopic: :superhappy: :terms: :beer:
View more smilies

BBCode is ON
[img] is OFF
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: Text Ersetzen in ausgewählten Dateien

Re: Text Ersetzen in ausgewählten Dateien

Post by gero » 18 Feb 2024, 08:08

Kleiner Nachtrag:
Wegen der Unterscheidung von Gross- und Kleinschreibung bei der Korrektur sowie eine Verbesserung der Performace sollten diese 3 Zeilen an den Anfang des Scripts hinzugefügt werden:

Code: Select all

SetBatchLines,-1
ListLines,OFF
StringCaseSense, On ;Off Locale
gruss
gero

Re: Text Ersetzen in ausgewählten Dateien

Post by MichaelPundt » 16 Feb 2024, 13:26

Ach prima. Das habe ich verstanden. Danke schön.

Re: Text Ersetzen in ausgewählten Dateien

Post by gero » 16 Feb 2024, 06:51

Hi MichaelPundt ... gab vielleicht ein paar Missverständnisse .... mein Code ist nur ein Vorschlag.
Ich würde eine Datei anlegen (FEHLER.TXT), die folgenden Aufbau hat:

Code: Select all

FALSCH=RICHTIG
FALSCH=RICHTIG
FALSCH=RICHTIG
.
.
FALSCH=RICHTIG
Gib deiner OCR-Datei den Namen OCRTEXT.TXT und leg sie am Desktop ab.
Dann lass das Script laufen.
Alles wird mit allem verglichen und landet als korrigierte Datei auf dem Desktop.

Code: Select all


;	die Datei FEHLER.TXT wird eingelesen:
FileRead,KOR,%A_Desktop%\FEHLER.TXT  ; Path angeben
;	die Datei von OCR wird eingelesen:
FileRead,OCRTEXT,%A_Desktop%\OCRTEXT.TXT  ; Path angeben
StringSplit,a,KOR,`n
Loop,% a0
	{
	StringSplit,b,a%A_Index%,=
	b2 := StrReplace(b2,"`r") 
	OCRTEXT := StrReplace(OCRTEXT,b1,b2)
	}
TC := A_Sec . A_MSec
FileAppend,% OCRTEXT,%A_Desktop%\KORREKTUR_%TC%.TXT
Wenn die Fehlerdatei und OCR-Datei nicht allzu umfangreich ist sollte das recht flott gehen.

gruss
gero

Re: Text Ersetzen in ausgewählten Dateien

Post by MichaelPundt » 16 Feb 2024, 02:04

Sorry Gero, ich habe deinen Code nicht verstanden.
Meine Hoffnung war, dass ich meine schon fertige Liste mit

Code: Select all

::Fehler::Korrektur
verwenden kann. Soweit ich dein Beispiel verstehe, ist das nicht möglich, ja?

Re: Text Ersetzen in ausgewählten Dateien

Post by gero » 15 Feb 2024, 16:48

Hallo ... steht doch alles da .... erstelle eine Datei mit den "Lieblingsfehlern" deiner OCR und deren Korrekturen und lass diese wie im Code oben über deinen Text laufen.
Code oben kannst du 1:1 übernehmen ... oder auf noch andere Lösungen hier warten.

gruss
gero

Re: Text Ersetzen in ausgewählten Dateien

Post by MichaelPundt » 15 Feb 2024, 16:27

Hallo Gero, ich bin tatsächlich recht erfahren mit Fraktur-Übersetzungsfehlern, weil ich schon mehrere Bücher korrigiert habe. Es sind immer die gleichen Fehler wie das Verwechseln von f und s. Die Zahl der Silben, die ich dafür in die Korrekturmaske eingeben muss, ist dagegen begrenzt. Mir würde das sehr helfen, weil dieser Frakturtext voraussichtlich nicht der letzte sein wird, den ich von OCR übersetzen lasse.
KI wie z.B. das Transkribus Projekt ist leider noch lange nicht so weit, um wirklich eine Hilfe zu sein. Da funktioniert Tesseract mit anschließendem händischen Korrigieren besser.
Also, wenn mir jemand weiterhelfen könnte, wäre ich wirklich sehr dankbar.

Re: Text Ersetzen in ausgewählten Dateien

Post by gero » 15 Feb 2024, 11:20

Hallo MichaelPundt ... geht von der Sache her mit AHK ... ABER:
Es gibt so viele Bedingungen und Ausnahmen (Gross - und Kleinschreibung, Zahlen z.B. 1 statt 7, fehlende Spaces, Sonderzeichen plus die Kreativität deiner OCR Software ... alles das müsstest du in einer Korrekturdatei erfassen (falsch1->richtig1, falsch2->richtig1, falsch3->richtig1) und ständig aktualisieren ... und du kannst dir letztlich nie sicher sein, dass deine OCR nicht neue Ideen hat.
Ums Korrekturlesen wirst du imho nie herum kommen ... aber prinzipiell halt möglich.
Deine Korrekturdatei wird den kompletten Duden und mehr beinhalten müssen, da auch "falsch" s.o. unterschiedlich falsch sein kann ....
Willst du das wirklich ?

gruss
gero

OldSchool v1 Beispiel:
Hier ist so ein Fall: Heller oder Keller / laut oder kaut ? .... hier brauchst du KI.

Code: Select all

KOR := "Ber=Der`nHunt=Hund`nAplel=Apfel`nbällt=bellt`nretrun=return`nHeller=Keller`nkaut=laut"
OCRTEXT := "Ber Hunt bällt kaut im Heller."
MsgBox,4096,Info,% OCRTEXT
StringSplit,a,KOR,`n
Loop,% a0
	{
	StringSplit,b,a%A_Index%,=
	StringReplace,b2,b2,`r,,
	StringReplace,OCRTEXT,OCRTEXT,%b1%,%b2%,all
	}
MsgBox,4096,Info,% OCRTEXT
edit / ... gibt noch viele andere Möglichkeiten nicht zum Ziel zu kommen ... ;)

Re: Text Ersetzen in ausgewählten Dateien

Post by MichaelPundt » 15 Feb 2024, 08:25

Danke für die Info "just me". Der Text liegt tatsächlich als *.txt vor. Allerdings verstehe ich nicht, wie ich die Einlese- und Ersetzungsbefehle in das AHK Script schreiben muss? Kannst Du mir damit helfen?

Re: Text Ersetzen in ausgewählten Dateien

Post by just me » 15 Feb 2024, 08:05

Moin und Willkommen im Club,

grundsätzlich kannst Du Dein Vorhaben mit AHK umsetzen. Problemlos geht es, wenn die OCR-Datei im einfachen Textformat (.txt) vorliegt, wie z.B. mit Editor/Notepad erstellt.
Dann kannst Du sie einlesen (FileRead oder FileOpen()), mit Anweisungen wie StrReplace() oder RegExReplace() die Ersetzungen ausführen und den geänderten Inhalt dann zurückschreiben. Bei anderen Dateiformaten wird es zumindest komplizierter.

Text Ersetzen in ausgewählten Dateien

Post by MichaelPundt » 15 Feb 2024, 06:07

Ich benutze bereits ein Autohotkey Skript, um systemweit Rechtschreibfehler per Autokorrektur zu korrigieren. Es funktioniert prima und sieht im Prinzip so aus.

Code: Select all

#IfWinNotActive ahk_exe WINWORD.EXE
::Biespiel::Beispiel
#IfWinActive
Nun würde ich gerne mit Autohotkey Fehler in einer bereits fertigen Textdatei korrigieren. (Es handelt sich um die fehlerhafte OCR-Erkennung einer Frakturschrift.)
Dazu habe ich bereits nach obigem Beispiel eine Liste von Fehlern und Korrekturen erstellt. Hier ein Auszug:

Code: Select all

::wveg::weg
::tratie::kratie
::?tein::stein
::Dom::Vom
:: lahr:: Jahr
Wie kann ich nun die Korrekturen anwenden? Und zwar ...
1. rückwirkend
2. nur in dieser Datei

Für Eure Hilfe wäre ich sehr dankbar.

Frischling Michael ;)

Top