Vous êtes sur la page 1sur 14

# Import des bibliothèques :

from paddleocr import PaddleOCR,draw_ocr


import cv2
from matplotlib import pyplot as plt
from PIL import Image, ImageDraw, ImageFont

# Définir le chemin de votre image :


img_path = "Photo\WhatsApp_Image_1.jpg"
img_path = "ppocr_img\ppocr_img\imgs\11.jpg"

ocr = PaddleOCR(use_angle_cls=True, lang="en",rec=False) # utiliser la langue


anglaise
image = Image.open(img_path)

# charger l’image
# img = cv2.cvtColor(img_path, cv2.COLOR_BGR2RGB)
img = cv2.imread(image,-1)

# afficher l’image
plt.show(image)

-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
--------------------------------------------------

Voici mon code :


# Import des bibliothèques :
from paddleocr import PaddleOCR,draw_ocr
import cv2
from matplotlib import pyplot as plt
from PIL import Image, ImageDraw, ImageFont

# Définir le chemin de votre image :


img_path = "Photo\WhatsApp_Image_1.jpg"

# Initialiser l'OCR avec PaddleOCR :


ocr = PaddleOCR(use_angle_cls=True, lang='en')

# Lire et afficher l'image avec OpenCV :


img = cv2.imread(img_path,-1) # Bech njareb 0 et 1 (cv2.IMREAD_UNCHANGED == -1 , 1
== Tasswira twali RJB )
cv2.imshow("Image", img)
cv2.waitKey(0)
cv2.destroyAllWindows()

# Appliquer l'OCR sur l'image :


result = ocr.ocr(img, cls=True)

A propos "result = ocr.ocr(img, cls=True)" l'entrée du "ocr" , quel est la


condition de l'entrée de l'ocr , qu'elle est la format de l'image , est ce en pixel
ou nn ?

-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
--------------------------------------------------
1- Kamel tfarej fl video , w chouf tal9achi video e5er :

2- Finalment , lCode lezmou ykoun Bien notée :

3- 7awel tfhem chnowa T4 GPU :


- Certains frameworks et bibliothèques, y compris PaddlePaddle (utilisé par
Paddle OCR), sont optimisés pour fonctionner de manière efficace sur des
architectures GPU.
- Le code peut être écrit de manière à tirer parti des fonctionnalités
spécifiques des GPU, ce qui peut entraîner une amélioration des performances
lorsque le code est exécuté sur un GPU par rapport à un CPU.
- Il est possible que certaines dépendances requises par Paddle OCR soient
mieux prises en charge sur les GPU que sur les CPU. Par exemple, certaines
bibliothèques peuvent utiliser des instructions spécifiques au matériel
présentes sur les GPU.
- Selon une comparaison de performance entre PaddleOCR et Tesseract (un autre
outil OCR populaire), PaddleOCR est légèrement plus lent que Tesseract sur les CPU,
mais avec le support GPU, il bat Tesseract de 46% sur un GPU standard.

4- 7awel tfhem chnowa Paddel OCR techniquement :

- PaddleOCR utilise des modèles de deep learning plus avancés et plus


efficaces que Pytesseract et EasyOCR, qui sont basés sur des méthodes plus
classiques ou plus simples. Par exemple, PaddleOCR utilise des modèles tels
que DBNet, CRNN, SRN, etc., qui peuvent mieux traiter les textes de différentes
tailles, formes, orientations, langues et styles.

- PaddleOCR supporte plus de 80 langues, ce qui est plus que Pytesseract


(plus de 100) et EasyOCR (plus de 70). PaddleOCR peut également reconnaître les
textes verticaux, les textes courbes, les textes de faible qualité, etc., ce qui
est plus difficile pour Pytesseract et EasyOCR.

- Le paramètre 'cls=True' indique que la fonction doit effectuer une


classification de l’angle du texte, c’est-à-dire qu’elle doit détecter si le texte
est orienté horizontalement ou verticalement, et le redresser si nécessaire.

- 'draw_ocr' qui est une fonction utilitaire définie dans le module


paddleocr. Cette fonction prend en entrée une image, une liste de boîtes
englobantes et un chemin vers un fichier de police de caractères. Elle renvoie une
image modifiée où les boîtes englobantes sont dessinées sur le texte, et le texte
est affiché au-dessus des boîtes avec la police spécifiée.

