synOCR synOCR - GUI für OCRmyPDF

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.438
Punkte für Reaktionen
1.258
Punkte
234
Vielen Dank für deinen Input. (y)
Ich würde gerne mal auf Rückmeldung von @Gthorsten warten, weil der gesamte Pythoncode aus seiner Feder stammt. Er wird es dann sicherlich so umsetzen, dass er das Problem langfristig abdeckt. Im Sommer ist er immer stark beschäftigt, aber die Tage werden ja schon kürzer 🤪
 

DeeKay1

Benutzer
Mitglied seit
20. Jun 2020
Beiträge
99
Punkte für Reaktionen
21
Punkte
14
Jep, macht natürlich Sinn.

@Gthorsten: Mein fix basiert schon auf dem aktuellsten Repo-Stand. Mir ist gerade aufgefallen, dass du letztes Jahr im Oktober schon den regex für regex_long_date und regex_short_date geändert hast. Diese Änderung ging zwar nie in ein Release, behebt aber an sich schon 2 meiner 3 weiter oben gemeldeten Datum-Fehlerkennungen. Mein PR (bzw. die Idee dahinter) fixt dann noch die fehlende Nummer 3.
 

DeeKay1

Benutzer
Mitglied seit
20. Jun 2020
Beiträge
99
Punkte für Reaktionen
21
Punkte
14
@Gthorsten: Sorry, ich schon wieder. Keine Ahnung ob das schon auf dem Radar ist, aber mit dem dataparser languages-Argument, könnte man dann auch die Parametrisierung der Datum-Werte angehen:
Python:
date_obj = dateparser.parse(regex_result.group(0), settings=settings_str, languages=['de'])
Bisher macht das Skript aus dem Regex-Ergebnis "3 Eur 93" bspw. noch ein valides Datum. Da kommt dann der aktuelle Zeitpunkt Minus ein paar Stunden raus.
Mit dem de-Languages-Argument weiß dataparser aber, dass "Eur" definitiv keine Monat ist und gibt aus der parse-Methode ein "none" raus. Ggf. könnte man die languages-Angabe ja über die bestehende synOCR-UI ja relativ einfach durch den User einstellbar machen.

EDIT: Sofern man das macht, könnte man auch wieder die Erkennung von DD.MM.YY mit aufnehmen, da über die Language-Angabe ja die "korrekte" schreibweise erkannt wird.
 

Scythefiend

Benutzer
Mitglied seit
01. Sep 2024
Beiträge
3
Punkte für Reaktionen
0
Punkte
1
Guten Morgen,

erstmals ein Riesen Lob.
Die Software ist echt super und ich habe dadurch meine persönliche Ablage endlich mal auf Vordermann gebracht.

Jetzt war ich ein bisschen am rumbasteln und bin auf ein Problem gestoßen, das sich einfach nicht lösen lassen will.

Ich versuche mittels Regex nach einem Ausdruck zu suchen - was auch klappt (Angebot ist in diesem Fall der Ausdruck) und danach nach einer Angebotsnummer. Das Problem ist bloß das er mir die Angebotsnummer nicht wiedergibt als Dateinamen.

Ich habe auch im Debug Modus die OCR und Log Datei mal angeschaut und glaube das Problem ist das
dass OCR anstatt eines ":" mal einen Stern oder mal ein Plus erkennt sowie x-mal ein Leerzeichen.
Ist es möglich das ich zwischen dem Wort und der Nummer sämtliche Whitespaces und sonstige Zeichen ignorieren kann bis die Nummer kommt.

Liebe Grüße und danke schon mal für die Mühe
 

Struppix

Benutzer
Mitglied seit
10. Apr 2009
Beiträge
874
Punkte für Reaktionen
176
Punkte
63
Hallo,
natürlich geht das, in verschiedenen Optionen.
Da aber die Frage nicht, naja nicht ganz eindeutig ist, versuche ich mal zu raten.

