Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feature request: 用 lua_filter 固定字词的顺序 #586

Closed
Anber55 opened this issue Dec 22, 2023 · 28 comments · Fixed by #656
Closed

feature request: 用 lua_filter 固定字词的顺序 #586

Anber55 opened this issue Dec 22, 2023 · 28 comments · Fixed by #656
Labels
enhancement New feature or request

Comments

@Anber55
Copy link

Anber55 commented Dec 22, 2023

大佬,想请教2个问题:

1、例如在雾凇拼音里,与和于的自重分别是:
于 yu 3614992
与 yu 2104552
如果以我的习惯来说,让「与」出现在候选的前面,「于」出现在候选的后面
我暂时想到的有2种调整方法:
①在custom_phrase.txt里调整,在但大佬写的备注里面看到,只能固定非完整编码,这样的话只有打「y」才会固定它俩的位置,打「yu」却不能
②在cn_dicts里面新建一个buchong.dict.yaml文件,放在rime_ice.dict.yaml的最前面,里面放上自己设置的补充字词,例如:
于 yu 3614992
与 yu 3704552
但是不知道这样做是否会有其他的一些不好的影响

2、写入custom_phrase.txt的字词,例如[哪里 nl 9],是不是输入nl或nali都不能进入自造词

感谢大佬

@iDvel
Copy link
Owner

iDvel commented Dec 22, 2023

custom_phrase.txt 翻译器不和拼音翻译器互相造句,所以不建议写完整编码,不然包含此完整编码的字无法参与造词了。

插入一个新词库的方式其实也没用,因为「yu 于 与……」是参与调频的,不能保证每次都是某一个在前面。

Rime 本身没有这种配置,如果需要固定字词的顺序,且不影响造词,需要用一个 lua_filter 调整顺序。

@iDvel
Copy link
Owner

iDvel commented Dec 22, 2023

我也不会 Lua,都是问 ChatGPT 的,和目前的长词优先的逻辑应该差不多的,有空我研究研究啊,或者谁会可以帮写一个。

@iDvel iDvel changed the title 关于调整自重和自造词的问题 feature request: 用 lua_filter 固定字词的顺序 Dec 22, 2023
@iDvel iDvel added the enhancement New feature or request label Dec 22, 2023
@Anber55
Copy link
Author

Anber55 commented Jan 14, 2024

是的,主要在于custom_phrase.txt影响造词,不然就利用它来控制了

@iDvel
Copy link
Owner

iDvel commented Jan 14, 2024

想到了一个不太完美的简单 workaround

https://github.com/mirtlecn/rime-ice-fork/blob/workaroud_586/lua/custom_phrase_filter.lua#L1C1-L16C28

在造词的时候禁用 custom_phrase 候选,就能在 custom_phrase 内输入全码调整字频,并且不影响造词。

不完美的地方是,custom_phrase 内的字频调整无法在造词的时候作用(其实目前的设置下,custom_phrase 内的简码字频调整也不能影响造词时的第一个汉字)

卧槽,竟然这么简单吗。。。

@Anber55
Copy link
Author

Anber55 commented Jan 15, 2024

大佬整合一下我还没想到具体咋整

@iDvel

This comment was marked as resolved.

@iDvel iDvel closed this as completed in 4b166f6 Jan 15, 2024
@iDvel

This comment was marked as outdated.

@iDvel iDvel reopened this Jan 31, 2024
@iDvel

This comment was marked as outdated.

@iDvel
Copy link
Owner

iDvel commented Jan 31, 2024

经过 simplify 繁简转化处理过的候选判断其原候选,然后在结尾转化回 shadowcandidate 应当就能处理

没搞明白怎么写,我 push 上来了,你可以看一下嘛。

另外发现一个诡异的问题,我只给全拼写了一些,双拼的 pin_cand_filter: 配置都留空了,结果切换几次方案后会串台,给全拼写的置顶双拼用了,切几次后全拼的置顶没了。全部都不留空的话倒没问题。

@mirtlecn mirtlecn mentioned this issue Feb 1, 2024
@Anber55
Copy link
Author

Anber55 commented Feb 1, 2024

请问这个lua是不是不能输入实际打不出来的词,例如我的仓输入法用的是雾凇方案,ee打不出来嗯嗯,用这个lua也无法置顶这个词,所以来问一下~

@iDvel iDvel closed this as completed in #656 Feb 2, 2024
@iDvel
Copy link
Owner

iDvel commented Feb 2, 2024

请问这个lua是不是不能输入实际打不出来的词,例如我的仓输入法用的是雾凇方案,ee打不出来嗯嗯,用这个lua也无法置顶这个词,所以来问一下~

是的,只是对已有候选项做个排序。

@Anber55
Copy link
Author

Anber55 commented Feb 2, 2024

请问有没有办法实现这个功能,就是对不在候选的词做排序,或者嗯嗯如何通过ee打出来

@iDvel
Copy link
Owner

iDvel commented Feb 2, 2024