- Le paramètre font_path='path/to/a/truetype/font/file.ttf' permet de choisir


la police de caractères à utiliser pour afficher le texte. Il faut indiquer le
chemin complet vers un fichier de type TrueType Font (TTF) qui contient les
caractères de la langue du texte. Si ce paramètre n’est pas spécifié, la fonction
utilisera une police par défaut qui peut ne pas être adaptée à la langue du
texte.

- Les étapes internes de PaddleOCR sont les suivantes :


1 Prétraitement de l'image : PaddleOCR applique des techniques de
prétraitement telles que le redimensionnement, la normalisation, la conversion en
niveaux de gris, etc., pour améliorer la qualité de l'image et la rendre plus
adaptée à la reconnaissance.
2 Détection du texte : PaddleOCR utilise un modèle de détection du texte pour
localiser les zones de texte dans l'image et les extraire sous forme de régions
d'intérêt (ROI). Le modèle de détection du texte peut être choisi parmi
plusieurs options, telles que DBNet, EAST, SAST, etc.
3 Classification de la direction : PaddleOCR utilise un modèle de
classification de la direction pour déterminer l'orientation du texte dans les ROI
et les faire pivoter si nécessaire. Le modèle de classification de la
direction peut distinguer quatre orientations : 0°, 90°, 180° et 270°.
4 Reconnaissance du texte : PaddleOCR utilise un modèle de reconnaissance du
texte pour transcrire le texte dans les ROI en séquences de caractères. Le modèle
de reconnaissance du texte peut être choisi parmi plusieurs options, telles
que CRNN, STAR-Net, RARE, SRN, etc.
5 Post-traitement du texte : PaddleOCR applique des techniques de post-
traitement telles que la correction orthographique, la segmentation des mots, la
normalisation des caractères, etc., pour améliorer la qualité et la co

hérence du texte reconnu.

-------------

7awel T5dem chwaya 3ala traitement d'image :

7awel T5dem chwaya 3ala traitement de mots (exempe na3mel lowercase ll klem
lkool) ... :

7awel t5dem 3ala tssawer l m3awja w ela lma9louba :

7awel t5dem 3ala aka Doc w tffaser fih Kol chay :

7awel Ta3mel creation de API :

-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
--------------------------------------------------

VD YT en arabe : https://www.youtube.com/watch?v=I0pO2ES-
wMg&list=TLPQMjIxMTIwMjMDnklAHTyIhw&index=2 => paddleocr | OCR ‫شرح عربي‬
:
https://github.com/AhmedIbrahimai/paddleocr-/blob/main/PaddleOCRDemo.ipynb

: https://www.youtube.com/watch?
v=4gTfwprg2Ng&list=TLPQMjIxMTIwMjMDnklAHTyIhw&index=3 => trOCR | computer vision
‫( شرح عربي‬lmochkla eli fih houa enou tasswira lezmk t9assemha)

-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
--------------------------------------------------

VD API OCR PYTHON : https://www.youtube.com/results?


search_query=API+OCR+PYTHON+&sp=EgQIBRAB
: https://www.youtube.com/results?
search_query=API+OCR+PYTHON+&sp=EgQIBRAB

-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
--------------------------------------------------

