synOCR synOCR - GUI für OCRmyPDF

Yippie

Benutzer
Mitglied seit
01. Feb 2011
Beiträge
643
Punkte für Reaktionen
54
Punkte
54
Eine Frage nochmals zu den YAML-Regeln. Sind dort in den subrules auch AND/OR Bedingungen möglich, aktuell glaube ich dies zwar nicht, aber vllt. wäre dies ein Feature Request.

YAML:
    subrules:
    - searchstring: "Versicherungsnummer"
      searchtyp: is
      isRegEx: false
      source: content
      casesensitive: true
[B]      condition: or[/B]
    - searchstring: "Lebensversicherung"
      searchtyp: is
      isRegEx: false
      source: content
      casesensitive: true
[B]      condition: and[/B]
    - searchstring: "LV-1111-2222-3333"
      searchtyp: is
      isRegEx: false
      source: content
      casesensitive: true

Gut, fehlen noch die Klammern aber ich denke, man kann erkennen worauf ich raus will:
Entweder soll im Text (Versicherungsnummer oder Lebensversicherung ) stehen in jedem Fall jedoch "LV-1111-2222-3333".

Michael
 
  • Like
Reaktionen: Gthorsten

Gthorsten

Benutzer
Mitglied seit
22. Mai 2021
Beiträge
151
Punkte für Reaktionen
42
Punkte
28
Das kannst du ja ein wenig mit contains oder contains not simulieren.
Hatte Stephan das aber auch schon einmal vorgeschlagen.
 

Yippie

Benutzer
Mitglied seit
01. Feb 2011
Beiträge
643
Punkte für Reaktionen
54
Punkte
54
Hm, das glaube ich jetzt nicht ganz, dass man das so hinbekommt, aber, ich habe bemerkt, dass man durchaus mehrere subrules innerhalb einer Rule definieren kann, analog:
YAML:
LV_1:
    tagname: "§yocr4-§mocr-§docr Lebensversicherung"
    tagname_RegEx:
    targetfolder: "/Lebensversicherung/"
    condition: any
    subrules:
    - searchstring: "Versicherungsnummer"
      searchtyp: is
      isRegEx: false
      source: content
      casesensitive: true
    - searchstring: "LV-1111-2222-3333"
      searchtyp: is
      isRegEx: false
      source: content
      casesensitive: true
    subrules:
    - searchstring: "Lebensversicherung"
      searchtyp: is
      isRegEx: false
      source: content
      casesensitive: true
    - searchstring: "LV-1111-2222-3333"
      searchtyp: is
      isRegEx: false
      source: content
      casesensitive: true

Und damit habe ich faktisch meine AND-Bedingung ;)

Was mich noch beschäftigt ist, dass ich folgenden Tagnamen definiert habe.
YAML:
LV_1:
    tagname: "§yocr4-§mocr-§docr Lebensversicherung"
Funktioniert wie in der Regel LV_1 definiert auch super, allerdings wird dabei nicht eines der Daten im erkannten Text des PDFs genutzt, sondern das Erstelldatum der Datei. Hängt dies mit dieser Einstellung zusammen, vermutet ich:
1656790377476.png
Denn das Datum, welches ich erwartet hätten, steht ab Seite 2 im Kopf des Dokuments.
 
  • Like
Reaktionen: Gthorsten

Yippie

Benutzer
Mitglied seit
01. Feb 2011
Beiträge
643
Punkte für Reaktionen
54
Punkte
54
Antworte mir Mal selbst :)
Hängt dies mit dieser Einstellung zusammen, vermutet ich:
Anhang anzeigen 72564
Denn das Datum, welches ich erwartet hätten, steht ab Seite 2 im Kopf des Dokuments.
Ja, ist so. Nachdem ich dies auf alle Seiten abgeändert habe, bekomme ich nun das korrekte Datum.

Danke an alle, die bisher mitgelesen und Tipps gegeben haben! Insbesondere an diejenigen natürlich die sich um die Wartung und Programmierung des tollen Tools kümmern. Mittlerweile nutze ich es immer mehr (y)
 
  • Like
Reaktionen: Gthorsten

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.550
Punkte für Reaktionen
1.380
Punkte
234
… ich habe bemerkt, dass man durchaus mehrere subrules innerhalb einer Rule definieren kann, analog:
Mehrere Subruleblöcke habe ich noch gar nicht probiert 🤷‍♂️ :ROFLMAO:
So war das zwar nicht vorgesehen, aber um so besser, wenn es funktioniert.
 
  • Like
Reaktionen: Gthorsten und Yippie

Yippie

Benutzer
Mitglied seit
01. Feb 2011
Beiträge
643
Punkte für Reaktionen
54
Punkte
54
Siehste, das ist Schwarmintelligenz 😁

