J'ai créé une fonction qui renvoie une voyelle lorsqu'une chaîne de caractères katakana est entrée, telle que "Konichiha-> Onia".
Laissez "n" et "tsu" tels quels (Exemple: Runpapa-> Unaa) Rendre "-" (son long) identique à la voyelle précédente (exemple: cola-> ora) Si le kana immédiatement précédent est "to" ou "do", "u" est considéré comme un caractère et traité de la même manière que les majuscules (exemple: Ducchi-> Uui, Uaa-> Uaa) "Ya", "e" et "yo" sont traités comme un caractère lorsque le kana immédiatement précédent est dans le i-dan, et sont traités comme un caractère dans les autres cas. (Exemple: Catatsu-> Aau, Kee-> E) Si le kana immédiatement précédent est i-dan, et s'il est "te" ou "de", il est considéré comme un kana, et dans d'autres cas, il est traité de la même manière qu'un capital (par exemple tulle-> u, dewar-> ua ) Si le kana immédiatement précédent est U-dan, "ヮ", "a", "e" et "o" sont considérés comme un kana avec lui, et dans d'autres cas, ils sont traités de la même manière que les lettres majuscules. (Exemple: Way-> Aei) Si le kana immédiatement précédent est U-dan et "te" et "de", "i" est considéré comme un kana avec lui, et dans d'autres cas, il est traité de la même manière que les majuscules (exemple: thé au citron-> eonii, yair-> Ouais) Laissez les personnages autres que Katakana tels quels.
Il a été confirmé qu'il fonctionnait sur Google Colaboratory (à compter du 27 mars 2020) et macOS Catalina, Python 3.8.0.
def kana2vowel(text):
#Liste de conversion supérieure et inférieure
large_tone = {
'UNE' :'UNE', 'je' :'je', 'C' :'C', 'ré' :'ré', 'Oh' :'Oh',
'U': 'C', 'Vu': 'C',
'Puissance' :'UNE', 'Ki' :'je', 'Ku' :'C', 'Ke' :'ré', 'Ko' :'Oh',
'Un service' :'UNE', 'Shi' :'je', 'Su' :'C', 'Se' :'ré', 'Alors' :'Oh',
'Ta' :'UNE', 'Ji' :'je', 'Tsu' :'C', 'Te' :'ré', 'À' :'Oh',
'N / a' :'UNE', 'ré' :'je', 'Nu' :'C', 'Ne' :'ré', 'Non' :'Oh',
'C' :'UNE', 'salut' :'je', 'Fu' :'C', 'F' :'ré', 'E' :'Oh',
'Ma' :'UNE', 'Mi' :'je', 'Mu' :'C', 'Moi' :'ré', 'Mo' :'Oh',
'Ya' :'UNE', 'Yu' :'C', 'Yo' :'Oh',
'La' :'UNE', 'Li' :'je', 'Le' :'C', 'Les' :'ré', 'B' :'Oh',
'sensationnel' :'UNE', 'Wo' :'Oh', 'Vers le bas' :'Vers le bas', 'Vu' :'C',
'Géorgie' :'UNE', 'Gi' :'je', 'Gu' :'C', 'Ge' :'ré', 'Aller' :'Oh',
'le' :'UNE', 'le' :'je', 'Zu' :'C', 'Ze' :'ré', 'Zo' :'Oh',
'Da' :'UNE', 'Di' :'je', 'Zu' :'C', 'De' :'ré', 'Faire' :'Oh',
'Ba' :'UNE', 'Bi' :'je', 'Bu' :'C', 'Être' :'ré', 'Bo' :'Oh',
'Pennsylvanie' :'UNE', 'Pi' :'je', 'Pu' :'C', 'Pe' :'ré', 'Po' :'Oh'
}
#À/Faire+'U'Pour c
for k in 'Faire':
while k+'U' in text:
text = text.replace(k+'U','C')
#Te/De+je/je/Convertir en c
for k in 'Tedde':
for k2,v in zip('Ju','Iu'):
while k+k2 in text:
text = text.replace(k+k2,v)
#Convertir les lettres majuscules et u en voyelles
text = list(text)
for i, v in enumerate(text):
if v in large_tone:
text[i] = large_tone[v]
text = ''.join(text)
#Convertir Wu en Wu
while 'Wu' in text:
text = text.replace('Wu','U')
#C+ヮ/UNE/je/E/Convertir o en voyelle
for k,v in zip('ヮ yeo','Aieo'):
text = text.replace('C'+k,v)
#E/Bien/Convertir en bon
for k in 'Ouais':
while k+'-' in text:
text = text.replace(k+'-',k+'je')
#je/je+Turbocompresseur/Yu/E/Convertir yo en voyelle
for k,v in zip('Nyayo','Aueo'):
text = text.replace('je'+k, v).replace('je'+k, v)
#Convertir les minuscules restantes en voyelle
for k,v in zip('Eyayo','Aiaioauo'):
text = text.replace(k,v)
#-Convertir (son long) en voyelle
for k in 'a-I-U-E-O':
while k+'-' in text:
text = text.replace(k+'-',k+k)
return text
Recommended Posts