jaconv (Japanese Converter) はひらがな・カタカナ・全角・半角の文字種変換を高速に行います。 Pythonのみで実装されているので、Cコンパイラが使えない環境でも利用できます。
$ pip install jaconv
import jaconv
# ひらがな to カタカナ
jaconv.hira2kata('ともえまみ')
# => 'トモエマミ'
# ひらがな to 半角カタカナ
jaconv.hira2hkata('ともえまみ')
# => 'トモエマミ'
# カタカナ to ひらがな
jaconv.kata2hira('巴マミ')
# => '巴まみ'
# 半角かな文字 to 全角かな文字
jaconv.h2z('ティロ・フィナーレ')
# => 'ティロ・フィナーレ'
# 半角ASCII to 全角ASCII
jaconv.h2z('abc', kana=False, ascii=True, digit=False)
# => 'abc'
# 数字以外の半角文字 to 全角文字
jaconv.h2z('123', kana=False, ascii=False, digit=True)
# => '123'
# カタカナ以外の半角文字 to 全角文字
jaconv.h2z('アabc123', kana=False, digit=True, ascii=True)
# => 'アabc123'
# h2zのエイリアス
jaconv.hankaku2zenkaku('ティロ・フィナーレabc123')
# => 'ティロ・フィナーレabc123'
# 全角かな文字 to 半角かな文字
jaconv.z2h('ティロ・フィナーレ')
# => 'ティロ・フィナーレ'
# 全角ASCII to 半角ASCII
jaconv.z2h('abc', kana=False, ascii=True, digit=False)
# => 'abc'
# 全角アラビア数字 to 半角アラビア数字
jaconv.z2h('123', kana=False, ascii=False, digit=True)
# => '123'
# カタカナ以外の全角文字 to 半角文字
jaconv.z2h('アabc123', kana=False, digit=True, ascii=True)
# => 'アabc123'
# z2hのエイリアス
jaconv.zenkaku2hankaku('ティロ・フィナーレabc123')
# => 'ティロ・フィナーレabc123'
# normalize
jaconv.normalize('ティロ・フィナ〜レ', 'NFKC')
# => 'ティロ・フィナーレ'
# ひらがな to アルファベット
jaconv.kana2alphabet('じゃぱん')
# => japan
# アルファベット to ひらがな
jaconv.alphabet2kana('japan')
# => じゃぱん
# カタカナ to アルファベット
jaconv.kata2alphabet('ケツイ')
# => 'ketsui'
# アルファベット to カタカナ
jaconv.alphabet2kata('namba')
# => 'ナンバ'
# ひらがな to Juliusの音素表現
jaconv.hiragana2julius('てんきすごくいいいいいい')
# => 't e N k i s u g o k u i:'
normalizeメソッドは、unicodedata.normalize を日本語処理向けに特化した拡張を行っています。 具体的には以下のように変換します。
'〜' => 'ー' '~' => 'ー' "’" => "'" '”'=> '"' '“' => '``' '―' => '-' '‐' => '-' '˗' => '-' '֊' => '-' '‐' => '-' '‑' => '-' '‒' => '-' '–' => '-' '⁃' => '-' '⁻' => '-' '₋' => '-' '−' => '-' '﹣' => 'ー' '-' => 'ー' '—' => 'ー' '―' => 'ー' '━' => 'ー' '─' => 'ー'