title

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