Closed RomaYun323 closed 6 months ago
您好,這個操作比較複雜,下面給出簡單的說明:
方案有兩部分:
「魔然」方案使用了這兩種詞庫,「整句」「輔篩」僅使用前者,「字詞」僅使用後者。
這兩種詞庫格式不同,因此操作流程不同。
打開 moran.yaml,修改 user_sentence_top
處的 algebra 即可。
下面是一個例子:
user_sentence_top:
__append: # 注意這一行必須保留
- xform/^([a-z]+);/\U$1;/ # 雙拼編碼轉大寫以避免衝突,如 vd;yd -> VD;yd
# ...下面需要一一把自然碼雙拼替換成小鶴雙拼
- xform/^VL/vd/ # zhai: 把自然碼雙拼 vl 替換成小鶴雙拼 vd
- xform/^VD/vl/ # zhuang: 把自然碼雙拼 vd 替換成小鶴雙拼 vl
- xform/^BN/bb/ # bin: 把自然碼雙拼 bn 替換成小鶴雙拼 bb
- xform/^SB/sz/ # sou: 把自然碼雙拼 sb 替換成小鶴雙拼 sz
# ......
- xlit/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ # 大寫轉回小寫
只需要補全其中的雙拼替換即可,第一行和最後一行可不變。
做完這一步後,整句詞庫雙拼就已經全部轉換爲小鶴雙拼了。
簡碼由於存在壓縮情況,無法使用 algebra 統一處理,因而需要重新製作。可參考 #30 中的描述。
本方案依靠大量 Python 腳本進行自動化維護。如果您有一定的 Python 技能,也可以考慮使用本方案所提供的 tools/schemagen.py 從頭生成一份配置。該工具可以生成單字碼表、詞庫碼表、簡碼碼表(自動安排簡碼位)、更新詞條雙拼、更新詞條輔助碼等。
最後,如果沒有特殊需求,也可以考慮使用現成的小鶴雙拼的類似配置: https://github.com/gaboolic/rime-shuangpin-fuzhuma
您好,感謝回覆 目前使用魔然·整句,將自然碼雙拼替換成小鶴雙拼,但在輸入某些單字時會同時有自然碼的音出現 我不太確定這樣改是不是正確的。 例如: 輸入YB會同時有小鶴的yin和自然碼的you 輸入MZ會同時有小鶴的mou和自然碼的mei 輸入QP會同時有小鶴的qie和自然碼的qun
因為是繁體使用者(輸繁得繁),主要依賴繁體詞庫,雾凇拼音的詞庫是經過簡化字優化過的詞庫,是輸簡經轉換得繁,有些發音輸入習慣不適用臺灣地區,所以想偷懶直接直接拿大佬做的詞庫。
雖然從來沒接觸過代碼,但多虧了詳細的備註,總算是把環境搞好了。有嘗試用tools/schemagen.py生成小鶴雙拼的單字表,是有成功生出來(覺得感動🥹 想請問有辦法透過schemagen.py將您製作的詞庫轉成小鶴雙拼+zrm輔助碼嗎?想向您確認一下(還在努力理解tools/schemagen.py中,我怕我在作白日夢😂)
user_sentence_top:
__append: # 注意這一行必須保留
- derive/^([a-z]+);/\U$1;/ # 雙拼編碼轉大寫以避免衝突,如 vd;yd -> VD;yd
# ...下面需要一一把自然碼雙拼替換成小鶴雙拼
- xform/^BZ/bw/
- xform/^DZ/dw/
- xform/^FZ/fw/
- xform/^GZ/gw/
- xform/^HZ/hw/
- xform/^KZ/kw/
- xform/^LZ/lw/
- xform/^MZ/mw/
- xform/^NZ/nw/
- xform/^PZ/pw/
- xform/^SZ/sw/
- xform/^UZ/uw/
- xform/^TZ/tw/
- xform/^WZ/ww/
- xform/^ZZ/zw/
- xform/^VZ/vw/
- xform/^IP/iy/
- xform/^CP/cy/
- xform/^DP/dy/
- xform/^GP/gy/
- xform/^HP/hy/
- xform/^JP/jy/
- xform/^KP/ky/
- xform/^LP/ly/
- xform/^NP/ny/
- xform/^QP/qy/
- xform/^RP/ry/
- xform/^UP/uy/
- xform/^SP/sy/
- xform/^TP/ty/
- xform/^XP/xy/
- xform/^YP/yy/
- xform/^VP/vy/
- xform/^ZP/zy/
- xform/^BX/bp/
- xform/^DX/dp/
- xform/^JX/jp/
- xform/^LX/lp/
- xform/^MX/mp/
- xform/^NX/np/
- xform/^PX/pp/
- xform/^QX/qp/
- xform/^TX/tp/
- xform/^XX/xp/
- xform/^BL/bd/
- xform/^CL/cd/
- xform/^IL/id/
- xform/^DL/dd/
- xform/^GL/gd/
- xform/^HL/hd/
- xform/^KL/kd/
- xform/^LL/ld/
- xform/^ML/md/
- xform/^NL/nd/
- xform/^PL/pd/
- xform/^SL/sd/
- xform/^UL/ud/
- xform/^TL/td/
- xform/^WL/wd/
- xform/^ZL/zd/
- xform/^VL/vd/
- xform/^BY/bk/
- xform/^DY/dk/
- xform/^JY/jk/
- xform/^LY/lk/
- xform/^MY/mk/
- xform/^NY/nk/
- xform/^PY/pk/
- xform/^QY/qk/
- xform/^TY/tk/
- xform/^XY/xk/
- xform/^YY/yk/
- xform/^IY/ik/
- xform/^GY/gk/
- xform/^HY/hk/
- xform/^KY/kk/
- xform/^UY/uk/
- xform/^VY/vk/
- xform/^DD/dl/
- xform/^JD/jl/
- xform/^LD/ll/
- xform/^ND/nl/
- xform/^QD/ql/
- xform/^XD/xl/
- xform/^ID/il/
- xform/^GD/gl/
- xform/^HD/hl/
- xform/^KD/kl/
- xform/^UD/ul/
- xform/^VD/vl/
- xform/^IB/iz/
- xform/^CB/cz/
- xform/^DB/dz/
- xform/^FB/fz/
- xform/^GB/gz/
- xform/^HB/hz/
- xform/^KB/kz/
- xform/^LB/lz/
- xform/^MB/mz/
- xform/^NB/nz/
- xform/^PB/pz/
- xform/^RB/rz/
- xform/^UB/uz/
- xform/^SB/sz/
- xform/^TB/tz/
- xform/^YB/yz/
- xform/^VB/vz/
- xform/^ZB/zz/
- xform/^JW/jx/
- xform/^LW/lx/
- xform/^NW/nx/
- xform/^QW/qx/
- xform/^XW/xx/
- xform/^IW/ix/
- xform/^GW/gx/
- xform/^HW/hx/
- xform/^KW/kx/
- xform/^UW/ux/
- xform/^VW/vx/
- xform/^BK/bc/
- xform/^CK/cc/
- xform/^IK/ic/
- xform/^DK/dc/
- xform/^GK/gc/
- xform/^HK/hc/
- xform/^KK/kc/
- xform/^LK/lc/
- xform/^MK/mc/
- xform/^NK/nc/
- xform/^PK/pc/
- xform/^RK/rc/
- xform/^SK/sc/
- xform/^UK/uc/
- xform/^TK/tc/
- xform/^YK/yc/
- xform/^ZK/zc/
- xform/^VK/vc/
- xform/^BN/bb/
- xform/^JN/jb/
- xform/^LN/lb/
- xform/^MN/mb/
- xform/^NN/nb/
- xform/^PN/pb/
- xform/^QN/qb/
- xform/^XN/xb/
- xform/^YN/yb/
- xform/^BC/bn/
- xform/^DC/dn/
- xform/^JC/jn/
- xform/^LC/ln/
- xform/^MC/mn/
- xform/^NC/nn/
- xform/^PC/pn/
- xform/^QC/qn/
- xform/^TC/tn/
- xform/^XC/xn/
- xform/^AN/aj/
- xform/^EN/ef/
- xlit/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ # 大寫轉回小寫
@RomaYun323 第一行的 derive 應該改成 xform,也就是:
- xform/^([a-z]+);/\U$1;/ # 雙拼編碼轉大寫以避免衝突,如 vd;yd -> VD;yd
之前寫錯了,抱歉!
另外現在也可以直接使用 schemagen.py 轉換詞庫的雙拼了 (d327325393520fa24dfff3e188c785263532ada6),用法:
python3 schemagen.py convert-sp --to=flypy --rime-dict=../moran.essay.dict.yaml
有幸结识各位码友,全世界这个时候就我们3个在研究这个问题,感动啊。发下心路历程。
诉求: 小鹤装机量在双拼群体中挺高的,像我这种超过10年的用户,只能使用【小鹤音】搭配【自然形】了,改键位太费脑。希望能出个小鹤+自然形的搭配,或者脚本一键生成小鹤版的【魔然】【字词】【整句】所有dict。
看到昨天更新工具了 flypyify.py 学习中 感谢!
整句输入,打上面的algebra补丁即可搞定
字词输入,fixed码表,我直接用 schemagen转换成小鹤
convert_sp = subparsers.add_parser('convert-sp', help='轉換雙拼') convert_sp.add_argument('--rime-dict', help='輸入rime格式詞庫', required=True) convert_sp.add_argument('--from', choices=double_pinyin_choices, help='來源雙拼方案', default='zrm') convert_sp.add_argument('--to', choices=double_pinyin_choices, help='目的雙拼方案', required=True)
两步完成后,就可以使用 魔然 完整体了吗?不知道schemagen能不能搞定简码。
@bosbyj convert_sp命令目前不能操作fixed码表,只能用于转换 yy;xx
格式的词库。
建议使用gen-fixed
命令重新生成fixed码表,需要的参数有:
--pinyin-table=./data/pinyin.txt
传入词音和词频数据(pinyin.txt
为繁体,pinyin_simp.txt
为简体)--double-pinyin=flypy
设定为小鹤双拼--charset=./data/trad_chars.txt
设定字集,仅对这些字编码(trad_chars.txt
为繁体,simp_chars.txt
为简体)--input-dict=./data/pinyin.txt
设定词集,仅对这些词语编码(pinyin.txt
为繁体,pinyin_simp.txt
为简体)--format=code-word
适用于当前 moran_fixed.dict.yaml 的「码先词后,一行一词」格式注意上面的参数需要对应:
调用方式为:
# 繁体:
python3 schemagen.py --double-pinyin=flypy --pinyin-table=./data/pinyin.txt gen-fixed --charset=./data/trad_chars.txt --input-dict=./data/pinyin.txt --format=code-word
# 简体:
python3 schemagen.py --double-pinyin=flypy --pinyin-table=./data/pinyin_simp.txt gen-fixed --charset=./data/simp_chars.txt --input-dict=./data/pinyin_simp.txt --format=code-word
说明:
当然,把所有词库都替换之后就是完全体了 :-) 方案功能对词库没有特殊要求。
您好,請問moran.chars.dict.yaml
也可以用schemagen.py
轉換嗎?
我轉換完碼表沒有被轉換為小鶴的碼表,其他詞庫除了moran_fixed.dict.yaml
都有轉換成功
python3 ./schemagen.py convert-sp --to=flypy --rime-dict=data/moran.chars.dict.yaml > moran.chars.dict.yaml
另外我測試了一下,當只修改algebra時,整句輸入沒問題,但輔篩還是維持自然碼的碼表
@RomaYun323 可以,chars也可以用convert-sp
命令轉換。
edit: 不行,目前的convert-sp只能轉換二字以上的詞。我馬上修改一下。
edit2: 已經推送了 (773f7a5b67cf4f4497be39ac8fab0928e800c20f)
@ksqsf 感謝,已成功轉換moran.chars.dict.yaml
@bosbyj 您好,請問您有成功將魔然完全轉換成小鶴輸入嗎? 我這裡一直無法成功(沒修改測試魔然·字詞)
我大概記錄一下測試的結果如下:
修改algebra
魔然 自然碼 小鶴混合
魔然·整句 小鶴(轉換成功)
魔然·輔篩 自然碼
轉換moran.extended.dict用到的詞典為小鶴碼表
魔然 自然碼 小鶴混合
魔然·整句 小鶴(轉換成功)
魔然·輔篩 小鶴(轉換成功)
修改algebra + 轉換moran.extended.dict用到的詞典為小鶴碼表
魔然 顯示混亂(輸kk顯示kun拼音的字)大部分字詞輸入無顯示,部分字詞同時或分別出現自然碼小鶴碼表(輸yb只顯示「有」;輸pp得pie;輸yp只顯示「雲」)
魔然·整句 同上
魔然·輔篩 小鶴(轉換成功)
@ksqsf 感謝,已成功轉換
moran.chars.dict.yaml
@bosbyj 您好,請問您有成功將魔然完全轉換成小鶴輸入嗎? 我這裡一直無法成功(沒修改測試魔然·字詞)
我大概記錄一下測試的結果如下:
修改algebra 魔然 自然碼 小鶴混合 魔然·整句 小鶴(轉換成功) 魔然·輔篩 自然碼 轉換moran.extended.dict用到的詞典為小鶴碼表 魔然 自然碼 小鶴混合 魔然·整句 小鶴(轉換成功) 魔然·輔篩 小鶴(轉換成功) 修改algebra + 轉換moran.extended.dict用到的詞典為小鶴碼表 魔然 顯示混亂(輸kk顯示kun拼音的字)大部分字詞輸入無顯示,部分字詞同時或分別出現自然碼小鶴碼表(輸yb只顯示「有」;輸pp得pie;輸yp只顯示「雲」) 魔然·整句 同上 魔然·輔篩 小鶴(轉換成功)
第四种情形是可以的,而且适合繁体用户
修改algebra + 轉換moran_fixed.dict.yaml 至小鹤
我生成了一份txt,你贴到yaml下面码表部分就应该可以用了 fixed簡碼轉小鹤.txt
看到昨天更新了convert-fixed-sp,可以直接轉換moran_fixed.dict.yaml
,感謝作者,目前完美使用中。
小鹤补丁,包括拼写运算和翻译后的简码词库
这里有一份转码脚本,总结了一下大佬们提供的转换思路
如果想要直接用现成的【鹤音码+魔然形码】方案,可以去下载这个已经转换好的文件夹
@bosbyj 现在有一个Moflice项目可以下载即用,方案是小鹤双拼+魔然形码+雾凇词库,并且保留了魔然的全部功能。 https://github.com/jack2game/rime-moflice
同门师兄弟好多啊。小鹤就是自然码的分支门派,零声母都一个套路。
我喜欢自然码的辅助码规则。
自然码专利过期了,利好开源。 自然码有大字符集编码,repo主f大还贡献了好多编码。 自然码拆大字根,好多字还可以用两分法拆字,舒服。弱点是形声字编码不够离散,所以后续的很多辅助码都选择拆小部件。
@RomaYun323 ~可以,chars也可以用
convert-sp
命令轉換。~edit: 不行,目前的convert-sp只能轉換二字以上的詞。我馬上修改一下。
edit2: 已經推送了 (773f7a5)
@ksqsf 請問是否可以讓convert-sp同時支持zrlf.dict的轉換?
自 commit ca35b6d 起,在 algebra 部分引入了部分自然码特有的优化,对应的行均有 ZRM-SPECIFIC
标记。如果有人在使用脚本自动转换自然码为其他双拼,请务必先用 grep -v ZRM-SPECIFIC
去除这些行。
自 commit ca35b6d 起,在 algebra 部分引入了部分自然码特有的优化,对应的行均有
ZRM-SPECIFIC
标记。如果有人在使用脚本自动转换自然码为其他双拼,请务必先用grep -v ZRM-SPECIFIC
去除这些行。
收到,谢谢!
同门师兄弟好多啊。小鹤就是自然码的分支门派,零声母都一个套路。
我喜欢自然码的辅助码规则。
自然码专利过期了,利好开源。 自然码有大字符集编码,repo主f大还贡献了好多编码。 自然码拆大字根,好多字还可以用两分法拆字,舒服。弱点是形声字编码不够离散,所以后续的很多辅助码都选择拆小部件。
我现在搞了拆分和码表都开源的墨奇音形
魔然的辅助码,建议规范化,并区分
目前对辅助码的规定是,一个字若有多种辅助码,则第一个码被视为「正码」(推荐拆法),并参与 compact dictionary 的构建。容错一般只用于单字输入。
(该话题已脱离本issue范畴,如需进一步讨论请另开issue。)
您好,感謝製作魔然方案 想請教若是想將自然碼雙拼轉為小鶴雙拼要如何修改呢?謝謝。