home
home copied to clipboard
扩展词库同步与词频问题
在使用五笔输入的过程中,很多人不希望使用动态的词库(也不希望动态调整词频),因为那样会降低输入效率。
因此我使用了
#wubi86.custom.yaml
patch:
translator/enable_user_dict: false # 关掉用户词典,防止自动造词和调整词频
translator/dictionary: wubi86.extended # 调用外接词库
并使用
#wubi86.extended.dict.yaml
import_tables:
-wubi86
# 下方是我的扩展词库
一个词 gwzn 1 #词频为1的使用起来没有问题
现有 gmde 0 #“现有”是标准库中也有的词,想通过调整词频为0来删除侯选,但是这个方法行不通
来管理我的扩展词库,并通过它进一步导入标准词库。但是在使用的过程中,发现还是有两个问题困扰我:
- 使用扩展词库的话,多设备之间同步是不会同步扩展词库的,有没有什么办法实现同步?
个人想到的办法是,能否开放用户词库,但是强制手动方式进行维护?
- 标准词库中有个别出错的,或不想要的词条。可以在扩展词库中调整词频到1,来确保它出现在重码的最后一个位置。但是我无法在扩展词库中调整词频到0,以确保它不出现在候选列表。(虽然可以直接修改标准库,但修改标准库相当于创建了一个分支,不利于标准库的维护)
请问上述两个问题有没有办法处理?或者会不会在以后的版本中改进? 万分感谢!
既然是手動方式維護,那麼機器就無法自動合併出現差異的各個終端版本。Rime對用戶寫的YAML文件只做備份,也就是這個原因。因此對於第一個問題,也只能手動干預同步。您可以使用git等版本控制工具管理個人的配置和詞庫源文件。
要精確控制候選來優化詞庫,不如自己維護一份完整的詞庫,不然太複雜了,也無法通過文件直觀地觀察最終的結果。
既然是手動方式維護,那麼機器就無法自動合併出現差異的各個終端版本。Rime對用戶寫的YAML文件只做備份,也就是這個原因。因此對於第一個問題,也只能手動干預同步。您可以使用git等版本控制工具管理個人的配置和詞庫源文件。
要精確控制候選來優化詞庫,不如自己維護一份完整的詞庫,不然太複雜了,也無法通過文件直觀地觀察最終的結果。
多谢回复,目前我觉得GIT应该确实是最好用的一个办法。我也理解各客户机无法同步各版本差异的情况。 但是如果能把用户词库的自动造词关闭,并有手动在用户词库造词的功能。是不是就能完美解决这个问题呢?
在使用五笔输入的过程中,很多人不希望使用动态的词库(也不希望动态调整词频),因为那样会降低输入效率。
因此我使用了
#wubi86.custom.yaml patch: translator/enable_user_dict: false # 关掉用户词典,防止自动造词和调整词频 translator/dictionary: wubi86.extended # 调用外接词库
并使用
#wubi86.extended.dict.yaml import_tables: -wubi86 # 下方是我的扩展词库 一个词 gwzn 1 #词频为1的使用起来没有问题 现有 gmde 0 #“现有”是标准库中也有的词,想通过调整词频为0来删除侯选,但是这个方法行不通
来管理我的扩展词库,并通过它进一步导入标准词库。但是在使用的过程中,发现还是有两个问题困扰我:
- 使用扩展词库的话,多设备之间同步是不会同步扩展词库的,有没有什么办法实现同步?
个人想到的办法是,能否开放用户词库,但是强制手动方式进行维护?
- 标准词库中有个别出错的,或不想要的词条。可以在扩展词库中调整词频到1,来确保它出现在重码的最后一个位置。但是我无法在扩展词库中调整词频到0,以确保它不出现在候选列表。(虽然可以直接修改标准库,但修改标准库相当于创建了一个分支,不利于标准库的维护)
请问上述两个问题有没有办法处理?或者会不会在以后的版本中改进? 万分感谢!
您好,我和你使用了相同方案。不同的是我想使用自动造词功能,但一旦导入外部词库,用户词库便不会出现在候选词中,自动造词功能也无法使用。就是说,既无法使用之前的自造词,也无法自动新造词。 下面是我的配置:
# wubi86.custom.yaml
patch:
translator/enable_user_dict: true # 用户词典开启/关闭、词序自动调频
translator/dictionary: wubi86_feijie # 载入扩展词库
__include: easy_en:/patch # 中英混输
easy_en/enable_sentence: false # 防止英文无意义带太极图案的词
---
# wubi86_feijie.dict.yaml
name: wubi86_feijie
version: "2022.07.16"
sort: by_wight
use_preset_vocabulary: true
import_tables:
- wubi86 #这个是默认使用五笔词库,没事别删
- wubi86_sougou_stand.extended #这个是搜狗标准库,以后别的词库也要这样输入进来才有效
...
# wubi86_sougou_stand.extended.dict.yaml
---
name: wubi86_sougou_stand.extended
version: "1.0"
sort: by_weight
columns:
- text
- code
- weight
- stem
encoder:
exclude_patterns:
- '^z.*$'
rules:
- length_equal: 2
formula: "AaAbBaBb"
- length_equal: 3
formula: "AaBaCaCb"
- length_in_range: [4, 10]
formula: "AaBaCaZa"
...
# 下面是扩展词库内容
啊啊啊 kkkb 1
阿埃二氏病变 bffy 1
阿埃二氏手术 bffs 1
阿埃二氏损害 bffp 1
阿埃二氏细胞 bffe 1
阿埃斯特兰德二氏手术 bfas 1
目前基础词库、扩展词库、中英混输功能都正常,但是无法使用自动造词功能,之前的自造词也不会出现。我做过多次尝试,该功能始终无法正常,相同配置情况下如果不导入扩展词库则自动造词功能正常。 @lotem @Ace-Who 大佬帮忙看看有没有解决办法
如果能把用户词库的自动造词关闭,并有手动在用户词库造词的功能。是不是就能完美解决这个问题呢?
不能,因为同步时不知道怎么自动合并两份手动管理的用户词库。如果接受程序自动合并的结果,那也就等于承认动态管理词条的排序。
@feijie825 你需要在translator/dictionary
指定的词典里配置encoder/rules
才能按照编码规则造词。因为你在方案里使用了一个不同的词典,跟名为wubi86
词典没有关联,因此也不会访问wubi86
的用户词典。
@feijie825 你需要在
translator/dictionary
指定的词典里配置encoder/rules
才能按照编码规则造词。因为你在方案里使用了一个不同的词典,跟名为wubi86
词典没有关联,因此也不会访问wubi86
的用户词典。
嗯,我明白了,这里配置是我拷贝网络的。他注释 wubi86
词典“#这个是默认使用五笔词库,没事别删”,其实这里 wubi86
是输入法自带的固态词典对吗?并不是真正的用户词典?我把这一项当作是输入法的用户词典了。
而且我如果不引入扩展词库,自动造词功能便一切正常,其中的机制是什么?不引入扩展词库,便默认启用/访问用户词典?