pykakasi
Kana kanji simple inversion library
What it is and what it does
Pykakasi is a Python NLP library that converts Japanese text into romanized form (rōmaji). It handles hiragana, katakana, and kanji characters, producing multiple output forms: kana (katakana), hiragana, and rōmaji (Latin alphabet). The library is based on algorithms from the kakasi C library and supports NFC-form characters.
Typical use is to pass Japanese text to a kakasi instance and iterate over the conversion results, which include the original character, its kana and hiragana forms, and its romanized representation. It depends on jaconv for character conversion, deprecated for API management, and importlib-resources for resource loading.
Use it for:
- Convert Japanese text to romaji for display in systems that require Latin characters
- Extract phonetic readings (hiragana/katakana) from kanji for language learning or accessibility
- Process Japanese input in NLP pipelines that need standardized romanized output
- Generate furigana-like output for mixed Japanese text (kana + kanji) in documents
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Transliterates Japanese text (hiragana, katakana, kanji) into rōmaji (Latin alphabet) and provides kana conversions.
Yes, if you need Japanese-to-romaji conversion and can tolerate dormant maintenance. The package is Production/Stable, has no known vulnerabilities, low install friction, and supports current Python versions (3.8–3.13). The 781-day gap since last release is notable but not disqualifying for a mature, narrowly-scoped library. GPL-3.0-or-later licensing is a blocker for proprietary closed-source projects.
Install
pykakasi on PyPI
pip
pip install pykakasiuv
uv add pykakasipoetry
poetry add pykakasiInstalling pykakasi
Before you install
Low install friction; pure Python wheel. Maintenance is dormant (781 days since last release), though the package is marked Production/Stable and has no known vulnerabilities.
License in practice
GPL-3.0-or-later copyleft license. Derivative works and distributions must be released under GPL3+ or compatible terms; proprietary use requires separate licensing.
Quickstart
import pykakasi
kks = pykakasi.kakasi()
text = "かな漢字"
result = kks.convert(text)
for item in result:
print(item['orig'], item['hepburn'])
Verify before relying
- Whether dormant maintenance status (781 days) affects reliability for current Python versions despite Production/Stable classifier
- Performance characteristics on large Japanese text volumes or real-time processing scenarios
Package facts
| License | GPL-3.0-or-later (copyleft) |
| Python support | supports the current Python release (>=3.8) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 3 — jaconv, deprecated, importlib-resources |
| Maintenance | dormant — 781 days since the last release |
| First released | |
| Downloads | 1,686,957/month — #3,650 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: pykakasi-2.3.0-py3-none-any.whl
Keywords: kakasi, NLP
Tags
More Python Modules packages
Converts domain names between Unicode and…
permissive · top 100 on PyPI
setuptoolsSetuptools is a Python build backend and…
permissive · top 100 on PyPI
PyYAMLPyYAML parses and emits YAML 1.1 data format,…
permissive · top 100 on PyPI
pydanticPydantic validates Python data structures…
permissive · top 100 on PyPI
annotated-typesProvides reusable metadata objects for use with…
permissive · top 100 on PyPI
typing-inspectionProvides runtime tools to inspect and…
permissive · top 100 on PyPI
cutletCutlet converts Japanese text to romaji (Latin…
permissive · top 15,000 on PyPI
jaconvjaconv converts between Japanese character…
permissive · top 5,000 on PyPI
kanjizeConverts between Japanese kanji number…
permissive · top 15,000 on PyPI
habachenHabachen converts between full-width and…
permissive · top 15,000 on PyPI
mojimojiConverts Japanese text between hankaku…
permissive · top 15,000 on PyPI
hangul-romanizeConverts Korean Hangul text to romanized (Latin…
unclear · top 15,000 on PyPI
indic-transliterationConverts text between different Indic script…
permissive · top 15,000 on PyPI
transliterateConverts text between Latin and non-Latin…
copyleft · top 15,000 on PyPI
UnidecodeConverts Unicode text to ASCII-safe…
copyleft · top 1,000 on PyPI
OpenCCConverts text between Traditional Chinese,…
permissive · top 15,000 on PyPI