Vielleicht war's aber auch nur unverschämtes Glück? Ne, glaube ich jetzt tatsächlich nicht, denn wenn ich die zweite subrule nicht reingeschreiben hätte, dann ist laut Log, diese Regel erst gar nicht zur Anwendung gekommen...

Passt, Deckel drauf!
 

bastigogo

Benutzer
Mitglied seit
05. Jul 2022
Beiträge
10
Punkte für Reaktionen
1
Punkte
1
Hi,
ich wollte mal fragen wie ihr es mit dem Thema Sicherheit haltet?
Immerhin räume ich dem Tool root Rechte ein, wenn ich das richtig sehe?
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.550
Punkte für Reaktionen
1.380
Punkte
234
Herzlich willkommen @bastigogo hier im Forum 🙋‍♂️

Deine Frage ist völlig berechtigt. Jeder Software muss man ein gewisses Maß an Vertrauen entgegenbringen.
Hier ein paar Überlegungen:
  1. Das SPK gibt es seit dem Januar 2019.
  2. Hier gibt es den Quellcode: LINK.
  3. Du kannst das SPK selbst entpacken und den Inhalt checken.
  4. Die SPKs unter DSM7 laufen unter ihrem eigenen Benutzer. Es ist unumgänglich, synOCR zusätzliche Rechte einzuräumen, um Dateien anderer Benutzer verändern zu können.
  5. Docker braucht Root-Rechte. Ich wünschte, man könnte es ohne den Kniff mit dem Aufgabenplaner realisieren.
 

Jaroslaw

Benutzer
Mitglied seit
13. Jan 2014
Beiträge
7
Punkte für Reaktionen
0
Punkte
1
Hallöchen.
Hätte jemand generell mal einen Screenshot oder eine Regeldatei für eine umfangreiche Tagliste, um den Bedarf aus dem Alltag abzubilden?
Mir fällt es etwas schwer etwas gescheites zu erstellen.

Viele Grüße,
Jaroslaw
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.550
Punkte für Reaktionen
1.380
Punkte
234
Kennst du das Wiki?
Fange mit einer einfachen Regel an und arbeite dich dann zu den nächsten vor. Die Komplexität kannst du später steigern.

Mache dir ein Konzept:
  • Welche Stichwörter sollen gefunden werden?
  • Welche Tags sollen zugeordnet werden?
  • Welche Struktur soll das Zielverzeichnis abbilden?
  • Gibt es komplexere Regeln mit Bedingungen? Formuliere sie zunächst schriftlich.
Wir helfen dir dann gerne gemeinsam weiter.
 

dsmax

Benutzer
Mitglied seit
27. Dez 2010
Beiträge
54
Punkte für Reaktionen
2
Punkte
8
Hallo zusammen,
ich nutze jetzt schon einige Zeit das "synOCR" Paket. Jetzt würde ich gerne das Ganze etwas mehr automatisieren und z. B.
meine Gehaltsabrechnungen direkt in den richtigen Ordner verschieben. Leider bekomm ich das nicht hin. Hab mir zwar
das Wiki angeschaut, aber irgendetwas mach ich wahrscheinlich falsch.

Eingesetzt wird eine DS720+, DSM 7.1-42661 Update 1, synOCR Version 1.2.0.10

Folgende Regel soll zum Einsatz kommen:


gehaltsunterlagen:
tagname: Gehalt
targetfolder: "/volume1/WebDAV/Archiv/Gehaltsunterlagen/TEST/"
condition: any
subrules:
- searchstring: "Gehaltsabrechnung"

im Log-File steht dann folgendes:

●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
● STEP 2 - SEARCH TAGS / RENAME / SORT: ●
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●


●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
CURRENT FILE: ➜ 06_2022 (orig.).pdf

-----------------------------------------------------------------------------------
| search tags in ocr text: |
-----------------------------------------------------------------------------------

source for tags is the list from the GUI
tag count: 1
Search by tag: "/volume1/WebDAV/Scanns/_INPUT/verarbeitungsregeln.txt" ➜ -
rename tag is: ""


-----------------------------------------------------------------------------------
| search for a valid date in ocr text: |
-----------------------------------------------------------------------------------

run RegEx date search - search for date format: 1 (1 = dd mm [yy]yy; 2 = [yy]yy mm dd; 3 = mm dd [yy]yy)
run RegEx date search - search for date format: 2 (1 = dd mm [yy]yy; 2 = [yy]yy mm dd; 3 = mm dd [yy]yy)
run RegEx date search - search for date format: 3 (1 = dd mm [yy]yy; 2 = [yy]yy mm dd; 3 = mm dd [yy]yy)
Date not found in OCR text - use file date:
day: 30
month:06
year: 2022

-----------------------------------------------------------------------------------
| rename and sort to target folder: |
-----------------------------------------------------------------------------------

