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

增加自造词的废词自动清理能力 #957

Open
sbxlm opened this issue Dec 6, 2024 · 4 comments
Open

增加自造词的废词自动清理能力 #957

sbxlm opened this issue Dec 6, 2024 · 4 comments

Comments

@sbxlm
Copy link

sbxlm commented Dec 6, 2024

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
Rime的自动造词是通过枚举方式进行的,再加上因为同音字等而造成的一字多码,就可能出生大量用户用不着的废词。例如,在声笔飞码中,输入「声」「笔」「系」「列」「码」后,可能生成的词组为「声笔」「笔系」「系列」「列码」「声笔系」「笔系列」「系列码」「声笔系列」「笔系列码」「声笔系列码」。如果有同音字的话,每个词都可能产生多个编码。这些新造的词中,大部分都不是用户需要的,从而成为废词。这还是在最大造词长度设置为5的时候,如果设置为6或者更大,那么废词还会爆炸式地增长。废词太多的话,让有的用户看着不舒服,还占用了大量的空间,更重要的是会降低输入法的读写和检索速度,影响到用户的输入效率。
Describe the solution you'd like
A clear and concise description of what you want to happen.
有没有办法对废词进行清理呢?办法肯定是有的,只是不同的方法,付出的成本或代价不一样。最笨的办法是通过Rime的词典管理工具,将用户词典导出,然后手动删除那些不需要的临时词组(即废词)。这种方式工作量巨大,恐怕没有人愿意这么干。而且,在手机上没法进行这项工作。另一种思路就是,开发一个工具来批量地删除废词。但是,以什么标准来确定一个临时词组是废词呢?首先想到的可能是时间。然而,人们使用输入法的频繁程度是不一样的。有的人一个月只有千字的输入量,而有的人一个月可能有上百万字的输入量,显然以时间作为标准是不适合的。
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
输入量是可以作为一个依据来删除废词的。怎么样才能知道用户的输入量呢?幸好,Rime记录了一个tick值,它会在用户每一次上屏输入内容都自动加1,用户词典还有个tick累计值。累计的tick值与词条的tick之差就反映了词条使用的频繁程度,该差值越小就说明词条使用越频繁,而差值越大就说明词条用得越少。因此,可以将tick差值作为一个阈值来控制废词清理的强度,通过运行一个工具软件来删除那些大于此阈值的临时词组。这样就比导出用户词典来用编辑器逐个删除不需要的词条方便多了。美中不足之处是,工具的运行还是得手动进行。能不能再进一步,在用户没有感觉的情况下实现全自动的废词清理呢?能!然而,Rime现在是没有办法直接实现这一点的,需要修改其后端引擎librime的源代码才能实现。
Additional context
Add any other context or screenshots about the feature request here.
v2-1c1a7e653c9626d8f95014b57030eb37_720w

@lotem
Copy link
Member

lotem commented Dec 10, 2024

不用這麼麻煩,關閉自動造詞即可。

自動產生的備選詞需要用家再選過一次才正式記錄爲用戶詞。
要備選詞積累詞頻,就意味着不能很快清除掉。
可以優化的是將自動造詞結果作爲候選詞展示出來的條件。

@sbxlmdsl
Copy link

sbxlmdsl commented Dec 16, 2024

关闭自动造词,就不能享有方便的造词功能,这不是希望的结果。词频的累计对希望成为正式词组的临时词有效,但是绝大多数的临时词是永远都不需要的。rime对这些词又没清除机制,长期积累的话,对性能影响是很大的。仅仅优化展示条件只是治标不治本的手段。

@lotem
Copy link
Member

lotem commented Dec 17, 2024

想要造詞,又不讓詞典記錄,那只能手動造詞啊。

@sbxlmdsl
Copy link

既要造词,又要记录,还要不让垃圾积累:)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants