最初に
PyKakasiという日本語→ローマ字変換モジュールがあるので、忙しい方はそちらの導入をオススメします。
- 自分で書いてみたい!
- モジュール使うほどのものではない
- 後々自分でカスタムしたい
という方向けの記事です。
開発環境
- Python 3.7.3
コード
chars_dict.py
hiragana = {
# vowel
'あ': 'a',
'い': 'i',
'う': 'u',
'え': 'e',
'お': 'o',
# consonant K
'か': 'ka',
'き': 'ki',
'く': 'ku',
'け': 'ke',
'こ': 'ko',
# consonant K"
'が': 'ga',
'ぎ': 'gi',
'ぐ': 'gu',
'げ': 'ge',
'ご': 'go',
...
}
main.py
from .chars_dict import hiragana as dict
def hiragana_to_romaji(hiragana):
romaji = ''
for char in hiragana:
if char in dict:
romaji += dict[char] + '-'
else:
romaji = 'ERROR_'
break
romaji = romaji[:-1]
return romaji
hiragana = input()
romaji = hiragana_to_romaji(hiragana)
print(romaji)
run
こんにちは # hiragana = input()
ko-n-ni-chi-ha # print(romaji)
こんにちは世界 # hiragana = input()
ERROR # print(romaji)
改善すべき点
- ひらがなとローマ字の対称データを事前に辞書型で書く必要があるのでそれを改善
- 小文字(っ, ゃ など)が含まれる場合の処理をまだ書いていない(ちょいめんどい)
- カタカナにも対応してない(辞書データを追加すれば解決)