➜ renaming:
apply renaming syntax ➜ 06_2022 (orig.)
➜ insert metadata (use python PyPDF2)
used metadata:
➜ '/Author': '',
➜ '/Keywords': ', ',
➜ '/CreationDate': 'D:20220630'
target file: 06_2022 (orig.).pdf

-----------------------------------------------------------------------------------
| adjusts the attributes of the target file: |
-----------------------------------------------------------------------------------

➜ Adapt file date (Source: Source file [OCR selected but not found])

-----------------------------------------------------------------------------------
| final tasks: |
-----------------------------------------------------------------------------------
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.550
Punkte für Reaktionen
1.380
Punkte
234
im Log-File steht dann folgendes:
  • Ist der Pfad zu deiner Regeldatei wirklich korrekt (Groß- und Kleinschreibung beachtet)?
  • Enthält deine Regeldatei die Zeile # synOCR_YAMLRULEFILE?
 

dsmax

Benutzer
Mitglied seit
27. Dez 2010
Beiträge
54
Punkte für Reaktionen
2
Punkte
8
Hallo Stephan,
vielen Dank für deine schnelle Antwort.
Ja, der Pfad ist korrekt (per "copy and paste" eingefügt) und nochmal ja, in der ersten Zeile steht der Ausdruck.
Lediglich den Ordner TEST gibt es nicht. Der sollte, soweit ich das gelesen habe, automatisch angelegt werden.
Ich habe mal die Datei beigefügt, wobei ich die Kommentare gelöscht habe.

Vielen Dank für deine Hilfe.
 

Anhänge

  • Verarbeitungsregeln.txt
    562 Bytes · Aufrufe: 6

gunfran

Benutzer
Mitglied seit
25. Nov 2014
Beiträge
31
Punkte für Reaktionen
17
Punkte
58
Das ist sicherlich bewusst ein extrem simples Beispiel, bietet vermutlich aber immerhin einen validen Begriff der gesucht werden sollte.

Ein Unterschied zu meinen Regeln ist mir aufgefallen. Ich habe nie "" um mein Targetfolder gebaut. Aber im Sample der Datei wird es so angegeben, weshalb ich auch nicht glauben würde es ist falsch.

Hier ein Beispiel für eine recht einfache Regeln bei mir.
YAML:
Rechnung_7:
    tagname: Rechnung
    targetfolder: Rechnung/§yocr4
    condition: any
    subrules:
    - searchstring: Rechnung
      searchtyp: is
      isRegEx: false
      source: content
      casesensitive: true

Bei mir ist der Targetfolder nicht beginnend mit / weil ich Relativ vom Standard-Pfad in den Settings ausgehe.
Ich wollte nur zeigen das bei mir keine "" um den targetfolder sind.

Vielleicht probierst du das einfach mal.
Du lässt die Einstellung searchtyp, source etc. weg, aber dafür sollten dann ja die Default-Werte genommen werden.
 
  • Like
Reaktionen: dsmax

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.550
Punkte für Reaktionen
1.380
Punkte
234
Das Problem sind nicht die Regeln, sondern dass die Regeldatei nicht also solche erkannt wird. In dem GUI-Feld darf NUR der Pfad zur Regeldatei enthalten sein, wenn man eine externe Regeldatei nutzen möchte. Es wird dahingehend geprüft, ob der Inhalt des GUI-Feldes ein gültiger Pfad ist. Wenn nicht, dann wird der Inhalt als Suchkriterium gewertet.
Derzeit wird nach dem Begriff: "/volume1/WebDAV/Scanns/_INPUT/verarbeitungsregeln.txt" gesucht.

Bitte prüfe noch einmal, ob vielleicht ein Leerzeichen davor oder danach im GUI-Feld enthalten ist. Auch mal bitte ohne Anführungszeichen probieren.
 

dsmax

Benutzer
Mitglied seit
27. Dez 2010
Beiträge
54
Punkte für Reaktionen
2
Punkte
8
Hallo zusammen,
habe jetzt die Regeldatei von gunfran genommen und entsprechend angepasst. Die Regel wird erkannt, auch der Pfad wird angegeben,
aber die Datei bleibt im Output-Verzeichnis und wird nicht ins Zielverzeichnis verschoben. Hier nochmal die Log-Datei:

Danke für eure Mühe.
 

Anhänge

  • synOCR_2022-07-11_18-07-45.txt
    10,4 KB · Aufrufe: 5

dsmax

Benutzer
Mitglied seit
27. Dez 2010
Beiträge
54
Punkte für Reaktionen
2
Punkte
8
Hallo Stephan,
genau das hat noch gefehlt.

Vielen Dank für eure Hilfe!
 
  • Like
Reaktionen: geimist


 

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