请教:rime 配置文件 Speller 中 Algebra 的 fuzz 一个写法
rime吧
全部回复
仅看楼主
level 1
YQ_YSY 楼主
我使用 Rime 根据自己编排的码表,已经成功做出了“单手笔顺输入法(Rime版)”,能用数字小键盘打出汉字和词组。
现在我想使用 Rime 的 Speller 功能中 Algebra 的 fuzz 模糊派生运算,构成词组的简码,希望能以此提高词组的输入速度。
例如,在词库码表文件 one_hand.schema.yaml 里已经有这三个词组:
笔顺3767.322138
输入法773412.34.441954
笔顺输入法3767.322138.773412.34.441954
第一步,我想在打词组时简化成“词组中的每一个字只需前二码”,即:
笔顺37.32
输入法77.34.44
笔顺输入法37.32.77.34.44
这个表达式应该怎么写?我现在是这样写的,但无效:
speller:
alphabet: 0123456789 # 用于编码的可输入字符
delimiter: "." # 词组的每个字分隔符号
algebra:
- 'fuzz/^([^0-9]).+([^0-9])$/$1$2/' # 词组中的每个字仅取前二个码
第二步,我想在打词组时能简化成“词组中的每一个字不限编码长度,也不限汉字个数”,即:
笔顺3.3(每个字最少一个码,多码不限,当然越多越准确)
输入法773.34.4(词组有可能是二字、三字、四字,甚至更多的字)
笔顺输入法3.32..44(只打“笔顺…法”首尾二字或三字即可匹配)
如果能实现上述的词组输入方法,那么打字将会是飞一般的快!这不是猜测,而是已经有一个商业的输入法是这样做的了,我用过,所以知道这样打字特别快。(请参见“数字五笔输入法”官方网站 )
还请各位大侠指教,我应该如何写这一个 fuzz 表达式?
2020年03月05日 11点03分 1
level 9
虽然我也不是高手 不过最近也在研究rime的算法 可能不会特别准确不过希望能够帮到你吧
词组每个字只取前两个码可以写
- fuzz/^([0-9])([0-9])(.+)$/$1$2/
2020年03月07日 16点03分 2
谢谢,但我无论怎么试,都不生效。有点怀疑是不是 Rime 这个拼写运算不支持数字?毕竟它设计之初仅考虑“拼音、五笔”这类字母按键编码的。
2020年03月08日 01点03分
@YQ_YSY 这个有几个需要注意的地方 1. xxx.schema.yaml中engine/translators中的主翻译器要确认是script_translator(脚本翻译器)而非table_translator(码表翻译器),因为fuzz算法只支持脚本翻译器
2020年03月08日 02点03分
@YQ_YSY 确认完成上一步是正确的前提下,再将schema.yaml/translator主翻译器下加一项: " (两个空格)strict_spelling: true" 这样fuzz才会在打词组的时候生效
2020年03月08日 02点03分
level 9
然后像你所说的第二步我之前好像也有所听闻 理论上来说应该是可以实现的 不过根据我近日对rime的研究与试验
就是如果想以简码出字,运用derive或fuzz超过一定的程度可能会很容易引起输入的卡顿 由其是手机端 目前我就己经遇到这个问题了 只好减少fuzz数量和质量
2020年03月07日 16点03分 3
@贴吧用户_a51E2EK 修改配置文件尝试,重新部署居然花了二天一夜36个小时!(所以我回复慢了)确实如你说的,极其卡顿变慢,而且也没能实现简码的效果。——就算实现了,也不利于推广应用。——只能等待Rime开发者继续改进了。谢谢
2020年03月09日 14点03分
level 1
YQ_YSY 楼主
另外,在Rime的文档看到还有一个:
縮略/Abbreviation : 執行派生運算;派生出的拼寫將獲得「縮略」屬性,會在音節切分時與通常的拼寫做區分處理。
格式:abbrev/<模式>/<替換式>/
實例:算式 abbrev/^([a-z]).+$/$1/
效果:以首字母爲多字母音節碼的縮寫。
speller:
algebra:
- abbrev/^([a-z]).+$/$1/ # 簡拼(首字母)
- abbrev/^([zcs]h).+$/$1/ # 簡拼(zh, ch, sh)
我改成 0-9 也没用。
2020年03月08日 01点03分 4
level 1
我试了半天感觉fuzz和derive没有区别,我是script_translator拼音方案
2020年09月20日 14点09分 5
level 10
不要用speller,2個辦法:1用table_translator,在字典中寫造詞規則(參考倉頡字典);2用你順手的工具(例如python)直接生成目標字典。
2020年09月20日 20点09分 6
1