完全ローカルの日本語入力+校正IME。 出版編集者の実務に耐える品質を、原稿が一歩も外に出ない形で。
LNAIME は Lna-Lab が開発する、ニューラルかな漢字変換と日本語校正を一体化した日本語入力メソッド(IME)です。名称は Lna-Lab + IME。Google日本語入力やATOKのように、入力デバイスのすぐ近くに常駐し、あらゆるアプリで動くことを目指します。
- 完全ローカル。 すべての処理が手元のマシンで完結し、書きかけの原稿が外部サーバへ送られることは一切ありません。未公開原稿を扱う編集者にとって、これは機能ではなく「信頼」です。
- ひとつの辞書が、変換と校正を同時に動かす。 固有名詞や用語を一度登録すれば、それが ①ライブ変換のバイアス ②再変換の候補 ③表記ゆれ校正の「正しい表記」 のすべてに効きます。
- 再現可能な校正。 表記ゆれ・用字用語・送り仮名・ら抜きなどは決定的なルール(textlint / prh / Sudachi / 内閣告示)で検出し、各指摘が根拠を示します。文脈依存の誤用だけを、明示ラベル付きのAI提案として補います。
- ⌨️ ニューラルなローマ字ライブ変換(変換キー不要)
- 📚 固有辞書の登録(作品・媒体ごとに切替)
- 🔁 確定済みテキストの再変換
- 🩹 入力時のその場校正(ATOK風の下線指摘)— 登録表記ゆれ/用字用語/送り仮名/ら抜き
- 📄 文書スキャン校正 — 離れた箇所の表記ゆれ・一括校正
- 🤖 文脈校正(ローカルLLM、最小編集・著者の声を書き換えない)
ローカルの「校正+変換サーバ(脳)」が、ひとつの固有辞書とルール群・ニューラルモデルを保持し、IMEフロントエンドへ供給します。
- L0 共有固有辞書 — 単一の master レコードから、変換辞書と校正ルールを自動生成(このコンパイラが製品の核)
- L1 文字正規化 — 全角半角・長音などの決定的な整形
- L2 決定的ルール層 — textlint / prh / Sudachi正規化 / 内閣告示 / JTFスタイル(再現可能・引用可能)
- L3 ニューラル層 — 文脈依存の誤用・言い換えのみ(最小編集の差分、AI提案として明示)
「正しい表記」の出所は常に L0 の登録正規形と内閣告示であり、形態素解析器の既定正規化を表示にはそのまま用いません。
- 脳 — 固有辞書 + コンパイラ + 決定的校正(表記ゆれ検出) ← 開発中
- 常駐IME — Fcitx5 ベースのライブ変換 + 固有辞書 + 再変換 + その場校正
- 文書スキャン校正 — 文書スコープの表記ゆれ・一括校正
- 文脈校正(ニューラル) + 入稿エクスポート(docx / PDF)
- 変換エンジン:azooKey Zenzai / zenz(GPT-2系ニューラルかな漢字変換、ローカルGGUF)
- IME基盤:Fcitx5 + Hazkey
- 校正:Sudachi / textlint / textlint-rule-prh / 内閣告示・JTFスタイル
- 文脈校正:ローカルLLM(LFM2.5系)
完全ローカルで動作する v0.1.0。
- 校正
/check:表記ゆれ・ら抜き・用字用語・全角英数 - 変換
/convert:ローマ字ベタ打ち入力 → ハイブリッド(生成の品質 + 読み忠実ゲート + Zenzai ラティス保証) - 常駐トレイapp:GNOMEトップバーに常駐し、どのアプリでも変換/校正
zenz は Blackwell GPU で 1変換 約 9–21ms。辞書コンパイラ(master レコード → 変換辞書+校正ルールの同期生成)が稼働。
校正の「脳」をコンテナで起動し、/check を叩きます(完全ローカル・host環境を汚しません)。
docker compose up -d --build
curl -s http://127.0.0.1:8077/check \
-H 'content-type: application/json' \
-d '{"text":"弊社のサーバを増設。新しいサーバーは高速です。"}'dict/master.yaml に用語を一度登録すると、変換辞書(Sudachi / azooKey)と校正ルール(prh)が compiler/compile_dict.py で生成され、同じ辞書が校正でも「正しい表記」として効きます(登録表記ゆれ/文書内表記ゆれ)。/dict/reload で辞書の再読込。
かな漢字変換(ニューラル・GPU)も同じ脳から叩けます。登録した固有名詞は変換にも効きます。
docker compose --profile gpu up -d convert # zenz を GPU で起動
curl -s http://127.0.0.1:8077/convert \
-H 'content-type: application/json' \
-d '{"reading":"ぼくはゆきがだいすきです"}'
# → {"converted":"僕はユキが大好きです"} ← 辞書に登録した「ユキ」が変換でも選ばれる読み忠実モード(読みを構造的に破らない)— "faithful": true を付けると、azooKey Zenzai のラティス変換(convert-faithful サービス)を使います。
docker compose up -d convert-faithful # Swift Zenzai ラティス(CPU)
curl -s http://127.0.0.1:8077/convert \
-H 'content-type: application/json' \
-d '{"reading":"けんとゆきはなかよし","faithful":true}'
# → {"converted":"ケンとユキは仲吉","faithful":true,"engine":"lattice"}- model-only(GPU, 速度優先):概ね正確、稀に読みを破る → 読み忠実ゲートで検出
- faithful(CPU, Zenzai ラティス):候補の読み連結=入力カナのみ採用=読み忠実を構造的に保証。登録固有名詞は lattice に自動注入。
GNOMEのトップバーに常駐し、ローマ字 → 変換/校正をどのアプリでも。
# 1) 脳とエンジンを起動(校正 + ハイブリッド変換 + 読み忠実lattice)
docker compose --profile gpu up -d
# 2) 常駐トレイを起動(※ VS Code 内蔵端末ではなく通常の端末で。snap環境だとGTKが壊れます)
./tray/run.shトップバーのアイコン → 変換… にローマ字(例 bokuhayukigadaisukidesu)→ 変換 → 「僕はユキが大好きです」→ コピー。校正… で表記ゆれ等を検出。読み忠実保証(lattice) にチェックで純ラティス変換。
- 自動起動:
cp tray/lnaime-tray.desktop ~/.config/autostart/ - 必要環境:GNOME/Wayland(AppIndicator対応)、
python3-gi/gir1.2-ayatanaappindicator3-0.1/wl-clipboard
- 校正の規範には、著作権フリーの内閣告示・JTFスタイル・prh 公開辞書を用います。商用の用語集(各社レギュレーション)は同梱せず、利用者が自分の辞書をインポートする設計です。
- 変換器 zenz の重みおよびデータセットは CC-BY-SA-4.0(派生物の再配布には継承条件があります)。
Lna-Lab(ケン & YUKI)開発。 先行実装の azooKey / Zenzai、WorksApplications Sudachi、textlint / prh コミュニティに深く敬意を表します。