unidic
UniDic packaged for Python
What it is and what it does
unidic-py packages the UniDic 2.3.0 Japanese morphological dictionary for pip installation. UniDic is a comprehensive lexical resource maintained by NINJAL (the National Institute for Japanese Language and Linguistics) that includes detailed linguistic annotations for Japanese words: part-of-speech tags, conjugation types, lemmas, pronunciations, etymological categories, and accent information. The package itself is a thin wrapper; after installation, you must run `python -m unidic download` to fetch the dictionary data from AWS, which takes up approximately 1GB of disk space.
Once installed, unidic exposes the DICDIR constant to locate the dictionary. The package includes minor modifications from the official UniDic release (additions for 令和, removal of single-character numeric/alphabetic entries, and changes to unknown-punctuation handling) to improve usability in Python workflows. It is designed to work with MeCab-based tokenizers that can accept a dictionary path argument.
Use it for:
- Japanese NLP pipelines that need detailed morphological analysis beyond basic part-of-speech tags, such as lemmatization or conjugation-type identification.
- Building Japanese text processing systems that require the full UniDic annotation set for linguistic research or production NLP.
- Japanese language learning or corpus analysis tools that benefit from rich lemma and pronunciation data.
- Accent analysis and standard-language pronunciation research using the aType and kana fields in UniDic.
- Counting-expression parsing in Japanese text, using the specialized iConType and fConType fields for numeric and counter contexts.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Provides the UniDic 2.3.0 Japanese morphological dictionary for use with MeCab-based tokenizers, requiring a separate download step and consuming approximately 1GB of disk space.
Yes, if you need full Japanese morphological analysis and are willing to accept the 1GB disk footprint and the two-step installation process (pip install + manual download). The dictionary is comprehensive and well-maintained by NINJAL. No, if you want a lightweight solution—the package explicitly recommends unidic-lite as an alternative. The aging maintenance status (last release 2021-10-10) is a minor concern but not a blocker, since the dictionary data is stable and the code is minimal.
Install
unidic on PyPI
pip
pip install unidicuv
uv add unidicpoetry
poetry add unidicInstalling unidic
Before you install
Installation has high friction: the package itself is small, but the dictionary data must be downloaded separately via `python -m unidic download` after pip install, and the full dictionary occupies approximately 1GB on disk. The project is aging (last release 2021-10-10, 1769 days ago), though the repository remains active with recent commits.
License in practice
MIT license on the code is permissive and poses no restrictions. The UniDic dictionary data itself is available under GPL, LGPL, or BSD (user's choice per the UniDic Consortium); the package distributes it under BSD terms. No licensing barrier to use.
Quickstart
pip install unidic
python -m unidic download
import unidic
dicdir = unidic.DICDIR
Requires a MeCab installation and a MeCab-based tokenizer library as a separate runtime dependency to actually tokenize text; unidic alone provides only the dictionary data and the DICDIR path.
Verify before relying
- Whether the 1GB disk requirement is accurate for the current 2.3.0 dictionary version or has changed.
- Current state of the AWS Open Data mirror hosting the dictionary—whether downloads remain reliable.
- Whether the package works with Python versions newer than 3.5 without issues, given the aging maintenance status.
- Actual integration behavior with MeCab-based tokenizers when installed alongside them.
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.5) |
| Install friction | high — source build required |
| Runtime dependencies | none |
| Maintenance | aging — 1,769 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 416,399/month — #6,820 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: unidic-1.1.0.tar.gz
Tags
More Linguistic packages
Detects and normalizes text encoding from…
permissive · top 100 on PyPI
tiktokentiktoken is a fast BPE tokenizer that converts…
permissive · top 1,000 on PyPI
chardetDetects character encoding and language in byte…
permissive · top 1,000 on PyPI
text-unidecodeConverts Unicode text to ASCII by…
copyleft · top 1,000 on PyPI
larkLark is a parsing library that builds abstract…
permissive · top 1,000 on PyPI
tree-sitterPython bindings to the tree-sitter parsing…
permissive · top 1,000 on PyPI
unidic-liteProvides a pip-installable Japanese…
permissive · top 15,000 on PyPI
ipadicProvides the IPAdic Japanese morphological…
unclear · top 15,000 on PyPI
mecab-python3Python wrapper for MeCab, a morphological…
permissive · top 5,000 on PyPI
mecab-ko-dicProvides a Korean dictionary for MeCab…
unclear · top 15,000 on PyPI
fugashiA Cython wrapper for MeCab that tokenizes and…
permissive · top 5,000 on PyPI
mecabPython binding for MeCab, a morphological…
copyleft · top 15,000 on PyPI
mojimojiConverts Japanese text between hankaku…
permissive · top 15,000 on PyPI
ginzaGiNZA is a Japanese NLP library that performs…
permissive · top 15,000 on PyPI
konohaKonoha provides a unified Python interface to…
permissive · top 15,000 on PyPI
mecab-koPython wrapper for MeCab-ko, a morphological…
permissive · top 15,000 on PyPI