[PYTHON] Traitement par lots des formulaires avec Azure Form Recognizer

Il existe un service appelé Azure Form Recognizer. https://azure.microsoft.com/ja-jp/services/cognitive-services/form-recognizer/

C'est un excellent qui lit bien le formulaire et extrait les données cibles. Puisqu'il existe également une API, j'ai écrit un script Python qui peut traiter plusieurs formulaires à la fois https://github.com/yosukearaiMS13/formrecognizerbatch/blob/master/fy.py

Le contenu du script et son utilisation sont expliqués ci-dessous.

Contenu du script

Le script est réalisé en étendant l'exemple dans le document https://docs.microsoft.com/ja-jp/azure/cognitive-services/form-recognizer/quickstarts/python-labeled-data?tabs=v2-0

Le script se compose de 4 sections https://github.com/yosukearaiMS13/formrecognizerbatch/blob/master/fy.py

fr.py



# Configurations:Divers paramètres de réglage

#Section pdf de la cible de l'analyse post-analyse
##Publier toutes les données à analyser dans le module de reconnaissance de formulaire

# Get analyze results section
##Obtenez le résultat de l'analyse (y compris les données extraites) des données publiées précédemment.

#Section de sortie CSV du résultat de l'extraction
##Le résultat de l'extraction est sorti. Supprimez les espaces blancs supplémentaires et remplacez les valeurs extraites non fiables
##(S'il est inférieur au seuil, la valeur extraite n'est pas adoptée et la fiabilité est utilisée à la place.[]Sortie en boite)
##Fait

La section Obtenir les résultats d'analyse et la sortie csv des résultats d'extraction analyse le json renvoyé par le programme de reconnaissance de formulaire. Cliquez ici pour le format json https://github.com/Azure-Samples/cognitive-services-REST-api-samples/blob/master/curl/form-recognizer/Invoice_1.pdf.ocr.json

Le format du csv de sortie est le suivant. --Première colonne: nom du fichier de formulaire à analyser --Deuxième et colonnes suivantes: toutes les étiquettes (balises) définies dans le modèle d'analyse et les valeurs extraites correspondantes csv.png

Les API utilisées dans chaque section sont les suivantes --Post Analyzed pdf: Analyze Form

Comment utiliser le script

1. Environnement

Win10 Enterprise, Python 3.8.5, IDE est facultatif

2. Préparation de l'extraction des données

(* Du travail préalable à la préparation de l'extraction de données 1, cet article Qiita est également utile.)

--Préparation d'extraction de données 1 (mise en œuvre uniquement pour la première fois)

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.Non adopté si la fiabilité est inférieure à cette valeur

--endpoint: point de terminaison Form Recognizer --apim_key: clé de reconnaissance de formulaire 1 ou 2![Image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/327770/21e50af5-135e-a847-6040 -233601fdfbbf.png) --sourceDir: Décrivez l'emplacement du fichier de formulaire à analyser avec le chemin complet --confidence_setting: Définit une valeur de 0 à 1 (* En tant que spécification de script, si la fiabilité est inférieure ou égale à cette valeur, la valeur extraite n'est pas adoptée, et à la place la valeur d'évaluation de fiabilité est sortie dans []. Est)

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.Non adopté si la fiabilité est inférieure à cette valeur

--Model_id: Définissez l'ID de modèle obtenu ci-dessus

3. Extraction de données

--Placer le fichier de formulaire à analyser dans sourceDir --Exécuter fr.py

4. Contraintes, etc.

――C'est un format de fichier du formulaire à former et à analyser, mais je n'ai essayé que le PDF

Recommended Posts

Traitement par lots des formulaires avec Azure Form Recognizer
Traitement d'image avec MyHDL
Traitement des ensembles de données avec des pandas (1)
Traitement des ensembles de données avec des pandas (2)
Traitement d'image avec Python
Traitement parallèle avec multitraitement
Traitement d'image avec PIL