[PYTHON] Logique personnalisée IQ Bot: correction des caractères déformés avec des motifs fixes, remplissage de blanc, conversion de format, exclusion de bruit (traitement de remplacement)

J'ai présenté un aperçu de la logique personnalisée d'IQ Bot dans un article ici l'autre jour.

La logique personnalisée est le langage de programmation lui-même appelé Python, Si vous n'avez pas de connaissances en programmation, vous ne pouvez pas l'utiliser.

Dans cet article, le code lui-même est simple, mais il représente 80 à 90% de ce qui est réellement utilisé en entreprise. Je présenterai le code et l'exemple d'utilisation du processus de «remplacement».

Comme présenté dans ici La façon de penser est légèrement différente entre les éléments de champ et les éléments de tableau, je vais donc vous présenter chacun d'eux.

Processus de remplacement des articles sur le terrain

Tout d'abord, à partir des éléments de terrain qui sont plus basiques.

La logique de remplacement est très simple, mais 80 à 90% de la logique personnalisée réellement utilisée en entreprise est la suivante.

Code de base

Traitement du remplacement des articles sur le terrain


field_value = field_value.replace("Chaîne de caractères avant remplacement","Chaîne de caractères après remplacement")

Il est possible de définir plusieurs processus de remplacement pour le même article en coupant la ligne comme indiqué ci-dessous.

Plusieurs définitions sont acceptées si vous coupez la ligne


field_value = field_value.replace("Chaîne de caractères avant remplacement 1","Chaîne de caractères après remplacement 1")
field_value = field_value.replace("Chaîne de caractères avant remplacement 2","Chaîne de caractères après remplacement 2")

Ce n'est que le code, mais il peut être appliqué de différentes manières comme suit.

Diverses utilisations du traitement de remplacement

--Remplir les espaces vides

Vous pouvez remplir les espaces avec field_value.replace (" "," ").

En passant, lorsque IQ Bot lit une valeur avec un saut de ligne, la partie de saut de ligne est convertie en blanc en tant que spécification.

--Convertir les caractères lus comme "O" en zéro (correction des caractères déformés avec des motifs fixes)

Vous pouvez convertir O en zéro avec field_value.replace (" O "," 0 ").

De la même manière

Remplacer l (el), I (eye) et | (pipeline) par 1 (ichi), Remplacez les épines par Tokyo, Par exemple, remplacez le signe moins indiqué par ▲ par un signe moins, etc.

Vous pouvez faire différentes choses.

Si vous souhaitez remplacer «6 avril 2020» par un format tel que «6 avril 2020», vous pouvez le remplacer.

Exemple de conversion de format de date


field_value = field_value.replace("Année","/") 
field_value = field_value.replace("Mois","/") 
field_value = field_value.replace("journée","") 

--Exclusion du bruit

Lors du traitement de formulaires avec OCR, de la saleté sur le papier et des marques vérifiées par des personnes avec un stylo à bille, etc. Point, virgule, deux-points, point-virgule, barre oblique, citation, guillemet double, etc. Il existe de nombreux cas où il est lu comme du bruit.

Si vous n'avez pas besoin d'un tel symbole, vous pouvez utiliser field_value.replace (" noise you want to exclude "," ") pour exclure le bruit.

La chaîne de caractères avant le remplacement et la chaîne de caractères après le remplacement sont Ce n'est pas grave s'il est entouré de guillemets doubles (") ou simples (').

Si le bruit que vous souhaitez exclure contient une citation double ou simple, Vous pouvez le définir comme suit.

Entourez-vous d'un quota qui n'est pas le bruit que vous souhaitez exclure



#Si vous souhaitez exclure une citation simple, placez-la entre guillemets doubles
field_value = field_value.replace("'","") 

#Si vous souhaitez exclure les guillemets doubles, mettez-les entre guillemets simples
field_value = field_value.replace('"',"") 

Processus de remplacement des articles de table

Pour les articles de table, c'est un peu différent, mais c'est toujours facile.

[Ici](https://qiita.com/IQBotter/items/67694b1b0d1376ede7e7#%E3%83%86%E3%83%BC%E3%83%96%E3%83%AB%E9%A0%85%E7 % 9B% AE% E3% 81% AE% E3% 82% AB% E3% 82% B9% E3% 82% BF% E3% 83% A0% E3% 83% AD% E3% 82% B8% E3% 83 Pendant le "code magique" expliqué en% 83% E3% 82% AF% E3% 81% AF% E3% 81% A9% E3% 81% 86% E6% 9B% B8% E3% 81% 8F) ・ ・

Écrivez ↓ comme ça.

Remplacement des éléments de table


df['Nom de colonne'] = df['Nom de colonne'].str.replace('Chaîne de caractères avant remplacement', 'Chaîne de caractères après remplacement')

Pour le nom de la colonne, utilisez le nom de la colonne ici ↓ défini lors de la configuration du formulaire avec IQ Bot tel quel.

Qiita用.jpg

Cela fonctionne normalement même avec les noms de colonnes japonais, Si le nom de la colonne contient des espaces, remplacez les espaces par ansco (_).

Par exemple, si vous souhaitez exclure l'unité «yen» des colonnes «montant» et «montant TTC» ci-dessus, procédez comme suit.

Traitement du remplacement des articles sur le terrain


df['Somme d'argent'] = df['Somme d'argent'].str.replace('Cercle', '')
df['Somme d'argent_taxe inclu'] = df['Somme d'argent_taxe inclu'].str.replace('Cercle', '')

Résumé

Comment était-ce?

Une bonne utilisation du processus de remplacement peut facilement améliorer la qualité de vos données d'entrée et faciliter l'automatisation, alors essayez-le!

Recommended Posts

Logique personnalisée IQ Bot: correction des caractères déformés avec des motifs fixes, remplissage de blanc, conversion de format, exclusion de bruit (traitement de remplacement)
Logique personnalisée IQ Bot: attribution de valeur fixe
Résumé du traitement lié à la logique personnalisée IQ Bot