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