Install jaconv via pip
masterInstall the jaconv package using pip. Since it is implemented entirely in Python, it can be used in environments where a C compiler is unavailable.
$ pip install jaconvrepository·master·Indexed 43 days ago
https://github.com/ikegami-yukino/jaconvA high-speed Python library for converting between Japanese character types. It provides utilities for converting Hiragana and Katakana, switching between half-width (Hankaku) and full-width (Zenkaku) characters via h2z() and z2h(), normalizing Japanese text, enlarging small kana, and transliterating between kana and the Latin alphabet.
Install the jaconv package using pip. Since it is implemented entirely in Python, it can be used in environments where a C compiler is unavailable.
$ pip install jaconvThe normalize(text, form) method expands unicodedata.normalize specifically for Japanese language processing. It handles common character variations like different types of dashes, hyphens, and quotation marks to ensure consistency.
import jaconv
jaconv.normalize('ティロ・フィナ〜レ', 'NFKC')
# => 'ティロ・フィナーレ'The normalize(text, form) method is based on Python's unicodedata.normalize but includes specialized extensions for Japanese text processing. It automatically maps various Japanese-specific symbols (like different types of dashes, hyphens, and quotation marks) to standard forms.
Common mappings include:
〜 or ~ $\rightarrow$ ー (Chōonpu)―, ‐, ‑, etc.) $\rightarrow$ - or ー depending on context.import jaconv
jaconv.normalize('ティロ・フィナ〜レ', 'NFKC')
# => 'ティロ・フィナーレ'The h2z method (alias: hankaku2zenkaku) converts half-width characters to full-width. You can control which character types are converted using boolean flags:
kana: Convert half-width kana to full-width kana (default behavior).ascii: Convert half-width ASCII to full-width ASCII.digit: Convert half-width digits to full-width digits.Note: To prevent certain characters from being converted, set their respective flag to False.
import jaconv
# Half-width kana to Full-width kana
jaconv.h2z('ティロ・フィナーレ')
# => 'ティロ・フィナーレ'
# Half-width ASCII to Full-width ASCII
jaconv.h2z('abc', kana=False, ascii=True, digit=False)
# => 'abc'
# Half-width digits to Full-width digits
jaconv.h2z('123', kana=False, ascii=False, digit=True)
# => '123'
# Mixed conversion
jaconv.h2z('アabc123', kana=False, digit=True, ascii=True)
# => 'アabc123'
# Alias usage
jaconv.hankaku2zenkaku('ティロ・フィナーレabc123')
# => 'ティロ・フィナーレabc123'The z2h method (alias: zenkaku2hankaku) converts full-width characters to half-width. You can control which character types are converted using boolean flags:
kana: Convert full-width kana to half-width kana (default behavior).ascii: Convert full-width ASCII to half-width ASCII.digit: Convert full-width digits to half-width digits.import jaconv
# Full-width kana to Half-width kana
jaconv.z2h('ティロ・フィナーレ')
# => 'ティロ・フィナーレ'
# Full-width ASCII to Half-width ASCII
jaconv.z2h('abc', kana=False, ascii=True, digit=False)
# => 'abc'
# Full-width digits to Half-width digits
jaconv.z2h('123', kana=False, ascii=False, digit=True)
# => '123'
# Mixed conversion
jaconv.z2h('アabc123', kana=False, digit=True, ascii=True)
# => 'アabc123'
# Alias usage
jaconv.zenkaku2hankaku('ティロ・フィナーレabc123')
# => 'ティロ・フィナーレabc123'Use these methods to transliterate between Japanese kana and the Latin alphabet:
kana2alphabet(text): Converts Hiragana to Alphabet.alphabet2kana(text): Converts Alphabet to Hiragana.kata2alphabet(text): Converts Katakana to Alphabet.alphabet2kata(text): Converts Alphabet to Katakana.import jaconv
jaconv.kana2alphabet('じゃぱん')
# => 'japan'
jaconv.alphabet2kana('japan')
# => 'じゃぱん'
jaconv.kata2alphabet('ケツイ')
# => 'ketsui'
jaconv.alphabet2kata('namba')
# => 'ナンバ'Use hiragana2julius(text) to convert Hiragana into Julius's phoneme format.
import jaconv
jaconv.hiragana2julius('てんきすごくいいいいいい')
# => 't e N k i s u g o k u i:'Convert characters between half-width (Hankaku) and full-width (Zenkaku) using these methods:
h2z(text, kana=True, ascii=False, digit=False): Converts half-width to full-width. This is an alias for hankaku2zenkaku.z2h(text, kana=True, ascii=False, digit=False): Converts full-width to half-width. This is an alias for zenkaku2hankaku.Parameters:
kana: Whether to convert Katakana.ascii: Whether to convert ASCII characters.digit: Whether to convert digits.import jaconv
# half-width character to full-width character
# default parameters: kana=True, ascii=False, digit=False
jaconv.h2z('ティロ・フィナーレ')
# => 'ティロ・フィナーレ'
# only ascii characters
jaconv.h2z('abc', kana=False, ascii=True, digit=False)
# => 'abc'
# only digit characters
jaconv.h2z('123', kana=False, ascii=False, digit=True)
# => '123'
# full-width character to half-width character
jaconv.z2h('ティロ・フィナーレ')
# => 'ティロ・フィナーレ'
# an alias of h2z
jaconv.hankaku2zenkaku('ティロ・フィナーレabc123')
# => 'ティロ・フィナーレabc123'
# an alias of z2h
jaconv.zenkaku2hankaku('ティロ・フィナーレabc123')
# => 'ティロ・フィナーレabc123'The enlarge_smallkana(text, ignore=None) method converts small kana (like ぁ, ぃ, ぅ, ぇ, ぉ, っ, ゃ, ゅ, ょ) into their standard large counterparts.
Use the ignore parameter to specify characters that should not be enlarged.
import jaconv
# Standard enlargement
jaconv.enlarge_smallkana('わぁい')
# => 'わあい'
# Enlargement with ignore
jaconv.enlarge_smallkana('きょういっぱい', ignore='っ')
# => 'きよういっぱい'Use the following methods to convert between Hiragana and Katakana character sets:
hira2kata(text): Converts Hiragana to Katakana.hira2hkata(text): Converts Hiragana to Half-width Katakana.kata2hira(text): Converts Katakana to Hiragana.import jaconv
# Hiragana to Katakana
jaconv.hira2kata('ともえまみ')
# => 'トモエマミ'
# Hiragana to Half-width Katakana
jaconv.hira2hkata('ともえまみ')
# => 'トモエマミ'
# Katakana to Hiragana
jaconv.kata2hira('巴マミ')
# => '巴まみ'Use enlarge_smallkana(text, ignore=None) to convert small Hiragana or Katakana characters (like ぁ, ぃ, ぅ, ぇ, ぉ, っ, etc.) to their normal size versions.
Use the ignore parameter to specify characters that should remain small.
import jaconv
jaconv.enlarge_smallkana('わぁい')
# => 'わあい'
jaconv.enlarge_smallkana('きょういっぱい', ignore='っ')
# => 'きよういっぱい'The hiragana2julius(text) method converts Hiragana text into the Julius phonetic transcription format.
import jaconv
jaconv.hiragana2julius('てんきすごくいいいいいい')
# => 't e N k i s u g o k u i:'