[PYTHON] IQ Bot Custom Logic: Korrektur verstümmelter Zeichen mit festen Mustern, Leerfüllung, Formatkonvertierung, Rauschausschluss (Ersatzverarbeitung)

Ich habe neulich in einem Artikel hier einen Überblick über die benutzerdefinierte Logik von IQ Bot gegeben.

Benutzerdefinierte Logik ist die Programmiersprache Python. Wenn Sie keine Programmierkenntnisse haben, können Sie diese nicht verwenden.

In diesem Artikel ist der Code selbst einfach, macht jedoch 80 bis 90% dessen aus, was tatsächlich im Geschäftsleben verwendet wird. Ich werde den Code und das Verwendungsbeispiel des "Ersetzungsprozesses" vorstellen.

Wie in [hier] eingeführt (https://qiita.com/IQBotter/items/67694b1b0d1376ede7e7) Die Denkweise unterscheidet sich geringfügig zwischen Feld- und Tabellenelementen, daher werde ich jedes einzelne vorstellen.

Ersetzungsprozess für Feldpositionen

Zunächst aus den Feldelementen, die grundlegender sind.

Die Ersetzungslogik ist sehr einfach, aber 80 bis 90% der tatsächlich im Geschäftsleben verwendeten benutzerdefinierten Logik ist diese.

Grundcode

Bearbeitung des Ersatzes für Feldpositionen


field_value = field_value.replace("Zeichenfolge vor dem Ersetzen","Zeichenkette nach dem Ersetzen")

Es ist möglich, mehrere Ersetzungsprozesse für denselben Artikel zu definieren, indem die Zeile wie unten gezeigt unterbrochen wird.

Mehrere Definitionen sind in Ordnung, wenn Sie die Linie brechen


field_value = field_value.replace("Zeichenfolge vor dem Ersetzen 1","Zeichenkette nach Ersetzung 1")
field_value = field_value.replace("Zeichenfolge vor dem Ersetzen 2","Zeichenkette nach Ersetzung 2")

Dies ist nur der Code, kann jedoch auf verschiedene Arten wie folgt angewendet werden.

Verschiedene Anwendungen der Ersatzverarbeitung

--Fülle die Lücken aus

Sie können die Lücken mit field_value.replace (" "," ") füllen.

Wenn IQ Bot einen Wert mit einem Zeilenumbruch liest, wird der Zeilenumbruch als Spezifikation in leer umgewandelt.

Sie können O mit field_value.replace (" O "," 0 ") in Null konvertieren.

Auf die gleiche Weise

Ersetzen Sie l (el), I (Auge) und | (Pipeline) durch 1 (ichi), Ersetzen Sie die Dornen durch Tokio, Ersetzen Sie beispielsweise das durch ▲ angegebene Minuszeichen durch ein Minuszeichen usw.

Sie können verschiedene Dinge tun.

Wenn Sie "6. April 2020" in ein Format wie "6. April 2020" ändern möchten, können Sie es ersetzen.

Beispiel für die Konvertierung des Datumsformats


field_value = field_value.replace("Jahr","/") 
field_value = field_value.replace("Mond","/") 
field_value = field_value.replace("Tag","") 

Bei der Verarbeitung von Formularen mit OCR werden Schmutz auf dem Papier und Markierungen von Personen mit einem Kugelschreiber usw. überprüft. Punkt, Komma, Doppelpunkt, Semikolon, Schrägstrich, Zitat, doppeltes Zitat usw. Es gibt viele Fälle, in denen es als Rauschen gelesen wird.

Wenn Sie ein solches Symbol nicht benötigen, können Sie `field_value.replace (" Rauschen, das Sie ausschließen möchten "," ")" verwenden, um Rauschen auszuschließen.

Die Zeichenfolge vor dem Ersetzen und die Zeichenfolge nach dem Ersetzen sind Es ist in Ordnung, wenn es entweder von einem doppelten Anführungszeichen (") oder einem einfachen Anführungszeichen (') umgeben ist.

Wenn das Rauschen, das Sie ausschließen möchten, ein doppeltes oder einfaches Anführungszeichen enthält, Sie können es wie folgt definieren.

Umgeben Sie mit einem Kontingent, das nicht das Rauschen ist, das Sie ausschließen möchten



#Wenn Sie ein einfaches Anführungszeichen ausschließen möchten, schließen Sie es in ein doppeltes Anführungszeichen ein
field_value = field_value.replace("'","") 

#Wenn Sie doppelte Anführungszeichen ausschließen möchten, fügen Sie diese in einfache Anführungszeichen ein
field_value = field_value.replace('"',"") 

Ersetzungsprozess für Tabellenelemente

Bei Tischartikeln ist es etwas anders, aber es ist immer noch einfach.

[Hier](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 Während des "Zaubercodes" erklärt in% 83% E3% 82% AF% E3% 81% AF% E3% 81% A9% E3% 81% 86% E6% 9B% B8% E3% 81% 8F) ・ ・

Schreiben Sie ↓ so.

Tabellenelemente ersetzen


df['Spaltenname'] = df['Spaltenname'].str.replace('Zeichenfolge vor dem Ersetzen', 'Zeichenkette nach dem Ersetzen')

Verwenden Sie für den Spaltennamen den hier definierten Spaltennamen ↓, wenn Sie das Formular mit IQ Bot so wie es ist einstellen.

Qiita用.jpg

Es funktioniert normalerweise auch mit japanischen Spaltennamen. Wenn der Spaltenname Leerzeichen enthält, ersetzen Sie die Leerzeichen durch ansco (_).

Wenn Sie beispielsweise die Einheit "Yen" aus den obigen Spalten "Betrag" und "Betrag einschließlich Steuern" ausschließen möchten, gehen Sie wie folgt vor.

Bearbeitung des Ersatzes für Feldpositionen


df['Geldbetrag'] = df['Geldbetrag'].str.replace('Kreis', '')
df['Geldbetrag_Steuern inklusive'] = df['Geldbetrag_Steuern inklusive'].str.replace('Kreis', '')

Zusammenfassung

Wie war es?

Die ordnungsgemäße Verwendung des Ersetzungsprozesses kann die Qualität Ihrer Eingabedaten auf einfache Weise verbessern und die Automatisierung vereinfachen. Probieren Sie es also aus!

Recommended Posts

IQ Bot Custom Logic: Korrektur verstümmelter Zeichen mit festen Mustern, Leerfüllung, Formatkonvertierung, Rauschausschluss (Ersatzverarbeitung)
IQ Bot Custom Logic: Festwertzuweisung
Zusammenfassung der benutzerdefinierten logikbezogenen Verarbeitung von IQ Bot