Es gibt einen Dienst namens Azure Form Recognition. https://azure.microsoft.com/ja-jp/services/cognitive-services/form-recognizer/
Es ist ein ausgezeichnetes, das das Formular gut liest und die Zieldaten extrahiert. Da es auch eine API gibt, habe ich ein Python-Skript geschrieben, das mehrere Formulare gleichzeitig verarbeiten kann https://github.com/yosukearaiMS13/formrecognizerbatch/blob/master/fy.py
Der Inhalt des Skripts und seine Verwendung werden unten erläutert.
Das Skript wird erstellt, indem das Beispiel im Dokument erweitert wird https://docs.microsoft.com/ja-jp/azure/cognitive-services/form-recognizer/quickstarts/python-labeled-data?tabs=v2-0
Das Skript besteht aus 4 Abschnitten https://github.com/yosukearaiMS13/formrecognizerbatch/blob/master/fy.py
fr.py
# Configurations:Verschiedene Einstellparameter
#Post-Analyse-Ziel-PDF-Abschnitt
##Veröffentlichen Sie alle zu analysierenden Daten im Formularerkenner
# Get analyze results section
##Rufen Sie das Analyseergebnis (einschließlich der extrahierten Daten) der zuvor veröffentlichten Daten ab.
#CSV-Ausgabeabschnitt des Extraktionsergebnisses
##Das Extraktionsergebnis wird ausgegeben. Entfernen Sie zusätzlichen Leerraum und ersetzen Sie unzuverlässige extrahierte Werte
##(Wenn es unter dem Schwellenwert liegt, wird der extrahierte Wert nicht übernommen und stattdessen die Zuverlässigkeit verwendet.[]Ausgabe in Box)
##Macht gerade
Der Abschnitt Get-Analyseergebnisse und CSV-Ausgabe der Extraktionsergebnisse analysiert den vom Formularerkenner zurückgegebenen JSON. Klicken Sie hier für das JSON-Format https://github.com/Azure-Samples/cognitive-services-REST-api-samples/blob/master/curl/form-recognizer/Invoice_1.pdf.ocr.json
Das Format der Ausgabe-CSV ist wie folgt.
Die in den einzelnen Abschnitten verwendeten APIs lauten wie folgt --Postanalysiertes PDF: Formular analysieren
Win10 Enterprise, Python 3.8.5, IDE ist optional
(* Von der erforderlichen Arbeit bis zur Vorbereitung der Datenextraktion 1 ist dieser Qiita-Artikel ebenfalls hilfreich.)
Vorbereitung der Datenextraktion 1 (nur zum ersten Mal implementiert)
Speichern Sie Trainingsdaten für die Modellerstellung im Azure-Blob: Platzieren Sie mindestens 5 Dateien (in diesem Fall Rechnung_1 ~ 5.pdf) in der folgenden Form (xx.json ist eine später erstellte Datei, ignorieren Sie sie daher hier).
Einstellungen des Etikettenwerkzeugs (Tagging):
fr.py
## Configurations
endpoint = r"https://xxxxx.cognitiveservices.azure.com/"
apim_key = "xxxxx"
model_id = "xxxxx"
sourceDir = r"C:\xxxxx\*"
confidence_setting = 0.9 # 0~1.Wird nicht übernommen, wenn die Zuverlässigkeit unter diesem Wert liegt
--endpoint: Formularerkennungsendpunkt --apim_key: Formularerkennungsschlüssel 1 oder 2![Image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/327770/21e50af5-135e-a847-6040 -233601fdfbbf.png) --sourceDir: Beschreiben Sie den Speicherort der zu analysierenden Formulardatei mit dem vollständigen Pfad --confidence_setting: Setzen Sie einen Wert von 0 bis 1 (* Wenn die Zuverlässigkeit als Skriptspezifikation kleiner oder gleich diesem Wert ist, wird der extrahierte Wert nicht übernommen, sondern der Zuverlässigkeitsbewertungswert wird in [] ausgegeben. Ist)
fr.py
## Configurations
endpoint = r"https://xxxxx.cognitiveservices.azure.com/"
apim_key = "xxxxx"
model_id = "xxxxx"
sourceDir = r"C:\xxxxx\*"
confidence_setting = 0.9 # 0~1.Wird nicht übernommen, wenn die Zuverlässigkeit unter diesem Wert liegt
--Model_id: Legen Sie die oben erhaltene Modell-ID fest
――Es ist ein Dateiformat des zu trainierenden und zu analysierenden Formulars, aber ich habe nur PDF ausprobiert