Akaza (Japanese kana-kanji conversion engine) 用の n-gram 統計データを生成するパイプラインです。
日本語 Wikipedia、青空文庫、CC-100 Japanese のテキストをトーカナイズし、unigram/bigram の wordcnt trie と語彙ファイルを生成します。
生成物は default-model/ で learn-corpus の入力として使用されます。
| ファイル | 内容 | サイズ目安 |
|---|---|---|
dist/stats-vibrato-unigram.wordcnt.trie |
Unigram wordcnt (marisa-trie) | ~28MB |
dist/stats-vibrato-bigram.wordcnt.trie |
Bigram wordcnt (marisa-trie) | ~186MB |
dist/vibrato-ipadic.vocab |
語彙リスト (頻度閾値=16) | ~55MB |
akaza-data(Rust):cargo install --git https://github.com/akaza-im/akaza.git akaza-datawget,unzip,zstd- Python 3 (標準ライブラリのみ使用)
- git submodule の初期化:
git submodule update --init
make # フルビルド (初回は Wikipedia ダンプのダウンロードに時間がかかる)
make dist # dist/ に成果物を出力- URL:
https://dumps.wikimedia.org/other/cirrussearch/ - 形式: gzip 圧縮 NDJSON (テンプレート展開済みプレーンテキスト)
scripts/extract-cirrus.pyでストリーミング展開
- git submodule
aozorabunko_textで取得 - 著作権の消滅した日本語文学作品のテキストアーカイブ
- URL:
https://data.statmt.org/cc-100/ja.txt.xz - 形式: xz 圧縮プレーンテキスト (1 行 1 文、空行で文書区切り)
scripts/extract-cc100.pyで<doc>形式に変換CC100_LIMIT変数で処理文書数を制限可能 (デフォルト 0 = 無制限)
akaza-data の unigram/bigram 生成時に、数字プレフィックスを持つトークンを <NUM> に正規化してカウントを集約します。
| 正規化前 | 正規化後 |
|---|---|
1匹/1ひき, 2匹/2ひき, 100匹/100ひき |
<NUM>匹/<NUM>ひき |
1年/1ねん, 2019年/2019ねん |
<NUM>年/<NUM>ねん |
1/1, 2019/2019 |
1/1, 2019/2019 (変換なし) |
これにより、コーパス中で低頻度な「2匹」「3匹」等も、「1匹」等と集約された高頻度の LM スコアを共有でき、数字+助数詞パターン全般の変換精度が向上します。
正規化は surface が「ASCII 数字 + 非数字の接尾辞」のトークンにのみ適用されます。裸の数字(1/1 等)は正規化しません(全数字カウントが集約されると <NUM>/<NUM> のスコアが極端に高くなり、助詞「に」「さん」等が数字に化ける退行を防ぐため)。第1回 のように非数字で始まるものも対象外です。
このリポジトリ内のスクリプトおよび設定ファイル (scripts/, Makefile, mecab-user-dict.csv 等) は MIT License で提供されます。詳細は LICENSE を参照してください。
生成される統計データ (wordcnt trie, vocab) は以下のデータソースに由来する派生物です。
- Japanese Wikipedia: CC BY-SA 4.0 (Wikimedia Foundation)
- 青空文庫: パブリックドメイン (著作権の消滅した作品)
- CC-100: 元データは Common Crawl から抽出 (CC-100 paper)
Wikipedia 由来のデータを含むため、生成物の再配布には CC BY-SA 4.0 の条件が適用されます。
- Vibrato (MeCab 互換トーカナイザー): 辞書データは Apache-2.0 / BSD ライセンス (IPADIC)
- akaza-data: MIT License
データ量が大きいため CI ではビルドせず、ローカルでビルドして GitHub Release にアップロードする運用です。
# 1. submodule を最新に更新
git submodule update --init
# 2. フルビルド (初回は Wikipedia ダンプのダウンロードに時間がかかる)
make dist
# 3. CalVer タグを自動生成し、GitHub Release を作成
# gh CLI (https://cli.github.com/) が必要
make releasemake release は以下を自動で行います:
dist/に成果物を生成 (未ビルドなら自動でビルド)- CalVer タグ (
vYYYY.MMDD.PATCH) を生成・push - tarball を作成して GitHub Release にアップロード
同日に複数回実行すると PATCH が自動インクリメントされます (v2026.0207.0 → v2026.0207.1 → ...)。