加上了 7ff9e64
创建 custom_phrase_t9.txt 写入:

嗯嗯	33

@Anber55
Copy link
Author

Anber55 commented Feb 2, 2024

谢谢,我试了一下,使用这个lua,英文也不能置顶,只有可以打出的中文才可以置顶,这个lua能不能实现类似custom_phrase.txt的功能而且可以造词

@iDvel
Copy link
Owner

iDvel commented Feb 2, 2024

这个 lua 就是单纯做排序。
英文也可以排序,比如 - chrome ChromeOS
要自定义短语就写到 custom_phrase 里,还要能造词就写到拼音词库里。

@Anber55

This comment was marked as outdated.

@iDvel

This comment was marked as outdated.

@Anber55
Copy link
Author

Anber55 commented Feb 2, 2024

大佬,再请教一个问题,我这样设置后,打出的结果是下面图片的样子,而不只Mac在前
IMG_0225
IMG_0226

@Anber55
Copy link
Author

Anber55 commented Feb 2, 2024

还有就是我通常是用每个字的首字母打字,但是在lua里设置首字母置顶好像不行,例如:

  - bs	不是

@iDvel
Copy link
Owner

iDvel commented Feb 2, 2024

你先不要折腾太多了,我晚上得改一改这个逻辑,有点问题,可能写法会变。

@Anber55
Copy link
Author

Anber55 commented Feb 2, 2024

好的,感谢大佬,等大佬写好了我再测试

@Anber55
Copy link
Author

Anber55 commented Feb 2, 2024

大佬,已经更新了,现在没啥大问题,就是一个小问题,如果一个英文单词带有空格,没办法调整词序,例如Quantumult X,我试了"Quantumult X"也不行

@iDvel
Copy link
Owner

iDvel commented Feb 3, 2024

如果一个英文单词带有空格,没办法调整词序

词汇有空格的用 " > " 分割,示例:

- google	Google Maps > Google > Google Calendar

2024-02-03-002420

不过这只针对单一编码的情况,否则需要写好几份。英文还有补全的,纯英文之间调频直接在英文词库里用权重固定比较好。

@zhjh0521
Copy link

zhjh0521 commented Feb 4, 2024

现在啥情况?更新了以后,在新版里面,custom_phrase之前我自己定义的权重都不起作用了。比如之前我定义的“谢谢 xx 3”,以前我输入xx,第一个就会出现“谢谢”,然后是“想想 想象”。但现在无论我怎么改权重,“谢谢”只会出现在“想想 想象”后面

@iDvel

This comment was marked as outdated.

@zhjh0521

This comment was marked as outdated.

@iDvel
Copy link
Owner

iDvel commented Feb 4, 2024

custom_phrase 置顶,你在 custom_phrase 里写了 的 de,输入 de 时「的」排在了候选项最前面;
接着经过去重,让拼音翻译器本身的「的」没了,只保留了 custom_phrase 的「的」。
由于两个翻译器之间无法造词,所以「的」这个字失去了造词效果,因此之前建议只写非完整拼音的编码,如 的 d

现在由 pin_cand_filter 置顶,这个 Lua 仅仅是调整候选项的顺序(没有创造词汇编码的功能),你的「的」仍然是拼音翻译器本身的「的」,可以造词,可以写完整拼音,更好了些。

「把编码一致的删了」是说如果你在 pin_cand_filter 置顶了 - d 的 地 得 🉐
那就把 custom_phrase 里的 的 d 给删了,不然置顶上来的不是拼音翻译器自己的。

pin_cand_filter 的配置在方案里如 rime_ice.schema.yaml,补丁就是你用的方案的补丁如 rime_ice.custom.yaml
双拼就是对应的双拼。

书写方法我晚些补上,双拼有些不一样。

@zhjh0521
Copy link

zhjh0521 commented Feb 4, 2024

custom_phrase 置顶,你在 custom_phrase 里写了 的 de,输入 de 时「的」排在了候选项最前面; 接着经过去重,让拼音翻译器本身的「的」没了,只保留了 custom_phrase 的「的」。 由于两个翻译器之间无法造词,所以「的」这个字失去了造词效果,因此之前建议只写非完整拼音的编码,如 的 d

现在由 pin_cand_filter 置顶,这个 Lua 仅仅是调整候选项的顺序(没有创造词汇编码的功能),你的「的」仍然是拼音翻译器本身的「的」,可以造词,可以写完整拼音,更好了些。

「把编码一致的删了」是说如果你在 pin_cand_filter 置顶了 - d 的 地 得 🉐, 那就把 custom_phrase 里的 的 d 给删了,不然置顶上来的不是拼音翻译器自己的。

pin_cand_filter 的配置在方案里如 rime_ice.schema.yaml,补丁就是你用的方案的补丁如 rime_ice.custom.yaml。 双拼就是对应的双拼。

书写方法我晚些补上,双拼有些不一样。

懂了,谢谢

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants