日語中平假名與片假名互相轉換的程序
kana = {n あ: ア,n い: イ,n う: ウ,n え: エ,n お: オ,n か: カ,n き: キ,n く: ク,n け: ケ,n こ: コ,n さ: サ,n し: シ,n す: ス,n せ: セ,n そ: ソ,n た: タ,n ち: チ,n つ: ツ,n て: テ,n と: ト,n な: ナ,n に: ニ,n ぬ: ウ,n ね: ネ,n の: ノ,n は: ハ,n ひ: ヒ,n ふ: フ,n へ: ヘ,n ほ: ホ,n ら: ラ,n り: リ,n る: ル,n れ: レ,n ろ: ロ,n わ: ワ,n を: ヲ,n だ: ダ,n ぢ: ヂ,n づ: ヅ,n で: デ,n ど: ド,n ぁ: ァ,n ぃ: ィ,n ぅ: ゥ,n ぇ: ェ,n ぉ: ォ,n ん: ン,n っ: ッ,n}n
反轉字典
invert_kana = {value:key for key,value in kana.items()}n
實現轉換
def trans(words):n trans_words = n try:n trans_words = .join([invert_kana[x] for x in list(words)])n except:n trans_words = .join([kana[x] for x in list(words)])n return trans_wordsn
成功實現轉換
trans(イッ)n#いっntrans(いっ)n#イッn
あなたと二人 続くと言って
但這樣想想感覺還不夠,比如上面這句話,就不行了
先分詞
def get_kana(text):n with MeCab() as nm:n for n in nm.parse(str(text), as_nodes=True):n if not n.is_eos():n if n.feature.split(,)[0]!=記號 and n.feature.split(,)[2:]!=[*, *, *, *, *]:nn yield n.feature.split(,)[-2]n
試一下執行結果
list(get_kana(あなたと二人 続くと言って))n#[アナタ, ト, ニ, ニン, ツヅク, ト, イッ, テ]n
再結合上面寫的轉換函數,就得到想要的假名了。
.join([trans(x) for x in list(get_kana(あなたと二人 続くと言って))])n#あなた と に にん つづく と いっ てn
想全部變成片假名,也很簡單
.join([trans(trans(x)) for x in list(get_kana(あなたと二人 続くと言って))])n#アナタ ト ニ ニン ツヅク ト イッ テn
推薦閱讀:
※さま「様」為何用來作尊稱?
※當代漢語中出自日語的常用四字用語有哪些?
※琉球語中「南(はえ/ふぇ/ぱい)」和「北(にし)」的語源分別為何?
※提高日語N1聽力的方法?