
emoji-mozc-import: Auto-generating a 17,500-entry emoji dictionary for mozc from Unicode CLDR
CLDRの日本語アノテーションとunicode.orgの公式ZWJシーケンスリストから、mozcユーザー辞書用の絵文字・記号辞書を生成するツールです。
動作確認: Linux Mint 22.3 Cinnamon / Python 3.12
なにこれ?
Linuxでmozcを使っていて、こんな経験ありませんか?
「ねこ」で変換しても 🐱 が出てこない
絵文字を使いたいたびにWebで検索してコピペしている
👩🦰 や 🏳️🌈 みたいな合成絵文字はそもそも入力方法がわからない
このツールは、Unicode公式のデータから 約17,500件の絵文字・記号辞書 を自動生成して、mozcのユーザー辞書に一発で取り込めるようにします。
ねこ → 🐱 🐈 🐈⬛ 😺 😸 😻 🙀
ゆき → ❄ ☃ ⛄ 🌨
はーと → ❤ 💛 💚 💙 💜 🖤 🤍
セットアップしたら ./emoji_mozc_import.sh を実行してmozcにインポートするだけ。それだけです。
セットアップ
git clone https://gitlab.com/Ayanonymous/emoji-mozc-import.git
cd emoji-mozc-import
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
使い方
# 基本(ひらがな読みのみ)
./emoji_mozc_import.sh
# 漢字混じりの読みもひらがなに変換して収録数を増やす(推奨)
./emoji_mozc_import.sh --kana-convert
完了後、Mozcプロパティ → 辞書ツール → 管理 → インポート で生成された merged_mozc.txt を読み込んでください。
設定
emoji_mozc_config.toml を編集するだけで動作を変更できます。
[cldr]
# 別言語に変えたい場合はURLの "ja" を変更
url = "https://raw.githubusercontent.com/unicode-org/cldr-json/main/.../ja/annotations.json"
[zwj]
# "latest" を特定バージョン(例: "15.1")に変えると固定できる
url = "https://unicode.org/Public/emoji/latest/emoji-zwj-sequences.txt"
アーキテクチャ
[unicode.org CLDR]
↓ curl
annotations.json(日本語絵文字アノテーション)
↓ convert_emoji_tsv.py
│ ・ひらがな/カタカナ読みのみ抽出
│ ・unicodedata.category() で品詞自動判定
│ So(絵文字)→ 短縮よみ / その他 → 記号
│ ・--kana-convert 時は漢字読みを kana_convert.py に渡す
↓
emoji_mozc.tsv(単体絵文字・記号 約8800件)
[kana_convert.py](--kana-convert 時のみ)
GiNZA / MeCab / pyopenjtalk の3エンジンで多数決
漢字混じり読み → ひらがな
[unicode.org emoji-zwj-sequences.txt]
↓ generate_zwj_tsv.py
│ ・公式ZWJシーケンスリストを取得
│ ・先頭コードポイントの読みをemoji_mozc.tsvから引く
↓
zwj_mozc.tsv(👩🦰 等のZWJ合成絵文字 約8600件)
emoji_mozc.tsv + zwj_mozc.tsv
↓ cat
merged_mozc.txt(約17500件)→ mozcユーザー辞書にインポート
依存
| パッケージ | 用途 | 必須 |
|---|---|---|
| ginza, ja_ginza | 読み変換(高精度) | いずれか1つ |
| fugashi, unidic-lite | 読み変換(MeCab) | いずれか1つ |
| pyopenjtalk | 読み変換(軽量) | いずれか1つ |
--kana-convert を使わない場合は全て不要です。
ファイル構成
| ファイル | 説明 |
|---|---|
emoji_mozc_import.sh |
メインスクリプト |
convert_emoji_tsv.py |
CLDRアノテーション→TSV変換 |
kana_convert.py |
漢字混じり読み→ひらがな変換CLI |
generate_zwj_tsv.py |
ZWJ絵文字辞書生成 |
emoji_mozc_config.toml |
設定ファイル |
requirements.txt |
Python依存パッケージ |
既知の問題
一部ZWJ絵文字がmozcの変換候補に出ない場合は手動登録してください(mozc側の問題)。
サポート
個人開発のためサポート対応はしていません。
リポジトリ
https://gitlab.com/Ayanonymous/emoji-mozc-import
License
Apache License 2.0 - see LICENSE for details.
#mozc #Linux #LinuxMint #日本語入力 #Python
