Dieser Artikel erläutert, wie Sie die Effizienz durch die Verwendung von Ausschlussverarbeitungsschleifen in IQ Bot verbessern können.
Ausschluss ist eine Art Ersatz, daher ist die Idee im Grunde die gleiche, aber ich denke, dass der Ersatz in Bezug auf die Codierung wahrscheinlich etwas schwieriger ist, also habe ich ihn hier herausgeschnitten.
Im Fall der Verarbeitung des Ersatzes in einer Schleife ist die häufigste Begegnung die "Ausrichtung von Kana halber Breite". ABBYY, eine der in IQ Bot integrierten OCR-Engines, neigt dazu, Kana mit halber Breite etwas schwach zu lesen.
Wenn Sie nur die halbe Breite in voller Breite lesen möchten (oder umgekehrt), können Sie dies auf der RPA-Seite mit der japanischen Konvertierungsaktion für halbe Breite ⇔ volle Breite im Bot Store korrigieren, aber "ga" wird in "ka" geändert. Es gibt Fälle, in denen es wie "(ka + doppeltes Anführungszeichen)" gelesen wird, und ich denke, es ist schneller, dies mit Python zu tun, als es mit RPA richtig zu machen.
(Obwohl Sie Python mit RPA schreiben können)
Der Unterschied zwischen Ausschluss und Ersetzung ist in Bezug auf die Feldelementlogik wie folgt.
Unterschied zwischen Ausschluss und Ersatz
#Dies ist ausgeschlossen
field_value = field_value.replace("Zu ausschließende Zeichenfolge","")
#Dies ist der Ersatz
field_value = field_value.replace("Zeichenfolge vor dem Ersetzen","Zeichenkette nach dem Ersetzen")
Die grundlegende Grammatik ist "Ersetzen", und der Ausschluss wird realisiert, indem die "Zeichenfolge nach dem Ersetzen" durch "" "(= leere Zeichenfolge) ersetzt wird.
Im Falle eines Ausschlusses wurde die Zeichenfolge nach dem Ersetzen immer auf "" festgelegt, sodass die einzigen Elemente "auszuschließende Zeichenfolge" (= Zeichenfolge vor dem Ersetzen) waren. Die zu schleifende Sequenz stimmte also mit der Struktur des primären Arrays überein.
Auf der anderen Seite gibt es im Falle eines Austauschs mehrere vor und nach dem Austausch, so dass es notwendig ist, vor und nach dem Austausch in der Sequenz als Satz zu setzen. Die Struktur des sekundären Arrays.
Dies ist der UP-Punkt des Schwierigkeitsgrades.
Aber mach dir keine Sorgen. Ja ... Nein, ich werde es richtig erklären.
Der Austauschvorgang wird mit der folgenden Struktur abgeschlossen.
Konzept der Ersatzbearbeitung
replace_list = (("Zeichenfolge vor dem Ersetzen 1","Zeichenkette nach Ersetzung 1"),
("Zeichenfolge vor dem Ersetzen 2","Zeichenkette nach Ersetzung 2"),
("Zeichenfolge vor dem Ersetzen 3","Zeichenkette nach Ersetzung 3"))
for i in replace_list:
field_value = field_value.replace(i[0],i[1])
replace_list
hat ein Taple im Tapple, das heißt, es hat eine quadratische Array-Struktur.
Im "i" in der for-Schleife "(" Zeichenkette vor Ersetzung 1 "," Zeichenkette nach Ersetzung 1 ")" für die erste Verarbeitung, "(" "für die zweite Verarbeitung Das untergeordnete Taple wird als Zeichenfolge vor dem Ersetzen 2 "," Zeichenfolge nach dem Ersetzen 2 ")` eingegeben.
Der Mechanismus besteht darin, dass die Elemente des Index 0 ("i [0]" / vor dem Ersetzen) und 1 ("i [1]" / nach dem Ersetzen) aus dem "i" herausgenommen und an das Argument "ersetzen" übergeben werden. ..
Übrigens ist die im Beispiel am Anfang angegebene Korrekturlogik von Kana halber Breite ein solches Bild.
Austauschverfahren für Kana halber Breite
replace_list = (('Leistung"','Ga'),('Ki"','Gi'),('Ku"','Gu'),('Ke"','Ge'),('Ko"','Gehen'),
('Bedienung"','Das'),('Shi"','Das'),('Su"','Zu'),('Se"','Ze'),('Damit"','Zo'),
('Ta"','Da'),('Ji"','Di'),('Tsu"','Zu'),('Te"','De'),('Zu"','Machen'),
('C."','Ba'),('Hallo"','Bi'),('Fu"','Bu'),('F."','Sein'),('E."','Bo'),
('Ha °','Pa'),('Hi °','Pi'),('F °','Pu'),('F °','Sport'),('Ho °','Po'))
for i in replace_list:
field_value = field_value.replace(i[0],i[1])
Unter der Annahme, dass der Trübungspunkt als "" (doppeltes Anführungszeichen) und der Halbtrübungspunkt als "°" (Grad) gelesen wird, handelt es sich um einen Prozess der Ausrichtung auf Kana voller Breite.
In der Realität schwankt das Ablesen von trüben Punkten und halbtrüben Punkten oft etwas stärker.
Es ist effizient, diesen Prozess anzuwenden, nachdem die Leseergebnisse von Trübungspunkten und Halbtrübungspunkten durch normale Ersatzverarbeitung unter Berücksichtigung der OCR-Ergebnisse vereinheitlicht wurden.
Im Fall einer Tabelle können Sie den Inhalt der for-Schleife für die Tabelle ändern, sodass dies wie folgt funktionieren sollte.
Ersetzungsprozess (für Tabellen)
replace_list = (("Zeichenfolge vor dem Ersetzen 1","Zeichenkette nach Ersetzung 1"),
("Zeichenfolge vor dem Ersetzen 2","Zeichenkette nach Ersetzung 2"),
("Zeichenfolge vor dem Ersetzen 3","Zeichenkette nach Ersetzung 3"))
for i in replace_list:
df['Spaltenname'] = df['Spaltenname'].str.replace(i[0],i[1])
Aber das obige ist nicht sehr schön ... Bin ich der einzige, der sich fühlt?
Ich würde das tun.
Ersetzungsprozess (für Tabellen)
replace_list = (("Zeichenfolge vor dem Ersetzen 1","Zeichenkette nach Ersetzung 1"),
("Zeichenfolge vor dem Ersetzen 2","Zeichenkette nach Ersetzung 2"),
("Zeichenfolge vor dem Ersetzen 3","Zeichenkette nach Ersetzung 3"))
def table_replace(x,y):
for i in y:
x = x.y(i[0],i[1])
return x
df['Spaltenname'] = df['Spaltenname'].apply(table_replace,y=replace_list)
Wenn du das tust
--Wenn Sie dieselbe Kombination von zu ersetzenden Zeichenfolgen anwenden möchten, jedoch auf verschiedene Spalten --Wenn Sie die Kombination der Zeichenfolgen ändern möchten, die Sie je nach Spalte ersetzen möchten
Auf solche Fälle kann flexibel reagiert werden.
Ersetzungsprozess (für Tabellen)
replace_listA = (("Zeichenfolge vor dem Ersetzen 1","Zeichenkette nach Ersetzung 1"),
("Zeichenfolge vor dem Ersetzen 2","Zeichenkette nach Ersetzung 2"),
("Zeichenfolge vor dem Ersetzen 3","Zeichenkette nach Ersetzung 3"))
replace_listB = (("Zeichenfolge vor dem Ersetzen a","Zeichenfolge nach Ersetzung a"),
("Zeichenfolge vor dem Ersetzen b","Zeichenfolge nach Ersetzung b"),
("Zeichenfolge vor dem Ersetzen c","Zeichenfolge nach Ersetzung c"))
def table_replace(x,y):
for i in y:
x = x.y(i[0],i[1])
return x
df['Spaltenname 1'] = df['Spaltenname 1'].apply(table_replace,y=replace_listA)
df['Spaltenname 1'] = df['Spaltenname 1'].apply(table_replace,y=replace_listB)
df['Spaltenname 2'] = df['Spaltenname 2'].apply(table_replace,y=replace_listA)
df['Spaltenname 3'] = df['Spaltenname 3'].apply(table_replace,y=replace_listB)
Es ist der Punkt.
Wenden Sie sowohl die Ersetzungen "replace_listA" als auch "replace_listB" auf den Spaltennamen 1 an
Nur Ersetzen durch replace_listA
wird auf Spaltenname 2 angewendet
Dies ist ein Beispiel, in dem nur die Ersetzung durch "replace_listB" auf den Spaltennamen 3 angewendet wird.
Hmmm, war es nicht schwierig?
Wenn Sie Fragen haben, hinterlassen Sie bitte einen Kommentar zu diesem Artikel oder kontaktieren Sie uns über DM auf Twitter.
Recommended Posts