语言工程 · 研究软件 · Java 与 Python

Radixor

一个确定性的多语言词干处理器,把形态学词典编译成紧凑、可执行的转换。语言知识在离线阶段准备;在线搜索路径执行不可变的编译模型,而不是逐条查询大型文本字典。

20种语言评估标准集合中的独立版本化默认模型
6.61M表层词形二十语言关系评估中的不同词形
99.9988%精确率20 种语言确定性 pairwise 结果的汇总精确率
83.4%更小从词汇载荷到编译 v7 载荷的总体字节缩减

把形态学编译成搜索原语

最初的 Egothor 思想是:从词汇证据学习转换,而不是为每一种语言手写一套词干规则程序。Radixor 在此基础上补全了显式归约语义、不可变运行时结构、版本化二进制持久化、确定性歧义处理,以及互操作的 Java/Python 运行时。

形态学词典已观测词形与规范形式 Patch 归纳最小代价可执行编辑 频率 trie证据与备选项 归约语义共享与收缩 编译模型不可变运行时查询

Patch 不是预先存储的最终答案,而是一条把输入词形转换为规范表示的指令。这使来自许多词汇家族的证据可以共享结构,也让编译器能够在平面“词 → 输出”映射之外泛化相容的转换。

一个引擎,多种语言

运行时与具体语言无关。语言知识通过版本化模型数据进入系统,因此新增或改进语言主要是模型编译问题,而不是再写一套源代码算法。

保留歧义

同一模型既可以给出一个首选结果,也可以按确定顺序给出所有本地支持的候选项。下游搜索系统决定要激活多少歧义。

构建阶段复杂,运行阶段简单

归纳、归约和验证离线完成。生产查询只需遍历冻结模型并把编译 patch command 应用于 token。

模型制品是一等对象

语言模型是独立版本化、可做完整性检查的部署制品,而不是隐藏在单一可执行文件中的资源。

Java 与原生 Python

项目提供 Java 集成和原生 Python/Rust 运行时,它们使用同一版本化编译模型概念。

受控扩展

已编译 Java 模型可以重新打开为 builder,加入领域证据,再重新构建、测试并作为新制品部署,而不是在生产中实时修改。

实际测量了什么

2026 年二十语言研究把形态学合并关系作为评估对象。用直观语言说,它在非常大的规模上问两个问题:应该归在一起的词形是否真的归在一起?不相关的词形是否仍保持分离? 它并不要求每个系统把输出拼写成某个指定词典词元。

二十语言评估

从数百万词形到数万亿 pair 决策

评估使用独立整理、源自 UniMorph 的词形范式,并统计确定性词干处理所诱导的关系。这样就能测量错误合并和遗漏合并,而不会把词干字符串本身与词干质量混为一谈。

767,167形态学组
6,607,708不同词形
130.2M相关词形 pair
3.052T不相关词形 pair
314已验证场景
20默认语言模型

用实际意义理解质量结果

20 种语言中的 15 种在确定性首选输出中没有产生任何 false-positive 合并。
1,538 个 false-positive pair对应超过 3.052 万亿个不相关 pair 的总体空间。
97.5952% recall二十语言确定性输出的汇总召回率。
20 种语言中 12 种达到完全关系在能力分析中考虑所有显式保留的 Radixor 候选项时。

候选感知结果对于理解设计尤其有用。一个上下文无关词干器必须在真正存在形态学歧义时仍然选出一个结果。Radixor 先保留替代证据;索引器、查询扩展器或上下文层随后再选择适合具体应用的策略。

这些数字说明什么,也不说明什么。 它们衡量的是对可用、独立整理的形态学资源的忠实程度。同一资源也用于编译 Radixor 模型,因此这是端到端知识利用实验,而不是对完全缺失于资源中的词汇家族进行预测的实验;它本身也不声称一定提高 MAP、nDCG 或其他外部检索指标。

用紧凑模型代替实时字典查询

源词典很有价值,因为它们包含学术整理的形态学证据;但它们并不需要继续成为运行时表示。Radixor 把这些证据蒸馏成 patch program 和归约 trie。

编译表示

99.92 MB 词汇证据变成 16.55 MB 编译模型数据

基于解压后的载荷测量,不含外层 GZip 封装和包元数据。在全部 20 个模型上,编译 v7 流平均占 2.50 bytes/评估词形,而源载荷为 15.12 bytes。

6.04× 总体源/模型比例 · 83.4% 字节缩减

可见的“知识—质量—成本”包络

另一个英语实验故意只使用不同百分比的确定性词典行来编译模型,然后用完整资源评估。目的不是寻找一个“神奇”的词典大小,而是展示当知识被移除时真正牺牲了什么。

使用的词典行精确一致 · 所有词形精确一致 · 变化词形变化词形运行时间
100%97.478%97.197%71.6 ns/token
50%95.262%86.107%61.1 ns/token
10%92.868%76.516%47.0 ns/token

绝对延迟与机器和工作负载有关。这条曲线更适合作为工程说明:移除词汇证据主要损害需要实际转换的词形,而运行时间变化较小,也并不严格单调。

本站的性能呈现方式。 Radixor 运行时间采用文档化的绝对测量,并与工作负载或质量上下文一起展示。这里刻意不使用较早版本针对 Porter/Snowball 的标题式倍数比较;基准设计已经演进,而当 token 构成和测量路径不同时,跨实现速度倍数很容易被过度解释。

二十种默认语言

用视觉方式浏览标准集合,比单纯一串语言名称更容易理解覆盖范围。

🇨🇿
捷克语cs · 默认模型
🇩🇰
丹麦语da · 默认模型
🇳🇱
荷兰语nl · 默认模型
🇬🇧 🇺🇸
英语en · US/UK 词汇基础
🇫🇮
芬兰语fi · 默认模型
🇫🇷
法语fr · 默认模型
🇩🇪
德语de · 默认模型
🇮🇱
希伯来语he · 默认模型
🇭🇺
匈牙利语hu · 默认模型
🇮🇹
意大利语it · 默认模型
🇳🇴
挪威博克马尔语nb · 默认模型
🇳🇴
新挪威语nn · 默认模型
🇮🇷
波斯语fa · 默认模型
🇵🇱
波兰语pl · 默认模型
🇵🇹
葡萄牙语pt · 默认模型
🇷🇺
俄语ru · 默认模型
🇪🇸
西班牙语es · 默认模型
🇸🇪
瑞典语sv · 默认模型
🇺🇦
乌克兰语uk · 默认模型
YI
意第绪语这里使用语言标记而非国家旗帜

在国旗有助于快速定位时使用国旗;当使用某个主权国家旗帜可能造成误导时,则使用语言标记。

研究脉络与可复现性

Radixor 是一条始于 2001 年 Egothor 研究线的当代完成形态:从词汇样本推断紧凑的“词形 → 词干”编辑程序,把它们组织到 trie 中,并在搜索系统中执行结果模型。现代工作增加了显式语义归约、统一子树收缩、不可变编译表示、基于证据排序的候选项、模型溯源、Java/原生运行时互操作,以及达到发表级别的评估制品。

评估从设计上就是可审计的。模型标识符和描述符哈希与结果行一起记录;质量快照包含原始混淆计数和派生指标;生成的表格和图形可以从机器可读数据重新构建,而不是人工抄录。

项目资源