Files
fanlusky d30d2946e4 feat(installer): 打包时生成并安装词格语言模型 sc.lm
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。
安装脚本无需改动,它已按通配收集资源目录。产物与语料不进仓库,只进锁与声明。
2026-09-19 10:08:39 +08:00

18 lines
997 B
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 语言模型 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` 不覆盖也不重新授权上述第三方数据。