<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>日语IME on Text Matrix</title><link>https://txtmix.com/tags/%E6%97%A5%E8%AF%ADime/</link><description>Recent content in 日语IME on Text Matrix</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Tue, 21 Jul 2026 20:06:14 +0800</lastBuildDate><atom:link href="https://txtmix.com/tags/%E6%97%A5%E8%AF%ADime/index.xml" rel="self" type="application/rss+xml"/><item><title>togatoga/karukan 深度拆解：基于 llama.cpp 的 Rust 神经假名汉字转换引擎，跨 Linux/macOS 的日语 IME 全栈方案</title><link>https://txtmix.com/posts/tech/togatoga-karukan-neural-japanese-ime-architecture/</link><pubDate>Wed, 01 Jul 2026 21:03:00 +0800</pubDate><guid>https://txtmix.com/posts/tech/togatoga-karukan-neural-japanese-ime-architecture/</guid><description>&lt;h1 id="togatogakarukan-深度拆解基于-llamacpp-的-rust-神经假名汉字转换引擎跨-linuxmacos-的日语-ime-全栈方案">togatoga/karukan 深度拆解：基于 llama.cpp 的 Rust 神经假名汉字转换引擎，跨 Linux/macOS 的日语 IME 全栈方案&lt;/h1>
&lt;h2 id="读完能回答什么">读完能回答什么&lt;/h2>
&lt;ul>
&lt;li>神经假名汉字转换（Neural Kana-Kanji Conversion, NKCC）和传统 IME 的本质差异&lt;/li>
&lt;li>Karukan 的 5 个 crate 是怎么分层的——从 fcitx5 前端到 llama.cpp 推理&lt;/li>
&lt;li>怎么用 GPT-2 模型做&amp;quot;假名 → 汉字&amp;quot;实时转换——live conversion 怎么工作&lt;/li>
&lt;li>Context-aware 转换：为什么 NKCC 比传统 IME 强&lt;/li>
&lt;li>用户转换学习（learning）是怎么实现&amp;quot;用户习惯记忆&amp;quot;的&lt;/li>
&lt;li>Sudachi 系统词典的索引结构 + Mozc 候选改写器移植&lt;/li>
&lt;li>emoji 输入的两种 trigger 机制：假名读音 vs Slack 风 &lt;code>:trigger&lt;/code>&lt;/li>
&lt;li>怎么在自己的 Rust 项目里嵌入 Karukan 引擎做文本转换&lt;/li>
&lt;/ul>
&lt;h2 id="目录">目录&lt;/h2>
&lt;ol>
&lt;li>&lt;a href="#%e4%b8%ba%e4%bb%80%e4%b9%88%e5%8f%88%e6%9d%a5%e4%ba%86%e4%b8%80%e4%b8%aa%e6%97%a5%e8%af%ad-ime" rel="">为什么又来了一个日语 IME&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%e5%ae%9a%e4%bd%8d%e4%b8%8e%e6%a0%b8%e5%bf%83%e6%95%b0%e5%ad%97" rel="">定位与核心数字&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%e6%95%b4%e4%bd%93%e6%9e%b6%e6%9e%845-%e4%b8%aa-crate-%e7%9a%84%e5%88%86%e5%b1%82" rel="">整体架构：5 个 crate 的分层&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%e6%a0%b8%e5%bf%83%e6%9c%ba%e5%88%b6-1gpt-2-%e7%a5%9e%e7%bb%8f%e5%81%87%e5%90%8d%e6%b1%89%e5%ad%97%e8%bd%ac%e6%8d%a2" rel="">核心机制 1：GPT-2 神经假名汉字转换&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%e6%a0%b8%e5%bf%83%e6%9c%ba%e5%88%b6-2%e7%94%a8%e6%88%b7%e8%bd%ac%e6%8d%a2%e5%ad%a6%e4%b9%a0" rel="">核心机制 2：用户转换学习&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%e6%a0%b8%e5%bf%83%e6%9c%ba%e5%88%b6-3%e7%b3%bb%e7%bb%9f%e8%af%8d%e5%85%b8%e4%b8%8e%e5%80%99%e9%80%89%e6%94%b9%e5%86%99" rel="">核心机制 3：系统词典与候选改写&lt;/a>&lt;/li>
&lt;li>&lt;a href="#emoji-%e8%be%93%e5%85%a5%e5%8f%8c-trigger-%e6%9c%ba%e5%88%b6" rel="">emoji 输入：双 trigger 机制&lt;/a>&lt;/li>
&lt;li>&lt;a href="#linux-%e5%89%8d%e7%ab%affcitx5-addon--c-ffi" rel="">Linux 前端：fcitx5 addon + C FFI&lt;/a>&lt;/li>
&lt;li>&lt;a href="#macos-%e5%89%8d%e7%ab%afswift--inputmethodkit" rel="">macOS 前端：Swift + InputMethodKit&lt;/a>&lt;/li>
&lt;li>&lt;a href="#karukan-cli-%e5%b7%a5%e5%85%b7%e9%93%be" rel="">karukan-cli 工具链&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%e5%85%b8%e5%9e%8b%e9%97%ae%e9%a2%98%e4%b8%8e%e8%be%b9%e7%95%8c" rel="">典型问题与边界&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%e9%80%82%e7%94%a8%e4%ba%ba%e7%be%a4" rel="">适用人群&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%e5%9c%ba%e6%99%af%e9%97%ae%e7%ad%94faq" rel="">场景问答（FAQ）&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%e8%87%aa%e6%b5%8b%e9%a2%98" rel="">自测题&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%e7%bb%83%e4%b9%a0" rel="">练习&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%e8%bf%9b%e9%98%b6%e8%b7%af%e7%ba%bf" rel="">进阶路线&lt;/a>&lt;/li>
&lt;li>&lt;a href="#%e6%80%bb%e7%bb%93" rel="">总结&lt;/a>&lt;/li>
&lt;/ol>
&lt;hr>
&lt;p>如果你在 Linux/macOS 上做日语输入，你大概率在用：&lt;/p></description></item></channel></rss>