news 2026/9/11 14:31:31

agentmemory 中日韩语言支持完整指南:jieba 与 tiny-segmenter 分词器快速配置

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
agentmemory 中日韩语言支持完整指南:jieba 与 tiny-segmenter 分词器快速配置

agentmemory 中日韩语言支持完整指南:jieba 与 tiny-segmenter 分词器快速配置

【免费下载链接】agentmemory#1 Persistent memory for AI coding agents based on real-world benchmarks项目地址: https://gitcode.com/GitHub_Trending/age/agentmemory

如果你用agentmemory为 AI 编码智能体保存中文、日文或韩文记忆,你可能会发现:搜索怎么都搜不到。原因在于中日韩文字之间没有空格,普通分词会把整句话当成一个"单词"。agentmemory内置了 CJK 感知分词方案:中文用jieba@node-rs/jieba),日语用tiny-segmenter,一条命令即可完成配置,让 BM25 记忆搜索对中日韩文本真正生效。本文带你 5 分钟完成配置,并讲清它背后的工作原理。

为什么中日韩记忆"搜不到"?

agentmemory 的全文检索基于 BM25 倒排索引。英文靠空格切词天然适配,但"我们正在测试中文分词"这类中日韩文本没有空格,直接按空白切分会坍缩成一个超长 token——两个 token 集合永远无法重叠,搜索和记忆去重都会静默失效

agentmemory 通过一个共享分词模块解决这个问题:

  • 核心实现:src/state/cjk-segmenter.ts
  • BM25 索引接入点:src/state/search-index.ts
  • 记忆去重(Jaccard 相似度)接入点:src/state/schema.ts

三种语言,三种分词策略

agentmemory 用 Unicode 脚本检测自动识别文字类型,然后路由到对应的分词器:

语言分词器特点
🇨🇳 中文@node-rs/jieba原生 Rust 实现,无需下载模型
🇯🇵 日文tiny-segmenter纯 JavaScript,仅约 25 KB
🇰🇷 韩文内置规则按音节块拆分,零依赖

路由逻辑非常直接:识别到汉字走 jieba,识别到假名走 tiny-segmenter,识别到谚文走规则拆分。

一键配置:安装分词器的最快方法

两个分词器都被声明为可选依赖(见 package.json),基础安装保持轻量。需要启用时只需一条命令:

npm install @node-rs/jieba tiny-segmenter

没有安装会怎样?不会报错、不会中断——agentmemory 会"软降级"为整串切词(把连续的中日韩片段当作单个 token),并在标准错误输出中打印一次提示:

  • install @node-rs/jieba to improve Chinese search
  • install tiny-segmenter to improve Japanese search

看到这两行提示,就说明你的环境缺了分词器,装上即可。

配置生效后的实际效果

安装分词器后,BM25 索引在构建倒排表时会把中日韩片段切到词级(参见 src/state/search-index.ts 的tokenize流程)。项目自带的测试用例可以直观说明效果:

  • 存入标题「项目记忆存储」、叙事「我们正在测试中文分词」,搜索项目即可命中 ✅
  • 日文「プロジェクト記憶」与「日本語の分かち書き…」同样能按词检索 ✅
  • 韩文「프로젝트 메모리 저장소」搜索메모리精准命中 ✅
  • 中英韩混排abc 메모리 def 项目 ghi保持顺序切分为["abc", "메모리", "def", "项目", "ghi"]

对应回归测试见 test/search-index.test.ts。

去重也有加分项:即使分词器缺失导致整串切词,src/state/schema.ts 还会额外生成字符二元组(bigram)作为兜底信号——"北京"与"上海"零重叠,而近似字符串仍能重叠,去重功能不会静默失效。

细节设计:这些体验都是为你准备的

  • 懒加载 + 单例:分词器只在首次处理 CJK 文本时加载,非中日韩文本零开销;
  • 一次提示:缺依赖的提示只打印一次,不刷屏;
  • Viewer 搜索框支持 IME 组合:中日韩用户在可视化面板搜索时,输入不会被逐键打断(见 CHANGELOG.md 中的 IME 与 NFKC 全角归一化记录);
  • 全角/半角归一:面板搜索对 CJK 输入做 NFKC 归一化,「project」也能搜到 "project"。

常见问题速查

Q:只写中文记忆,需要装 tiny-segmenter 吗?不需要。两个分词器互不依赖,按需安装即可;中文只需@node-rs/jieba

Q:韩文为什么不需要装任何依赖?agentmemory 内置了基于音节块()的规则拆分,韩语词与音节一一对应,简单可靠。

Q:升级后搜索行为变了?查看 CHANGELOG.md 中"CJK tokenizer for BM25 search"相关条目,了解分词器从整句切词到词级切词的演进。

总结

要点说明
配置命令npm install @node-rs/jieba tiny-segmenter
核心模块src/state/cjk-segmenter.ts
缺依赖行为软降级 + 一次性 stderr 提示,不中断
覆盖语言中文 / 日文 / 韩文 + 混排文本

agentmemory 把中日韩支持做成了"可选项但零负担":不装也能跑,装上更聪明。一条命令,让你的 AI 编码智能体真正读懂中文、日文和韩文记忆。

【免费下载链接】agentmemory#1 Persistent memory for AI coding agents based on real-world benchmarks项目地址: https://gitcode.com/GitHub_Trending/age/agentmemory

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/4 1:05:30

Memory Graph与Memora对决:0.831背后的技术链路与复现指南

一个自研 memory graph 系统的 benchmark 结果最近被摆到了台面上:作者用自己实现的记忆图谱方案和 Memora 做同场评估,得到 0.831 vs 0.801。单看数字,领先只有 0.03,感觉不大,但这类系统的对比,真正的看点…

作者头像 李华
网站建设 2026/9/4 11:16:48

机器学习入门路线:系统化学习Python与线性代数,避免碎片化

我经常在技术社区看到这类求助:已经跟着视频学完了决策树,但面对一份真实数据时仍然不知道该先做哪一步。这不是个例,而是很多机器学习初学者的共同状态。原因其实不在努力程度,而在学习方式——大家普遍在用碎片化的方式啃机器学…

作者头像 李华
网站建设 2026/9/2 18:48:41

嵌入式处理器架构解析(十五)——NPU架构解析

❄️ 个人专栏: 《智能软件工程AI4SE》 《嵌入式面试总结》 《嵌入式处理器架构解析》 《嵌入式与虚拟化》 《嵌入式软件测试》 🌟 Simplicity is the ultimate sophistication 摘要:本文系统解析嵌入式处理器中神经网络处理器(NP…

作者头像 李华
网站建设 2026/9/1 23:30:07

MinerU 问题排查指南:从安装报错到解析调优的完整自救清单

MinerU 问题排查指南:从安装报错到解析调优的完整自救清单 【免费下载链接】MinerU Transforms complex documents like PDFs and Office docs into LLM-ready markdown/JSON for your Agentic workflows. 项目地址: https://gitcode.com/GitHub_Trending/mi/Mine…

作者头像 李华