Konvertieren Sie von Katakana zu Vokal Kana [Python]

Überblick

Ich habe eine Funktion erstellt, die einen Vokal zurückgibt, wenn eine Katakana-Zeichenkette eingegeben wird, z. B. "Konichiha-> Onia".

Konvertierungsregeln

Belassen Sie "n" und "tsu" wie sie sind (Beispiel: Runpapa-> Unaa) Machen Sie "-" (langer Ton) genauso wie den vorherigen Vokal (Beispiel: cola-> ora) Wenn das unmittelbar vorhergehende Kana "to" oder "do" ist, wird "u" als ein Zeichen betrachtet und wie Großbuchstaben behandelt (Beispiel: Ducchi-> Uui, Uaa-> Uaa). "Ya", "e" und "yo" werden als ein Zeichen behandelt, wenn sich das unmittelbar vorhergehende Kana im i-dan befindet, und in anderen Fällen als ein Zeichen. (Beispiel: Catatsu-> Aau, Kee-> E) Wenn das unmittelbar vorhergehende Kana i-dan ist und wenn es "te" oder "de" ist, wird es als ein Kana angesehen, und in anderen Fällen wird es wie Großbuchstaben behandelt (Beispiel: tulle-> u, dewar-> uaa) ) Wenn das unmittelbar vorhergehende Kana U-dan ist, werden "ヮ", "a", "e" und "o" zusammen mit ihm als ein Kana betrachtet, und in anderen Fällen werden sie wie Großbuchstaben behandelt. (Beispiel: Way-> Aei) Wenn das unmittelbar vorhergehende Kana U-dan und "te" und "de" ist, wird "i" zusammen mit ihm als ein Kana angesehen, und in anderen Fällen wird es wie Großbuchstaben behandelt (Beispiel: Zitronentee-> eonii, yair-> Ja) Lass die Charaktere außer Katakana so wie sie sind.

Umgebung

Es wurde bestätigt, dass es unter Google Colaboratory (Stand 27. März 2020) und macOS Catalina, Python 3.8.0 ausgeführt werden kann.

Code

def kana2vowel(text):
    #Obere und untere Konvertierungsliste
    large_tone = {
        'EIN' :'EIN', 'ich' :'ich', 'C.' :'C.', 'D.' :'D.', 'Oh' :'Oh',
        'U.': 'C.', 'Vu': 'C.',
        'Leistung' :'EIN', 'Ki' :'ich', 'Ku' :'C.', 'Ke' :'D.', 'Ko' :'Oh',
        'Bedienung' :'EIN', 'Shi' :'ich', 'Su' :'C.', 'Se' :'D.', 'Damit' :'Oh',
        'Ta' :'EIN', 'Ji' :'ich', 'Tsu' :'C.', 'Te' :'D.', 'Zu' :'Oh',
        'N / a' :'EIN', 'D.' :'ich', 'Nu' :'C.', 'Ne' :'D.', 'Nein' :'Oh',
        'C.' :'EIN', 'Hallo' :'ich', 'Fu' :'C.', 'F.' :'D.', 'E.' :'Oh',
        'Ma' :'EIN', 'Mi.' :'ich', 'Mu' :'C.', 'Mich' :'D.', 'Mo.' :'Oh',
        'Ja' :'EIN', 'Yu' :'C.', 'Yo' :'Oh',
        'La' :'EIN', 'Li' :'ich', 'Le' :'C.', 'Les' :'D.', 'B.' :'Oh',
        'Beeindruckend' :'EIN', 'Wo' :'Oh', 'Nieder' :'Nieder', 'Vu' :'C.',
        'Ga' :'EIN', 'Gi' :'ich', 'Gu' :'C.', 'Ge' :'D.', 'Gehen' :'Oh',
        'Das' :'EIN', 'Das' :'ich', 'Zu' :'C.', 'Ze' :'D.', 'Zo' :'Oh',
        'Da' :'EIN', 'Di' :'ich', 'Zu' :'C.', 'De' :'D.', 'Machen' :'Oh',
        'Ba' :'EIN', 'Bi' :'ich', 'Bu' :'C.', 'Sein' :'D.', 'Bo' :'Oh',
        'Pa' :'EIN', 'Pi' :'ich', 'Pu' :'C.', 'Sport' :'D.', 'Po' :'Oh'
    }

    #Zu/Machen+'U.'Zu c
    for k in 'Machen':
        while k+'U.' in text:
            text = text.replace(k+'U.','C.')
    #Te/De+ich/ich/In c konvertieren
    for k in 'Tedde':
        for k2,v in zip('Ju','Iu'):
            while k+k2 in text:
                text = text.replace(k+k2,v)

    #Konvertieren Sie Großbuchstaben und u in Vokale
    text = list(text)
    for i, v in enumerate(text):
        if v in large_tone:
            text[i] = large_tone[v]
    text = ''.join(text)

    #Konvertiere Wu in Wu
    while 'Wu' in text:
        text = text.replace('Wu','U.')

    #C.+ヮ/EIN/ich/E./Konvertiere o in Vokal
    for k,v in zip('ヮ yeo','Aieo'):
        text = text.replace('C.'+k,v)
    
    #E./Gut/In gut konvertieren
    for k in 'Ja':
        while k+'- -' in text:
            text = text.replace(k+'- -',k+'ich')

    #ich/ich+Turbolader/Yu/E./Wandle dich in einen Vokal um
    for k,v in zip('Byeyo','Aueo'):
        text = text.replace('ich'+k, v).replace('ich'+k, v)
    
    #Konvertieren Sie den verbleibenden Kleinbuchstaben in einen Vokal
    for k,v in zip('Eyayo','Aiaioauo'):
        text = text.replace(k,v)
    
    #-Konvertieren (langer Ton) in Vokal
    for k in 'a-I-U-E-O':
        while k+'- -' in text:
            text = text.replace(k+'- -',k+k)
    
    return text