Pouvez vous m'expliquer cette points : j'ai executée mon code (Paddle OCR) pour
extractée les données d'une image avec google collabe (Type d'execution CPU) il n'a
pas marchée et il affiche une eurreur , Cepandant j'ai executée le même code dans
google collabe avec (Type d'execution T4 GPU) il a marchée et il est perfermant ?

-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
--------------------------------------------------

Je veut comprendre pour quoi PaddleOCR est plus perfermant que Pytesseract et Easy
OCR.
Je veut connaitre des detailles technique sur PaddleOCR et quel est les etapes
internes de ce PaddleOcr ?

https://stackoverflow.com/questions/68005555/how-does-paddleocr-performance-
compare-to-tesseract#:~:text=PaddleOCR%20is%20slightly%20slower%20than%20Tesseract
%20on%20CPUs%2C,symbols.%20However%2C%20these%20errors%20can%20be%20easily
%20corrected.

-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
--------------------------------------------------

Hetha zeydd 3ale5er : !git clone https://github.com/PaddlePaddle/PaddleOCR

-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
--------------------------------------------------

Il s'agit d'une facture d’électricité et d’eau.

# Parcours des mots extraits :


for word in extracted_words:

if 'PO Box' in word :


PO_Box = word.split(':')[1].strip()

elif 'Premise Number' in word :


Premise_Number = word.split(':')[1].strip()

elif 'Premise Type' in word :


Premise_Type = word.split(':')[1].strip()

elif 'Invoice:' in word :


Invoice = word.split(':')[1].strip()

elif 'Issue Date' in word :


Issue_Date = word.split(':')[1].strip()

elif 'Month' in word :


Month = word.split(':')[1].strip()

elif 'Period' in word:


Period = word.split(':')[1].strip()

elif 'DEWA VAT No' in word:


DEWA_VAT_No = word.split(':')[1].strip()

elif 'Business Partner' in word:


Name_index = extracted_words.index(word)
Name = extracted_words[Name_index + 7]
Var_1 = extracted_words[Name_index + 8]
Var_2 = extracted_words[Name_index + 11]
Var_3 = extracted_words[Name_index + 12]

# Affichage des variables extraites :


print("Invoice :", Invoice)
print("Issue_Date :", Issue_Date)
print("Month :", Month)
print("Period :", Period)
print("DEWA_VAT_No :", DEWA_VAT_No)
print()
print("Name :", Name)
print("Var_1 :", Var_1)
print("Var_2 :", Var_2)
print("Var_3 :", Var_3)
print("Premise_Number :", Premise_Number)
print("Premise_Type :", Premise_Type)
print("PO_Box :", PO_Box)

-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
--------------------------------------------------

Detect Text in Images with Python - pytesseract vs. easyocr vs keras_ocr :


https://www.youtube.com/watch?v=oyqNdcbKhew

-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
--------------------------------------------------

Passport :

for word in extracted_words:


if 'Names' in word :
Names_index = extracted_words.index(word)
Names = extracted_words[Names_index + 1]
elif 'Passport No' in word:
Passport_No_index = extracted_words.index(word)
Passport_No = extracted_words[Passport_No_index + 3]
elif 'Nationality' in word:
Nationality_index = extracted_words.index(word)
Nationality = extracted_words[Nationality_index + 1]
elif 'Date of Birth' in word:
Date_of_Birth_index = extracted_words.index(word)
Date_of_Birth = extracted_words[Date_of_Birth_index + 2]
elif 'Place of Birth' in word or 'Place of Birh' in word:
Place_of_Birth_index = extracted_words.index(word)
Place_of_Birth = extracted_words[Place_of_Birth_index + 1]

# Affichage des variables extraites :


print("Names :", Names)
print("Passport_No :", Passport_No)
print("Nationality :", Nationality)
print("Date_of_Birth :", Date_of_Birth)
print("Place_of_Birth :", Place_of_Birth)

-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
--------------------------------------------------

Il s'agit d'une carte d’identité nationale.

for word in extracted_words:

if 'ID Number' in word :


ID_Number_index = extracted_words.index(word)
ID_Number = extracted_words[ID_Number_index + 1]

elif 'Name:' in word:


Name_Identity_Card = word.split(':')[1].strip()

elif 'Issuing Date' in word:


Issuing_Date_index = extracted_words.index(word)
Issuing_Date = extracted_words[Issuing_Date_index + 1]

elif 'Date of Birth' in word:


Date_of_Birth_index = extracted_words.index(word)
Date_of_Birth_Identity_Card = extracted_words[Date_of_Birth_index - 1]

# Affichage des variables extraites :


print("ID Number :", ID_Number)
print("Name :", Name_Identity_Card)
print("Date of Birth :", Date_of_Birth_Identity_Card)
print("Issuing Date :", Issuing_Date)

-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
--------------------------------------------------

for word in extracted_words:

if 'Mobile number' in word :


Mobile_number_index = extracted_words.index(word)
Mobile_number = extracted_words[Mobile_number_index + 1]
Account_ID = extracted_words[Mobile_number_index + 4]
Bill_issue_date = extracted_words[Mobile_number_index + 3]
Bill_period = extracted_words[Mobile_number_index + 7]
Bill_number = extracted_words[Mobile_number_index + 9]
# Affichage des variables extraites :
print("Mobile number :", Mobile_number)
print("Account ID :", Account_ID)
print("Bill issue date :", Bill_issue_date)
print("Bill period :", Bill_period)
print("Bill number :", Bill_number)

-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
--------------------------------------------------

Voici mon code sur google collabe :

# Initialisation de PaddleOCR :
from paddleocr import PaddleOCR, draw_ocr
ocr = PaddleOCR(use_angle_cls=True, lang='en')

# Import des bibliothèques :


import cv2
import matplotlib.pyplot as plt
import numpy as np
from google.colab.patches import cv2_imshow
from PIL import Image

# Chargement d'une image :


image_path = '/content/Contract_Tel.jpg'
img = cv2.imread(image_path)

# Détection du texte :
result = ocr.ocr(img, cls=True)[0] # On suppose qu'il y a une seule image dans le
lot.

# Extraction des boîtes englobantes pour l'image courante :


boxes = [line[0] for line in result]

# Dessin des boîtes englobantes sur l'image :


image_with_boxes = draw_ocr(img, boxes,
font_path='path/to/a/truetype/font/file.ttf')

# Affichage du résultat :
plt.imshow(cv2.cvtColor(image_with_boxes, cv2.COLOR_BGR2RGB))
plt.axis('off')
plt.show()

# Effectue la reconnaissance optique de caractères (OCR) sur l'image et affiche le


résultat par ligne :
result = ocr.ocr(image_path, cls=True)
for line in result:
print(line)

# Initialisation d'une liste pour stocker les mots extraits :


extracted_words = []

# Parcours des lignes détectées dans le résultat :


for line in result:
# Parcours des éléments de chaque ligne (coordonnées et mot) :
for box, (word, confidence) in line:
# Ajout du mot à la liste :
extracted_words.append(word)

# Affichage des mots extraits :


print(extracted_words)

# Vérifiez les conditions pour déterminer le type de document :


document_type = None

for word in extracted_words:


if 'Passport' in word or 'Passport No' in word:
document_type = "Il s'agit d'un passeport."
break
elif 'etisalat' in word or 'www.etisalat.ae/' in word:
document_type = "Il s'agit d'un contrat de téléphone."
break
elif 'Green Bill' in word or 'Dubai Electricity & Water Authority' in word:
document_type = "Il s'agit d'une facture d’électricité et d’eau."
break
elif 'Resident identity card' in word or 'Resident Identity Card' in word or
'Card Number/' in word:
document_type = "Il s'agit d'une carte d’identité nationale."
break

# Si le type de document n'a pas été déterminé :


if document_type is None:
document_type = "Type indéfini"

# Affichage du type de document :


print(document_type)

if document_type == "Type indéfini":


print("Il n'existe pas d'information à retourner, veuillez vérifier le type de
document.")

elif document_type == "Il s'agit d'une carte d’identité nationale.":


for word in extracted_words:

if 'ID Number' in word :


ID_Number_index = extracted_words.index(word)
ID_Number = extracted_words[ID_Number_index + 1]

elif 'Name:' in word:


Name_Identity_Card = word.split(':')[1].strip()

elif 'Issuing Date' in word:


Issuing_Date_index = extracted_words.index(word)
Issuing_Date = extracted_words[Issuing_Date_index + 1]

elif 'Date of Birth' in word:


Date_of_Birth_index = extracted_words.index(word)
Date_of_Birth_Identity_Card = extracted_words[Date_of_Birth_index - 1]

# Affichage des variables extraites :


print("ID Number :", ID_Number)
print("Name :", Name_Identity_Card)
print("Date of Birth :", Date_of_Birth_Identity_Card)
print("Issuing Date :", Issuing_Date)

elif document_type == "Il s'agit d'un contrat de téléphone.":


for word in extracted_words:

if 'Mobile number' in word :


Mobile_number_index = extracted_words.index(word)
Mobile_number = extracted_words[Mobile_number_index + 1]
Account_ID = extracted_words[Mobile_number_index + 4]
Bill_issue_date = extracted_words[Mobile_number_index + 3]
Bill_period = extracted_words[Mobile_number_index + 7]
Bill_number = extracted_words[Mobile_number_index + 9]

# Affichage des variables extraites :


print("Mobile number :", Mobile_number)
print("Account ID :", Account_ID)
print("Bill issue date :", Bill_issue_date)
print("Bill period :", Bill_period)
print("Bill number :", Bill_number)

elif document_type == "Il s'agit d'un passeport.":


for word in extracted_words:
if 'Names' in word :
Names_index = extracted_words.index(word)
Names = extracted_words[Names_index + 1]
elif 'Passport No' in word:
Passport_No_index = extracted_words.index(word)
Passport_No = extracted_words[Passport_No_index + 3]
elif 'Nationality' in word:
Nationality_index = extracted_words.index(word)
Nationality = extracted_words[Nationality_index + 1]
elif 'Date of Birth' in word:
Date_of_Birth_index = extracted_words.index(word)
Date_of_Birth = extracted_words[Date_of_Birth_index + 2]
elif 'Place of Birth' in word or 'Place of Birh' in word:
Place_of_Birth_index = extracted_words.index(word)
Place_of_Birth = extracted_words[Place_of_Birth_index + 1]

# Affichage des variables extraites :


print("Names :", Names)
print("Passport_No :", Passport_No)
print("Nationality :", Nationality)
print("Date_of_Birth :", Date_of_Birth)
print("Place_of_Birth :", Place_of_Birth)

elif document_type == "Il s'agit d'une facture d’électricité et d’eau.":


for word in extracted_words:

if 'PO Box' in word :


PO_Box = word.split(':')[1].strip()

elif 'Premise Number' in word :


Premise_Number = word.split(':')[1].strip()

elif 'Premise Type' in word :


Premise_Type = word.split(':')[1].strip()

elif 'Invoice:' in word :


Invoice = word.split(':')[1].strip()
elif 'Issue Date' in word :
Issue_Date = word.split(':')[1].strip()

elif 'Month' in word :


Month = word.split(':')[1].strip()

elif 'Period' in word:


Period = word.split(':')[1].strip()

elif 'DEWA VAT No' in word:


DEWA_VAT_No = word.split(':')[1].strip()

elif 'Business Partner' in word:


Name_index = extracted_words.index(word)
Name = extracted_words[Name_index + 7]
Var_1 = extracted_words[Name_index + 8]
Var_2 = extracted_words[Name_index + 11]
Var_3 = extracted_words[Name_index + 12]

# Affichage des variables extraites :


print("Invoice :", Invoice)
print("Issue_Date :", Issue_Date)
print("Month :", Month)
print("Period :", Period)
print("DEWA_VAT_No :", DEWA_VAT_No)
print()
print("Name :", Name)
print("Var_1 :", Var_1)
print("Var_2 :", Var_2)
print("Var_3 :", Var_3)
print("Premise_Number :", Premise_Number)
print("Premise_Type :", Premise_Type)
print("PO_Box :", PO_Box)

Je veut optimisée ce code et le rendre plus avancées et plus presentable ?


Pouvez vous m'aider ?

-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
--------------------------------------------------

Lcode l9dim :

# Vérifiez les conditions pour déterminer le type de document :


document_type = None

for word in extracted_words:


if 'Passport' in word or 'Passport No' in word:
document_type = "Il s'agit d'un passeport."
break
elif 'etisalat' in word or 'www.etisalat.ae/' in word:
document_type = "Il s'agit d'un contrat de téléphone."
break
elif 'Green Bill' in word or 'Dubai Electricity & Water Authority' in word:
document_type = "Il s'agit d'une facture d’électricité et d’eau."
break
elif 'Resident identity card' in word or 'Resident Identity Card' in word or
'Card Number/' in word:
document_type = "Il s'agit d'une carte d’identité nationale."
break

# Si le type de document n'a pas été déterminé :


if document_type is None:
document_type = "Type indéfini"

# Affichage du type de document :


print(document_type)

-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
--------------------------------------------------

Lcode l9dim :

if document_type == "Type indéfini":


print("Il n'existe pas d'information à retourner, veuillez vérifier le type de
document.")

elif document_type == "Il s'agit d'une carte d’identité nationale.":


for word in extracted_words:

if 'ID Number' in word :


ID_Number_index = extracted_words.index(word)
ID_Number = extracted_words[ID_Number_index + 1]

elif 'Name:' in word:


Name_Identity_Card = word.split(':')[1].strip()

elif 'Issuing Date' in word:


Issuing_Date_index = extracted_words.index(word)
Issuing_Date = extracted_words[Issuing_Date_index + 1]

elif 'Date of Birth' in word:


Date_of_Birth_index = extracted_words.index(word)
Date_of_Birth_Identity_Card = extracted_words[Date_of_Birth_index - 1]

# Affichage des variables extraites :


print("ID Number :", ID_Number)
print("Name :", Name_Identity_Card)
print("Date of Birth :", Date_of_Birth_Identity_Card)
print("Issuing Date :", Issuing_Date)

elif document_type == "Il s'agit d'un contrat de téléphone.":


for word in extracted_words:

if 'Mobile number' in word :


Mobile_number_index = extracted_words.index(word)
Mobile_number = extracted_words[Mobile_number_index + 1]
Account_ID = extracted_words[Mobile_number_index + 4]
Bill_issue_date = extracted_words[Mobile_number_index + 3]
Bill_period = extracted_words[Mobile_number_index + 7]
Bill_number = extracted_words[Mobile_number_index + 9]

# Affichage des variables extraites :


print("Mobile number :", Mobile_number)
print("Account ID :", Account_ID)
print("Bill issue date :", Bill_issue_date)
print("Bill period :", Bill_period)
print("Bill number :", Bill_number)

elif document_type == "Il s'agit d'un passeport.":


for word in extracted_words:
if 'Names' in word :
Names_index = extracted_words.index(word)
Names = extracted_words[Names_index + 1]
elif 'Passport No' in word:
Passport_No_index = extracted_words.index(word)
Passport_No = extracted_words[Passport_No_index + 3]
elif 'Nationality' in word:
Nationality_index = extracted_words.index(word)
Nationality = extracted_words[Nationality_index + 1]
elif 'Date of Birth' in word:
Date_of_Birth_index = extracted_words.index(word)
Date_of_Birth = extracted_words[Date_of_Birth_index + 2]
elif 'Place of Birth' in word or 'Place of Birh' in word:
Place_of_Birth_index = extracted_words.index(word)
Place_of_Birth = extracted_words[Place_of_Birth_index + 1]

# Affichage des variables extraites :


print("Names :", Names)
print("Passport_No :", Passport_No)
print("Nationality :", Nationality)
print("Date_of_Birth :", Date_of_Birth)
print("Place_of_Birth :", Place_of_Birth)

elif document_type == "Il s'agit d'une facture d’électricité et d’eau.":


for word in extracted_words:

if 'PO Box' in word :


PO_Box = word.split(':')[1].strip()

elif 'Premise Number' in word :


Premise_Number = word.split(':')[1].strip()

elif 'Premise Type' in word :


Premise_Type = word.split(':')[1].strip()

elif 'Invoice:' in word :


Invoice = word.split(':')[1].strip()

elif 'Issue Date' in word :


Issue_Date = word.split(':')[1].strip()

elif 'Month' in word :


Month = word.split(':')[1].strip()

elif 'Period' in word:


Period = word.split(':')[1].strip()
elif 'DEWA VAT No' in word:
DEWA_VAT_No = word.split(':')[1].strip()

elif 'Business Partner' in word:


Name_index = extracted_words.index(word)
Name = extracted_words[Name_index + 7]
Var_1 = extracted_words[Name_index + 8]
Var_2 = extracted_words[Name_index + 11]
Var_3 = extracted_words[Name_index + 12]

# Affichage des variables extraites :


print("Invoice :", Invoice)
print("Issue_Date :", Issue_Date)
print("Month :", Month)
print("Period :", Period)
print("DEWA_VAT_No :", DEWA_VAT_No)
print()
print("Name :", Name)
print("Var_1 :", Var_1)
print("Var_2 :", Var_2)
print("Var_3 :", Var_3)
print("Premise_Number :", Premise_Number)
print("Premise_Type :", Premise_Type)
print("PO_Box :", PO_Box)

-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
--------------------------------------------------

-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
--------------------------------------------------

-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
--------------------------------------------------

-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
--------------------------------------------------
-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
--------------------------------------------------

-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
--------------------------------------------------

-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------
--------------------------------------------------

Vous aimerez peut-être aussi