Korrigieren Sie Schwankungen der Notation in halber und voller Breite in Python

Zweck dieses Artikels

Erstellen Sie eine Funktion zum einfachen Korrigieren von Notationsschwankungen in halber und voller Breite.

Vorbereitung

Bereiten Sie die Zeichen vor und nach der Konvertierung vor.

abc_half = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
abc_full = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"

digit_half = "0123456789"
digit_full = "0123456789"

katakana_half = "Es tut mir leid, es tut mir leid, es tut mir leid, es tut mir leid, es tut mir leid, es tut mir leid."
katakana_full = "Aiueokakikukekosashisusesotachitsutetonaninunenohahifuhehomamimu memoyayuyorarirurerowon"

punc_half = "!\#$%&\()*+,-./:;<=>?@[\\]^_`{|}~"
punc_full = "!#$%&\()*+,-./:;<=>?@[\\]^_`{|}~"

Da der Burst-Sound von Katakana mit halber Breite ein Zeichen mit zwei Zeichen ausdrückt, erstellen Sie eine Konvertierungstabelle getrennt von den anderen.


tmp01 = "Würgen, quetschen, quetschen, quetschen, quetschen, quetschen"
tmp02 = "Gagigugegozajizuzezodajizudedobababibbebopapipupepo"

transtable02 = {}
for i in range(len(tmp02)):
    be = tmp01[i*2:i*2+2]
    af = tmp02[i]
    transtable02[be] = af

In der Funktion "clean_text" erstellt "transtable01 = str.maketrans (before, after)" eine Konvertierungstabelle und wendet sie mit "text = text.translate (transtable01)" an.


def clean_text(text):
    text = str(text).replace("\u3000", " ") #Raum voller Breite bis halbe Breite

    before = abc_full + digit_full + katakana_half + punc_full
    after = abc_half + digit_half + katakana_full + punc_half

    transtable01 = str.maketrans(before, after)
    text = text.translate(transtable01)
    text = text.translate(transtable02)

    return text

Wie benutzt man


text = "Memo Nara Rirure, -. / :; qr gag zaji sezodaji"
clean_text(text)

>>>Memo Yayuyora Rirure+,-./:qr Gegozajizuzezodaji

das ist alles!

Nachwort

Ich denke, dass es auf Japanisch andere Notationsschwankungen gibt, wie das Senden von Kana- und Kanji-Zahlen. Ich denke, es wäre schön, wenn ich mehr hinzufügen könnte.

Referenz

[Volle Breite ⇔ halbe Breite] Empfohlene Bibliothek zum Anpassen japanischer Notationsschwankungen mit Python [Python] Erstellen Sie eine Liste verschiedener Zeichentypen

Recommended Posts

Korrigieren Sie Schwankungen der Notation in halber und voller Breite in Python
Verarbeitung von CSV-Daten in voller und halber Breite in Python
Klassennotation in Python
Konvertieren Sie die CIDR-Notation in Python
Stapel und Warteschlange in Python
Unittest und CI in Python
Unterschied zwischen list () und [] in Python
Unterschied zwischen == und ist in Python
Inklusive Notation im Argument der Python-Funktion
Bearbeiten Sie Dateien und Ordner in Python
Zuweisungen und Änderungen in Python-Objekten
Überprüfen und verschieben Sie das Verzeichnis in Python
Verschlüsselung mit Python: IND-CCA2 und RSA-OAEP
Hashing von Daten in R und Python
Funktionssynthese und Anwendung in Python
Exportieren und Ausgeben von Dateien in Python
Reverse Flat Pseudonym und Katakana in Python2.7
Lesen und Schreiben von Text in Python
[GUI in Python] PyQt5-Menü und Symbolleiste-
Erstellen und lesen Sie Messagepacks in Python
Überlappende reguläre Ausdrücke in Python und Java
Anzeigen von LaTeX-Notationsformeln in Python, matplotlib
Unterschied in der Authentizität zwischen Python und JavaScript
Hinweise zur Verwendung von cChardet und python3-chardet in Python 3.3.1.
Module und Pakete in Python sind "Namespaces"
Vermeiden Sie verschachtelte Schleifen in PHP und Python
Unterschiede zwischen Ruby und Python im Umfang
AM-Modulation und Demodulation mit Python Part 2
Unterschied zwischen Anweisungen (Anweisungen) und Ausdrücken (Ausdrücken) in Python
Echte Werte und Eigenvektoren: Lineare Algebra in Python <7>
So schreiben Sie den richtigen Shebang in Perl-, Python- und Ruby-Skripten
Warteschlangen- und Python-Implementierungsmodul "deque"
Gefaltetes Liniendiagramm und Skalierungslinie in Python
Implementieren Sie den FIR-Filter in Python und C.
Unterschiede zwischen Python- und Java-Syntax
Überprüfen und empfangen Sie die serielle Schnittstelle in Python (Portprüfung)
Suchen und spielen Sie YouTube-Videos mit Python
Unterschied zwischen Anhängen und + = in der Python-Liste
Unterschied zwischen nicht lokal und global in Python
Schreiben Sie die O_SYNC-Datei in C und Python
So setzen Sie in Python ein Leerzeichen mit halber Breite vor Buchstaben und Zahlen.
Umgang mit "Jahren und Monaten" in Python
Lesen und schreiben Sie JSON-Dateien mit Python
Zeichnen Sie Daten einfach in Shell und Python
Private Methoden und Felder in Python [Verschlüsselung]
Suchen und überprüfen Sie die inverse Matrix in Python
Lineare Unabhängigkeit und Basis: Lineare Algebra in Python <6>
Rufen Sie sudo in Python auf und füllen Sie das Passwort automatisch aus
Unterschiede in der Multithread-Verarbeitung zwischen Python und Jython
Modulimport und Ausnahmebehandlung in Python
Verwendung ist und == in Python
Projekt Euler # 1 "Vielfaches von 3 und 5" in Python
[Python] Eine Funktion, die die Breite ausrichtet, indem ein Leerzeichen in Text eingefügt wird, das eine Mischung aus voller und halber Breite ist
Organisieren Sie Python-Module und -Pakete in einem Chaos
Genau korrekte Android-Uhr mit ADB und Python
So generieren Sie eine Sequenz in Python und C ++
Python-Variablen und Datentypen, die mit Chemoinfomatik gelernt wurden
Empfangen und Anzeigen von HTML-Formulardaten in Python
Primzahlaufzählung und Primzahlbeurteilung in Python
[Python] Vertauschen von Zeilen und Spalten mit Numpy-Daten
Unterschied zwischen Variablen und Selbst. Variablen in der [Python] -Klasse