No Dictionary Hell
Forget about managing 50MB+ dictionary files. Suzume uses a feature-based model that stays tiny.
No more 50MB dictionary files. Lightweight Japanese tokenization under 250KB — runs entirely in the browser, no server required.
The best of both worlds: TinySegmenter's lightness meets MeCab's accuracy.
| Feature | TinySegmenter Light | Suzume | kuromoji | MeCab Accurate |
|---|---|---|---|---|
| Browser | ✓ | ✓ | △ | ✗ |
| Dictionary | Not required | Not required | Required | Required |
| Bundle Size | ~10KB | <250KB | ~20MB | N/A |
| Server-free | ✓ | ✓ | △ | ✗ |
| POS Tagging | ✗ | ✓ | ✓ | ✓ |
| Lemmatization | ✗ | ✓ | ✓ | ✓ |
| Compound Nouns | ✗ | ✗ | ✓ | ✓ |
| Custom Dictionary | ✗ | ✓ | ✓ | ✓ |
| Unknown Words | △ | ✓ | △ | △ |
Zero server setup. Just serve from CDN.
No API calls. Instant analysis with zero latency.
Text data never leaves the user's browser.
Try real-time demos that run entirely in your browser
npm install @libraz/suzumeyarn add @libraz/suzumepnpm add @libraz/suzumebun add @libraz/suzumeimport { Suzume } from '@libraz/suzume'
const suzume = await Suzume.create()
const result = suzume.analyze('すもももももももものうち')
console.log(result)
// [
// { surface: 'すもも', pos: 'noun', posJa: '名詞', ... },
// { surface: 'も', pos: 'particle', posJa: '助詞', ... },
// ...
// ]