sc.lm 此前只能手工投放,重装即失效,发布包里也没有它。这里把它变成一个被钉住、 可复现、自动参与打包的产品输入。 它不走词库那条路:词库 release 由本仓库之外的构建器产出,资产集合和摘要在产品锁 里逐一钉死,加一项要对方先发新版。改为独立钉住上游语料,与 libime 自己的做法一致。 - language-model/lock.json 钉住上游 URL、语料摘要、转换参数和产物摘要。转换是 确定性的(已在 MSVC 14.44 与 14.50 两套工具链上验证产物摘要一致),所以产物 摘要可以像下载摘要一样钉死。 - scripts/build-language-model.ps1 下载、校验、转换、再校验,写临时文件后改名, 中途失败不会留下摘要对不上的 sc.lm。幂等,摘要对得上直接返回。 - 它只 configure engine/ngram 一个目录,不拉 vcpkg 和 SQLite:转换工具只依赖 kenlm 自己,而打包机上未必装得起引擎的全部依赖。 - Invoke-LocalTest.ps1 打完整包前自动调用它,轻量包本就不带数据文件,不调。 - 打包脚本只断言文件存在,摘要由构建脚本负责,与词库交给 product_lock.py 校验 的分工一致。缺模型让打包失败而不是跳过:引擎对缺模型是静默降级的,运行期不会 暴露,打包是唯一拦得住的地方,package-files.ps1 为此加了反向用例。 模型是 LGPL-2.1-or-later 的第三方数据,声明随之安装为 libime-lm-NOTICE.md。 安装脚本无需改动,它已按通配收集资源目录。产物与语料不进仓库,只进锁与声明。
18 lines
997 B
Markdown
18 lines
997 B
Markdown
# 语言模型 sc.lm 的来源与许可
|
||
|
||
本产品安装的 `sc.lm` 是一个中文三元语言模型,用于给输入法的整句候选打分。
|
||
|
||
它由 libime 发布的语料模型 `lm_sc.arpa` 转换而来,转换不改变模型内容,只是把
|
||
ARPA 文本格式压缩成 kenlm 的量化 trie 二进制格式。
|
||
|
||
- 上游项目:libime — https://github.com/fcitx/libime
|
||
- 数据来源:https://download.fcitx-im.org/data/lm_sc.arpa-20260629.tar.zst
|
||
- 版权:Copyright (C) 2022~2026 CSSlayer <wengxt@gmail.com>
|
||
- 许可:GNU Lesser General Public License, version 2.1 or later (LGPL-2.1-or-later)
|
||
|
||
LGPL-2.1 的完整正文随本产品一同安装,见 `THIRD_PARTY_NOTICES.txt` 中 kenlm 一节
|
||
所附的许可证全文;该正文同样适用于本模型数据。
|
||
|
||
读取该模型的代码是 kenlm(https://github.com/kpu/kenlm),其来源、裁剪范围与许可
|
||
另见 `THIRD_PARTY_NOTICES.txt`。仓库根 `LICENSE` 不覆盖也不重新授权上述第三方数据。
|