Recommended Posts

Konvertieren Sie von Katakana zu Vokal Kana [Python]
In Python von Markdown in HTML konvertieren
Änderungen von Python 3.0 zu Python 3.5
Änderungen von Python 2 zu Python 3.0
Konvertiere Kanji in Kana
[Python] Konvertieren von DICOM in PNG oder CSV
[Python] Datum in Zeichenfolge konvertieren
Post von Python nach Slack
[Python] Liste in Pandas konvertieren [Pandas]
Flirte von PHP nach Python
Konvertieren Sie das Scratch-Projekt in Python
[Python] Konvertieren Sie Shift_JIS in UTF-8
Wechseln Sie von Python2.7 zu Python3.6 (centos7)
Stellen Sie von Python aus eine Verbindung zu SQLite her
Konvertieren Sie Python 3.x-Code in Python 2.x.
Konvertieren Sie mit Python für .NET von Pandas DataFrame in System.Data.DataTable
Konvertieren Sie Markdown in Python in PDF
[Lambda] [Python] Von Lambda auf Twitter posten!
Workflow zum Konvertieren der Formel (Bild) in Python
Konvertieren Sie die Liste mit Python in DataFrame
Python> Liste> Doppelte Liste in einfache Liste konvertieren
Konvertierung von pdf nach txt 2 [pyocr]
Stellen Sie von Python aus eine Verbindung zur utf8mb4-Datenbank her
Python (vom ersten Mal bis zur Ausführung)
Poste ein Bild von Python auf Tumblr
[Python] Konvertiert natürliche Zahlen in Ordnungszahlen
Konvertieren Sie die Dezimalzahl in n-ary [Python]
So greifen Sie über Python auf Wikipedia zu
Python, um von einer anderen Sprache zu wechseln
So konvertieren Sie von .mgz nach .nii.gz
Python> Tupel> Konvertiert doppeltes Tupel in einzelnes Tupel
Hat sich nicht von Python 2 auf 3 geändert
Aktualisieren Sie Mac Python von 2 auf 3
[Python] Konvertieren von NIFITI in PNG (COVID-19 [neues Corona-Virus] CT-Beispiel)
[Python] So konvertieren Sie eine Datenbankdatei in CSV
[Python] Fluidsimulation: Von linear zu nichtlinear
Von Python bis zur Verwendung von MeCab (und CaboCha)
Konvertieren Sie Memos sofort mit Python 2to3
Konvertieren Sie Python> Zwei-Wert-Sequenz in Wörterbuch
[Python] So konvertieren Sie eine zweidimensionale Liste in eine eindimensionale Liste
So aktualisieren Sie Google Sheets von Python
[Python] Konvertieren Sie CSV-Dateibegrenzer in Tabulatortrennzeichen
Konvertieren Sie mit pdfplumber von PDF in CSV
Konvertieren Sie die psd-Datei in Python in png
Konvertieren Sie Excel-Daten mit Python in JSON
Konvertiere Hiragana mit Python (Beta) in Romaji
Ich möchte ein Glas aus Python verwenden
Push-Benachrichtigung vom Python-Server an Android
Herstellen einer Verbindung von Python zu MySQL unter CentOS 6.4
Python> Tupel in Liste konvertieren> aList = Liste (pi_tuple)
Portieren und Ändern des Doublet-Solvers von Python2 auf Python3.
Zugriff auf RDS von Lambda (Python)
Konvertieren Sie den Python-Datumstyp in das RFC822-Format
Python> Ausgaben von 1 bis 100, 501 bis 600> Für CSV
Konvertieren Sie chinesische Zahlen mit Python in arabische Zahlen
[Amazon Linux] Wechsel von der Python 2-Serie zur Python 3-Serie
API-Erklärung zum Berühren von Mastodon aus Python