Skip to content

akaza-im/akaza

Repository files navigation

ibus-akaza

Yet another kana-kanji-converter on IBus, written in Rust.

統計的かな漢字変換による日本語IMEです。 Rust で書いています。

現在、開発途中のプロダクトです。非互換の変更が予告なくはいります

モチベーション

いじりやすくて ある程度 UIが使いやすいかな漢字変換があったら面白いなと思ったので作ってみています。 「いじりやすくて」というのはつまり、Hack-able であるという意味です。

モデルデータを自分で生成できて、特定の企業に依存しない自由なかな漢字変換エンジンを作りたい。

特徴

  • UI/Logic をすべて Rust で書いてあるので、拡張が容易です。
  • 統計的かな漢字変換モデルを採用しています
    • 言語モデルの生成元は日本語 Wikipedia と青空文庫です。
      • 形態素解析器 Vibrato で分析した結果をもとに 2gram 言語モデルを構築しています。
      • 利用者の環境で 1 から言語モデルを再生成することが可能です。
  • ユーザー環境で、利用者の変換結果を学習します(unigram, bigramの頻度を学習します)

Dependencies

Runtime dependencies

  • ibus 1.5+
  • marisa-trie
  • gtk4

Build time dependencies

  • rust

Supported environment

  • Linux 6.0 以上
  • ibus 1.5 以上
  • リトルエンディアン環境

Install 方法

モデルファイルをダウンロードして展開してください。

sudo mkdir -p /usr/share/akaza/model/default/
curl -L https://github.com/akaza-im/akaza-default-model/releases/download/<<VERSION>>/akaza-default-model.tar.gz | sudo tar xzv --strip-components=1 -C /usr/share/akaza/model/default/

ibus-akaza をインストールしてください。

rustup install stable
make
sudo make install
ibus restart
ibus engine akaza

設定方法

Keymap の設定

Akaza は典型的には以下の順番で探します。

  1. ~/.local/share/akaza/keymap/{KEYMAP_NAME}.yml
  2. /usr/local/share/akaza/keymap/{KEYMAP_NAME}.yml
  3. /usr/share/akaza/keymap/{KEYMAP_NAME}.yml

このパスは、XDG ユーザーディレクトリ の仕様に基づいています。 Akaza は Keymap は XDG_DATA_HOMEXDG_DATA_DIRS からさがします。 XDG_DATA_HOME は設定していなければ ~/.local/share/ です。XDGA_DATA_DIR は設定していなければ /usr/local/share:/usr/share/ です。

RomKan の設定

ローマ字かなマップも同様のパスからさがします。

  1. ~/.local/share/akaza/romkan/{KEYMAP_NAME}.yml
  2. /usr/local/share/akaza/romkan/{KEYMAP_NAME}.yml
  3. /usr/share/akaza/romkan/{KEYMAP_NAME}.yml

model の設定

model は複数のファイルからなります。

  • unigram.model
  • bigram.model
  • SKK-JISYO.akaza

この切り替えは以下のようなところから読まれます。

  • ~/.local/share/akaza/model/{MODEL_NAME}/unigram.model
  • ~/.local/share/akaza/model/{MODEL_NAME}/bigram.model
  • ~/.local/share/akaza/model/{MODEL_NAME}/SKK-JISYO.akaza

keymap, romkan と同様に、XDG_DATA_DIRS から読むこともできます。

FAQ

最近の言葉が変換できません/固有名詞が変換できません

流行り言葉が入力できない場合、jawiki-kana-kanji-dict の利用を検討してください。 Wikipedia から自動的に抽出されたデータを元に SKK 辞書を作成しています。 Github Actions で自動的に実行されているため、常に新鮮です。

一方で、自動抽出しているために変なワードも入っています。変なワードが登録されていることに気づいたら、github issues で報告してください。

人名が入力できません。など。

必要な SKK の辞書を読み込んでください。 現時点では config.yml を手で編集する必要があります。

https://skk-dev.github.io/dict/

THANKS TO