yagamil 发表于 2025-1-1 00:57:58

rime输入法添加语言模型支持

感谢 @ous50 开放这个版块,2025新年快乐!语言模型可以让造句更加符合习惯,参考(https://www.v2ex.com/t/1097614?p=1#reply15),没有语言模型的情况下基本就是胡乱组词。

语言模型和输入方案是解耦的,可以使用自己习惯的rime-ice/rime-frost等方案,然后:

## 下载模型

在(https://github.com/amzxyz/RIME-LMDG/releases)下载模型。

> 模型文件版本说明:v是版本号,n是模型级别,m是百兆尺寸
>
> | 文件大小 | 2级模型 | 3级模型 |
> | -------- | ------- | ------- |
> | 100M   | v1n2m1| v1n3m1|
> | 200M   | v1n2m2| v1n3m2|
> | 300M   | v1n2m3| v1n3m3|

这里的模型级别指训练时着重训练的几个字:

> 多级 n-gram 语言模型 在大规模数据的支持下,我们采用了 n-gram 模型进行多级语言建模。具体包括了 unigram(单字模型)、bigram(双字模型)、trigram(三字模型)以及更高级的四字模型。

个人使用可以用n3,如果电脑性能不佳感觉卡顿,可以切换到n2(在作者的[另一个方案](https://github.com/amzxyz/rime_wanxiang_pro/blob/main/amz-v3n2m1-zh-hans.gram)中,上传有v3n2的模型)。

## 更新配置文件

### 找到使用的方案

打开你的Rime配置文件路径/用户文件夹,将下载好的模型文件 amz-v*n*m*-**.gram 放到其中。这里我下载的模型是 amz-v2n3m1-zh-hans

Windows上可通过右键托盘小狼毫图标-用户文件夹打开(一般为 %AppData%\Roaming\Rime );MacOS上一般为 ~/Library/Rime 。

然后打开你使用的配置文件 default.custom.yaml (或 default.yaml ,当两个文件都存在时以 custom.yaml 为优先),寻找其中 schema_list: 下面的内容。

比如我的 default.custom.yaml 就是这部分:

```
patch:
schema_list:
    - {schema: rime_frost_double_pinyin_flypy}
```

说明我只用了 rime_frost_double_pinyin_flypy 这一个方案。

以默认的 default.yaml 为例,它是这样的:

```
schema_list:
# 可以直接删除或注释不需要的方案,对应的 *.schema.yaml 方案文件也可以直接删除
- schema: rime_frost             # 白霜拼音(全拼)
- schema: rime_frost_double_pinyin          # 自然码双拼
- schema: rime_frost_double_pinyin_mspy   # 微软双拼
- schema: rime_frost_double_pinyin_sogou    # 搜狗双拼
- schema: rime_frost_double_pinyin_flypy    # 小鹤双拼
```

说明它启用了这五个方案(不列举了)。

## 更新方案配置文件

总之找到你要用的方案名称,然后对该配置文件打补丁。以 rime_frost_double_pinyin_flypy 方案为例,打开或新建 rime_frost_double_pinyin_flypy.custom.yaml 文件,然后在文件末尾加上这几行:

```
patch:
grammar:
    language: amz-v2n3m1-zh-hans
    collocation_max_length: 5
    collocation_min_length: 2
translator/contextual_suggestions: true
translator/max_homophones: 7
translator/max_homographs: 7
```

其中 amz-v2n3m1-zh-hans 为下载好的模型文件名(无后缀名)。然后保存,重新部署,便能享受语言模型了。

## 效果展示

### 渐渐地就不在意了

使用前:

!(https://s2.loli.net/2024/12/14/MRPXo1cObLyfDwW.png)


(「不/在意/了」被理解成了「不再/一乐」)

使用后:


!(https://p.sda1.dev/20/bdbf9bbcdcdde62b0ca2f028e7cc971e/1.webp)

**以前就会这样**

使用前:

!(https://s2.loli.net/2024/12/14/Y4N5CSKGTzm7oew.png)


(「以前/就会」被理解成了「一千九/会」)

使用后:

!(https://p.sda1.dev/20/7793862a47af23c9c149dfc37d3c45fe/2.webp)

**不管怎么使劲都不行**

使用前:

!(https://s2.loli.net/2024/12/14/h6S7y1X32WHCigs.png)


(「不管怎么/使劲/都/不行」 => 「不管怎么/是/筋斗/不行」)

使用后:


!(https://p.sda1.dev/20/891faeb694c26acf4885c68dc650b1cc/3.webp)

**无论如何你都不可能再离开这里了**

使用前:

!(https://s2.loli.net/2024/12/14/FRSr3BV6IZNY9J2.png)


(「离开/这里/了」 => 「离开/这/离了」)

使用后:



!(https://p.sda1.dev/20/fd570045406dedd406a42bfa5b4e506a/4.webp)

ous50 发表于 2025-1-1 11:41:10

谢谢,祝你新年快乐:)
如有需要可以和管理员提议自己想要有的模块,我们会在适当时候开启。
你的这个 Rime-frost 方案很有新意。我已经用了rime好多年,一直受限于其词库问题而只能用地球拼音。这些可以试试看了)

chx0713 发表于 5 天前

还没用过,可以去试试
页: [1]
查看完整版本: rime输入法添加语言模型支持