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.
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
Les API utilisées dans chaque section sont les suivantes --Post Analyzed pdf: Analyze Form
Win10 Enterprise, Python 3.8.5, IDE est facultatif
(* 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)
Stocker les données d'entraînement pour la création de modèle dans le blob Azure: placez au moins 5 fichiers (facture_1 ~ 5.pdf dans ce cas) sous la forme suivante (xx.json est un fichier créé plus tard, alors ignorez-le ici)
Paramètres de l'outil d'étiquette (balisage):
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
--Placer le fichier de formulaire à analyser dans sourceDir --Exécuter fr.py
――C'est un format de fichier du formulaire à former et à analyser, mais je n'ai essayé que le PDF
Recommended Posts