zhuangzhemin / Rime

流星追月的Rime输入法配置
25 stars 2 forks source link

能否帮忙实现一个lua单字排序的插件 #1

Open blackhole889 opened 2 years ago

blackhole889 commented 2 years ago

使用形码时单字排序可能是乱的,网上有使用lua实现单字排序,但我没有使用成功。 https://github.com/hchunhui/librime-lua/issues/159 你能否看看把它实现一下,这个很有用。

zhuangzhemin commented 2 years ago

使用形码时单字排序可能是乱的,网上有使用lua实现单字排序,但我没有使用成功。 hchunhui/librime-lua#159 你能否看看把它实现一下,这个很有用。

想要实现什么样的效果?有例子可以截图说明一下吗?谢谢!

blackhole889 commented 2 years ago

图片 正确的效果如下 图片

blackhole889 commented 2 years ago

问题可以参见下面的讨论 https://github.com/rime/home/issues/1046

zhuangzhemin commented 2 years ago

图片 正确的效果如下 图片

我这边测试下来的效果是: image

这个应该是按照词频/用户词频排序的。

blackhole889 commented 2 years ago

你这个是拼音吧,拼音没有问题。

blackhole889 commented 2 years ago

mac下使用最新的librime形码排序也没有问题,windows下liberime没有更新,所以有问题。

zhuangzhemin commented 2 years ago

你这个是拼音吧,拼音没有问题。

我是小鹤双拼、双拼+形码、全拼、英文都混合在一起的。

zhuangzhemin commented 2 years ago

mac下使用最新的librime形码排序也没有问题,windows下liberime没有更新,所以有问题。

如果是librime版本的问题,可以到librime Github Releases下载编译好的带插件的新版本librime补丁

小狼毫Github Releases下载安装小狼毫 从librime Github Releases下载编译好的带插件的新版本librime补丁 如果正在使用小狼毫的话,先“退出算法服务”,以便更新补丁 把补丁包解压出来的rime\dist\bin\rime_patch.exe文件复制到weasel-0.14.3安装目录,双击执行 把补丁包解压出来的rime\dist\lib\rime.lib和rime\dist\lib\rime.dll复制到weasel-0.14.3安装目录

blackhole889 commented 2 years ago

形码加全拼,排序也正确,带来的问题是反查时有全拼和形码两个编码输出。我想仅仅使用形码实现字的正确排序。

blackhole889 commented 2 years ago

windows下liberime没有更新,没有用,我试过。你也可以把你的方案改为只有形码看看字的排序。

zhuangzhemin commented 2 years ago

形码加全拼,排序也正确,带来的问题是反查时有全拼和形码两个编码输出。我想仅仅使用形码实现字的正确排序。

我的方案没有做多重反查,看上去没有这个问题。排序看的是词频。

zhuangzhemin commented 2 years ago

windows下liberime没有更新,没有用,我试过。你也可以把你的方案改为只有形码看看字的排序。

我试了下只有单字形码(没有兼容全拼)的方案,加形码之后候选字如下: image

全拼和小鹤音形混合输入的结果如之前答复。

blackhole889 commented 2 years ago

我使用双拼,qian的双拼是qm,使用的是自然码。你可以用双拼打qian,就可以看见字的排序了,不要加形。

zhuangzhemin commented 2 years ago

只用双拼,不加形码的话,我这边是这样的: image

blackhole889 commented 2 years ago

我的形码里用了;,估计它改变了字的排序。 我 wo;pd 是 ui;rv 是 ui;ov 是 ui;op 是 ui;rp 在 zl;ut 在 zl;tu 在 zl;ta 你 ni;re

zhuangzhemin commented 2 years ago

我的形码里用了;,估计它改变了字的排序。 我 wo;pd 是 ui;rv 是 ui;ov 是 ui;op 是 ui;rp 在 zl;ut 在 zl;tu 在 zl;ta 你 ni;re

我也用了“;"区分音码和形码。

---
name: flypy_chars
version: "2020.03.19"
sort: by_weight
use_preset_vocabulary: false
...

的   de;bu   100
了   le;vl   86
我   wo;pd   83
是   ui;or   83
在   zd;ut   81

我怀疑我们这个差别的原因:

  1. dict词库我没有使能use_preset_vocabulary
  2. 我调整了单字的字频,上限归一化压到100,这样字频和其它词频的词频可以相互比较,避免某个dict文件词频绝对数值相对其它dict文件大太多,排序时都是这个dict的候选排到最前面
  3. 我做了一些拼写运算,把”;"分隔符去掉,这样输入形码的时候方便点
    - derive/^(\w+);(\w)(\w)$/$1$2$3/  # Flypy: ABCD
    - derive/^(\w+);(\w)(\w)$/$1$2`/   # Flypy: ABC`
    - derive/^(\w+);(\w)(\w)$/$1`$3/   # Flypy: AB`D
    - derive/^(\w+);(\w)(\w)$/$1``/    # Flypy: AB``
    - derive/^(\w+);(\w)(\w)$/$1$2/    # Flypy: ABC
    - xform/^(\w+);(\w)(\w)$/$1/       # Flypy: AB
    - xform/^~//                   # 把“~”开头的原始(全拼)编码还原回来
blackhole889 commented 2 years ago

你系统是win还是mac?

zhuangzhemin commented 2 years ago

你系统是win还是mac?

电脑是Windows 10,手机是Android

blackhole889 commented 2 years ago

我在win10使用你的flypy_chars方案,打单字,从librime Github Releases下载编译好的带插件的新版本librime补丁/lib/rime.dll和rime.lib,排序不正确。 图片

blackhole889 commented 2 years ago

在mac下由于liberime更新了,单字排序是正确的。

zhuangzhemin commented 2 years ago

我在win10使用你的flypy_chars方案,打单字,从librime Github Releases下载编译好的带插件的新版本librime补丁/lib/rime.dll和rime.lib,排序不正确。 图片

我可以复现你的结果,用flypy_chars打qm确实候选字排序不符合预期。但是我的主方案就没有这个问题。遗憾的是,我还没对比出哪里的设置导致这个差异。后面再找时间研究下。

blackhole889 commented 2 years ago

你可以参考这里的方法 https://github.com/hchunhui/librime-lua/issues/159

edison0808 commented 1 year ago

后面联想的词语是不是有点不太符合习惯?可以修改么,一般后面应该是由用户自己选择qi和fa的单字来组合吧? image

HowcanoeWang commented 1 year ago

你这个是拼音吧,拼音没有问题。

我是小鹤双拼、双拼+形码、全拼、英文都混合在一起的。

考虑一下试试我写的这个插件?使用形码进行快速筛选候选项,目前形码还是自然码,复制替换一个小鹤的应该不是很难

HowcanoeWang/rime-lua-aux-code: RIME输入法辅助码音形分离插件