Closed Nicked639 closed 1 year ago
本意是想支持的,但执行的时候出了点问题。
比如创建一个 melt_eng.custom.yaml
写入英文和小鹤的拼写规则:
patch:
speller/algebra:
- derive/['\-_+,.]+//
- derive/^(.+)$/\L$1/
- derive/^([a-z].+)$/\U$1/
- derive/^([a-zA-Z])/\U$1/
- derive/^([a-z][a-z])/\U$1/
- derive/^([jqxy])u$/$1v/
- derive/^([aoe])([ioun])$/$1$1$2/
- xform/^([aoe])(ng)?$/$1$1$2/
- xform/iu$/Q/
- xform/(.)ei$/$1W/
- xform/uan$/R/
- xform/[uv]e$/T/
- xform/un$/Y/
- xform/^sh/U/
- xform/^ch/I/
- xform/^zh/V/
- xform/uo$/O/
- xform/ie$/P/
- xform/i?ong$/S/
- xform/ing$|uai$/K/
- xform/(.)ai$/$1D/
- xform/(.)en$/$1F/
- xform/(.)eng$/$1G/
- xform/[iu]ang$/L/
- xform/(.)ang$/$1H/
- xform/ian$/M/
- xform/(.)an$/$1J/
- xform/(.)ou$/$1Z/
- xform/[iu]a$/X/
- xform/iao$/N/
- xform/(.)ao$/$1C/
- xform/ui$/V/
- xform/in$/B/
- xlit/QWRTYUIOPSDFGHJKLZXCVBNM/qwrtyuiopsdfghjklzxcvbnm/
然后有些小问题: 输入 qqhc 可以得到「QQ号」,但输入 qqhcma 却得不到「QQ号码」; 输入 xgl 可以得到「X光」,但输入 xglpm 却得不到「X光片」。 挺迷的,谁知道怎么回事。。。
大概和简拼,韵母转换,权重有关。
我用的智能ABC的双拼方案。 大部分英文开头的混拼都无法匹配, X光,实际输入xgt,预览结果为x guang, X光的候选一样很靠后。 X光片,实际输入xgtpw,预览结果为x g t pian,X光片 由于权重原因在候选的靠后位置。
ps 我是用的第一版的实现
如果能单独做个字典,并且提高初始权重,或许会有些效果
本意是想支持的,但执行的时候出了点问题。
比如创建一个
melt_eng.custom.yaml
写入英文和小鹤的拼写规则:patch: speller/algebra: - derive/['\-_+,.]+// - derive/^(.+)$/\L$1/ - derive/^([a-z].+)$/\U$1/ - derive/^([a-zA-Z])/\U$1/ - derive/^([a-z][a-z])/\U$1/ - derive/^([jqxy])u$/$1v/ - derive/^([aoe])([ioun])$/$1$1$2/ - xform/^([aoe])(ng)?$/$1$1$2/ - xform/iu$/Q/ - xform/(.)ei$/$1W/ - xform/uan$/R/ - xform/[uv]e$/T/ - xform/un$/Y/ - xform/^sh/U/ - xform/^ch/I/ - xform/^zh/V/ - xform/uo$/O/ - xform/ie$/P/ - xform/i?ong$/S/ - xform/ing$|uai$/K/ - xform/(.)ai$/$1D/ - xform/(.)en$/$1F/ - xform/(.)eng$/$1G/ - xform/[iu]ang$/L/ - xform/(.)ang$/$1H/ - xform/ian$/M/ - xform/(.)an$/$1J/ - xform/(.)ou$/$1Z/ - xform/[iu]a$/X/ - xform/iao$/N/ - xform/(.)ao$/$1C/ - xform/ui$/V/ - xform/in$/B/ - xlit/QWRTYUIOPSDFGHJKLZXCVBNM/qwrtyuiopsdfghjklzxcvbnm/
然后有些小问题: 输入 qqhc 可以得到「QQ号」,但输入 qqhcma 却得不到「QQ号码」; 输入 xgl 可以得到「X光」,但输入 xglpm 却得不到「X光片」。 挺迷的,谁知道怎么回事。。。
cn_en.dict.yaml:
---
name: cn_en
version: "2023-04-11"
sort: by_weight
QQ号 QQhao
QQ号码 QQhaoma
X光 xguang
X光片 xguangpian
...
melt_eng.schema.yaml:
---
schema:
schema_id: melt_eng
name: Easy English Nano
speller:
algebra:
- xform/(.)ao$/$1C/ #这个正则式会将末尾的ao替换为C,于是qqhao顺利转换为qqhc
- xform/[iu]ang$/L/ #这个正则式会将末尾的uang或iang替换为L,于是xguang顺利转换为xgl
- xform/ian$/M/ #这个正则式会将末尾的ian替换为m,于是xguangpian顺利转换为xguangpm
...
qqhao可以转换为qqhc,但是qqhaoma中间的hao,并不在末尾,于是无法转换,x光片同理,如果你输入xguangpm,就可以打出x光片了。
如果对双拼混输感兴趣,有需求,可以尝试这个小技巧:在词库中用""包裹住编码,再在拼运的最后一行加上
speller:
algebra:
-…………
-…………
-…………
- xform/"// #这个正则式会删除 "
在这个#70 issue里,我也有提及这种方法 我还制作了一个一件生成拼运的emeditor脚本https://github.com/rime/home/discussions/1274
另外,双拼拼运不要用大写字母搭桥,我不喜欢,浪费编码空间,是制作方案的下下下下策。
附件: 处理好的词库 _dic_cn_en.dict.yaml.txt
speller: algebra: -………… -………… -………… - xform/"// #这个正则式会删除 "
在这个#70 issue里,我也有提及这种方法 我还制作了一个一件生成拼运的emeditor脚本rime/home#1274
另外,双拼拼运不要用大写字母搭桥,我不喜欢,浪费编码空间,是制作方案的下下下下策。
附件: 处理好的词库 _dic_cn_en.dict.yaml.txt
这个方法真棒。
speller: algebra: -………… -………… -………… - xform/"// #这个正则式会删除 "
在这个#70 issue里,我也有提及这种方法 我还制作了一个一件生成拼运的emeditor脚本rime/home#1274 另外,双拼拼运不要用大写字母搭桥,我不喜欢,浪费编码空间,是制作方案的下下下下策。 附件: 处理好的词库 _dic_cn_en.dict.yaml.txt
这个方法真棒。
注释掉translator下的preedit format,或者使用外挂词库,输入码显示就会正常了
如果对双拼混输感兴趣,有需求,可以尝试这个小技巧:在词库中用""包裹住编码,再在拼运的最后一行加上
speller: algebra: -………… -………… -………… - xform/"// #这个正则式会删除 "
在这个#70 issue里,我也有提及这种方法
我还制作了一个一件生成拼运的emeditor脚本https://github.com/rime/home/discussions/1274
另外,双拼拼运不要用大写字母搭桥,我不喜欢,浪费编码空间,是制作方案的下下下下策。
附件:
处理好的词库
我试了一下,挺好的,谢谢大佬分享。就是目前遇到一个问题,我用的小鹤双拼,按下面的字典在输入ads的时候照理说会出来「A栋」这个候选词,但不知为何就是出不来。
A栋 "a" dong
如果对双拼混输感兴趣,有需求,可以尝试这个小技巧:在词库中用""包裹住编码,再在拼运的最后一行加上
speller: algebra: -………… -………… -………… - xform/"// #这个正则式会删除 "
在这个#70 issue里,我也有提及这种方法 我还制作了一个一件生成拼运的emeditor脚本rime/home#1274 另外,双拼拼运不要用大写字母搭桥,我不喜欢,浪费编码空间,是制作方案的下下下下策。 附件: 处理好的词库 _dic_cn_en.dict.yaml.txt
我试了一下,挺好的,谢谢大佬分享。就是目前遇到一个问题,我用的小鹤双拼,按下面的字典在输入ads的时候照理说会出来「A栋」这个候选词,但不知为何就是出不来。
A栋 "a" dong
可能是词频太低,被其他候选顶下去了。
如果对双拼混输感兴趣,有需求,可以尝试这个小技巧:在词库中用""包裹住编码,再在拼运的最后一行加上
speller: algebra: -………… -………… -………… - xform/"// #这个正则式会删除 "
在这个#70 issue里,我也有提及这种方法
我还制作了一个一件生成拼运的emeditor脚本https://github.com/rime/home/discussions/1274
另外,双拼拼运不要用大写字母搭桥,我不喜欢,浪费编码空间,是制作方案的下下下下策。
附件:
处理好的词库
我试了一下,挺好的,谢谢大佬分享。就是目前遇到一个问题,我用的小鹤双拼,按下面的字典在输入ads的时候照理说会出来「A栋」这个候选词,但不知为何就是出不来。
A栋 "a" dong
把这个字典放在中文字典的最上面。
name: rime_ice
version: "1"
use_preset_vocabulary: true
import_tables:
- cn_dicts/cn_en # 中英混输词库
- cn_dicts/8105 # 字表
- cn_dicts/41448 # 大字表(按需启用)
- cn_dicts/base # 基础词库
- cn_dicts/sogou # 搜狗流行词,与 main 没有重复
#- cn_dicts/moegirl # 萌娘百科
- cn_dicts/ext # 扩展词库,与 main sogou 没有重复
- cn_dicts/tencent # 腾讯词向量,与 main sogou ext 没有重复,大词库,部署时间较长。
- cn_dicts/others # 一些杂项
如果对双拼混输感兴趣,有需求,可以尝试这个小技巧:在词库中用""包裹住编码,再在拼运的最后一行加上
speller: algebra: -………… -………… -………… - xform/"// #这个正则式会删除 "
在这个#70 issue里,我也有提及这种方法
我还制作了一个一件生成拼运的emeditor脚本https://github.com/rime/home/discussions/1274
另外,双拼拼运不要用大写字母搭桥,我不喜欢,浪费编码空间,是制作方案的下下下下策。
附件:
处理好的词库
我试了一下,挺好的,谢谢大佬分享。就是目前遇到一个问题,我用的小鹤双拼,按下面的字典在输入ads的时候照理说会出来「A栋」这个候选词,但不知为何就是出不来。
A栋 "a" dong
把这个字典放在中文字典的最上面。
name: rime_ice version: "1" use_preset_vocabulary: true import_tables: - cn_dicts/cn_en # 中英混输词库 - cn_dicts/8105 # 字表 - cn_dicts/41448 # 大字表(按需启用) - cn_dicts/base # 基础词库 - cn_dicts/sogou # 搜狗流行词,与 main 没有重复 #- cn_dicts/moegirl # 萌娘百科 - cn_dicts/ext # 扩展词库,与 main sogou 没有重复 - cn_dicts/tencent # 腾讯词向量,与 main sogou ext 没有重复,大词库,部署时间较长。 - cn_dicts/others # 一些杂项
我用的是你在另外一个issue提到的挂载方法:
tidm_cn_en:
dictionary: tidic_cn_en
enable_sentence: false
enable_user_dict: false
initial_quality: 1
是将上面这段直接放在了我的双拼输入方案里,这样的话该如何给这个字典提权呢? 刚接触Rime,还不太了解。
initial_quality: 1
initial_quality的大小会影响权重,另外,translators中的排序也会影响谁排在前面
initial_quality: 1
initial_quality的大小会影响权重,另外,translators中的排序也会影响谁排在前面
再请教一下,可以让中英文混输支持联想吗,现在需要全部完整的输入才会在候选词里看到中英文混合的结果。
再请教一下,可以让中英文混输支持联想吗,现在需要全部完整的输入才会在候选词里看到中英文混合的结果。
不行,不动源码弄不了联想
把目前的中英混输词库分成 N 份,一份全拼、一份小鹤、一份自然码。。。
- cn_en_pinyin.dict.yaml
- cn_en_double_pinyin.dict.yaml
- cn_en_double_pinyin_flypy.dict.yaml
例如:
# 全拼 cn_en_pinyin.dict.yaml
哆啦A梦 duolaameng
# 小鹤 cn_en_double_pinyin_flypy.dict.yaml
哆啦A梦 dolaamg
这样是不是就行了,谁用哪个就解开哪个注释。
把目前的中英混输词库分成 N 份,一份全拼、一份小鹤、一份自然码。。。
- cn_en_pinyin.dict.yaml - cn_en_double_pinyin.dict.yaml - cn_en_double_pinyin_flypy.dict.yaml 例如: # 全拼 cn_en_pinyin.dict.yaml 哆啦A梦 duolaameng # 小鹤 cn_en_double_pinyin_flypy.dict.yaml 哆啦A梦 dolaamg
这样是不是就行了,谁用哪个就解开哪个注释。
用这种方案是不是还能支持联想?
用这种方案是不是还能支持联想?
和现在的英文行为模式一样。
用这种方案是不是还能支持联想?
和现在的英文行为模式一样。
佬是准备在repo添加这几个yaml了吗?
把目前的中英混输词库分成 N 份,一份全拼、一份小鹤、一份自然码。。。
- cn_en_pinyin.dict.yaml - cn_en_double_pinyin.dict.yaml - cn_en_double_pinyin_flypy.dict.yaml 例如: # 全拼 cn_en_pinyin.dict.yaml 哆啦A梦 duolaameng # 小鹤 cn_en_double_pinyin_flypy.dict.yaml 哆啦A梦 dolaamg
这样是不是就行了,谁用哪个就解开哪个注释。
这维护成本有点高啊,感觉还是 @abcdefg233 佬的方案比较好啊
把目前的中英混输词库分成 N 份,一份全拼、一份小鹤、一份自然码。。。
- cn_en_pinyin.dict.yaml - cn_en_double_pinyin.dict.yaml - cn_en_double_pinyin_flypy.dict.yaml 例如: # 全拼 cn_en_pinyin.dict.yaml 哆啦A梦 duolaameng # 小鹤 cn_en_double_pinyin_flypy.dict.yaml 哆啦A梦 dolaamg
这样是不是就行了,谁用哪个就解开哪个注释。
这维护成本有点高啊,感觉还是 @abcdefg233 佬的方案比较好啊
直接放在中文字典里就行了,不用维护这么多方案和字典
把目前的中英混输词库分成 N 份,一份全拼、一份小鹤、一份自然码。。。
- cn_en_pinyin.dict.yaml - cn_en_double_pinyin.dict.yaml - cn_en_double_pinyin_flypy.dict.yaml 例如: # 全拼 cn_en_pinyin.dict.yaml 哆啦A梦 duolaameng # 小鹤 cn_en_double_pinyin_flypy.dict.yaml 哆啦A梦 dolaamg
这样是不是就行了,谁用哪个就解开哪个注释。
这维护成本有点高啊,感觉还是 @abcdefg233 佬的方案比较好啊
直接放在中文字典里就行了,不用维护这么多方案和字典
嗯嗯,目前我是挂在了中文字典里,用了 @abcdefg233 的方案
直接放中文字典不行的,会让简拼失效,输入 hah
的时候得不到「哈哈」。
@iDvel 我在cn_en.go 中添加了智能ABC双拼的字典,麻烦看下是否可以合并。 https://github.com/iDvel/rime-ice/pull/259 rime_cn_en.zip
中英混输词库目前只支持全拼方案,如输入 qqhao 可以得到 QQ号,但在双拼方案(小鹤)中,输入 qqhc 无法得到QQ号,而是秋毫。 请问作者是否可以添加支持?