Zuallererst schalte doch mal im GUI den Schalter bei "Leerzeichen bereinigte Suche " ein. Damit dürfte, wenn sich nur mehrere Leerzeichen zwischen dem ersten Suchwort und der Nummer befinden, das Problem lösen lassen.
Wenn dort noch andere Wörter usw. stehen, könntest Du 2 Regeln nutzen,.
Oder viel eleganter geht es auch. Dazu gleich mehr, muss ich an meinen PC wechseln...
 

Struppix

Benutzer
Mitglied seit
10. Apr 2009
Beiträge
874
Punkte für Reaktionen
176
Punkte
63
So, besser als am Handy.

Versuche mal so:
Code:
rule_0001:
    tagname: Angebotsnummer_§tagname_RegEx
    tagname_RegEx: (?i)(?|(Angebot(\D*[N|n]um\S+|[\.\-\:\;\s]*Nr))\S*)\s+?\K(\S*\s*?(\d+\S*))+\b
    condition: all
    subrules:
    - searchstring: (?|(Angebot(\D*[N|n]um\S+|[\.\-\:\;\s]*Nr))\S*)\s+?\K(\S*\s*?(\d+\S*))+\b
      searchtyp: contains
      isRegEx: true

Wenn das nicht klappt, dann poste doch mal Deine Regel.

Karsten
 

Scythefiend

Benutzer
Mitglied seit
01. Sep 2024
Beiträge
3
Punkte für Reaktionen
0
Punkte
1
Huhu,

man bist du schnell ich hab gar nicht mit ner Antwort heute gerechnet :)
Hab einfach mal meinen Code hingeschrieben, aber werde zuerst mal deinen probieren :)

Update: dein Code hat leider nicht geklappt aber ich hab meinen etwas überarbeitet und nun klappt es.

das einzige Peoblem ist nur noch das er mir die angebotsnummer 2x in der Benennung einfügt, weil es 2x im Text vorkommt.

hätte da jemand noch einen kleinen Tipp?

liebe Geüße Marcel

Code:
rule_001:
    tagname: §tagname_RegEx
    tagname_RegEx: \b(ANGEBOT)\b.\b(Nr)\W*\s(\d{6})
    condition: all
    multilineregex: true
    subrules:
    - searchstring: \b(ANGEBOT)\b.\b(Nr)\W*\s(\d{6})
      searchtyp: contains
      isRegEx: true
      multilineregex: true
      source: content
      casesensitive: true
    - searchstring: (\d{6})
      searchtyp: contains
      isRegEx: true
      multilineregex: true
      source: content
      casesensitive: false
 
Zuletzt bearbeitet:

Struppix

Benutzer
Mitglied seit
10. Apr 2009
Beiträge
874
Punkte für Reaktionen
176
Punkte
63
Hey Marcel,
lade mir bitte mal ein Beispiel Dokument hoch (in meiner Signatur), dann schaue ich nachher mal.

Karsten
 

Gthorsten

Benutzer
Mitglied seit
22. Mai 2021
Beiträge
146
Punkte für Reaktionen
41
Punkte
28
Hallo @DeeKay1 ,
Irhendwie ist mein login nicht ok gewesen.
Habe länger keine Benachrichtigung mehr bekommen, und da ich auf der Arbeit Land unter war, habe ich auch im forum nicht gelesen. 🙈.
Sind die Probleme die du gemeldet hattest schon gefixed?
Sonst schaue ich mir das ganze mal sn
Gruß
Thorsten
 


 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat 

 
 
  AdBlocker gefunden!

Du bist nicht hier, um Support für Adblocker zu erhalten. Dein Adblocker funktioniert bereits ;-)

Klar machen Adblocker einen guten Job, aber sie blockieren auch nützliche Funktionen.

Das Forum wird mit hohem technischen, zeitlichen und finanziellen Aufwand kostenfrei zur Verfügung gestellt. Wir zeigen keine offensive Werbung und bemühen uns um eine dezente Integration.

Bitte unterstütze dieses Forum, in dem du deinen Adblocker für diese Seite deaktivierst.

Du kannst uns auch über unseren Kaffeautomat einen Kaffe ausgeben oder ein PUR Abo abschließen und das Forum so werbefrei nutzen.

Vielen Dank für Deine Unterstützung!