网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
08月21日漏签0天
rime吧 关注:8,038贴子:45,749
  • 看贴

  • 图片

  • 吧主推荐

  • 游戏

  • 1 2 下一页 尾页
  • 25回复贴,共2页
  • ,跳到 页  
<<返回rime吧
>0< 加载中...

『技术贴』『改进版』小狼毫五笔自动造词、网盘同步

  • 只看楼主
  • 收藏

  • 回复
  • NeuralNotwork
  • 学前班
    3
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
上次发了个贴子《解决自动造词时词序固定问题,并实现词库与配置自动网盘同步》,分享自己的一种解决方案,结果被人喷坐井观天。。即便即此,我还是决定把这个改进版的解决方案分享出来,万一有人需要呢?
走自己的路,让别人说去吧。
——但丁
世界上有几十亿人,有些人的井可能比某些人的天还大。
——冷冷漠然
好了进入正题。在这个贴子里,楼主给所有单字设定不同的词频,以达到固定排序的目的;对于词组不加设置,这样就能根据输入习惯来排序。至于同步,首先使用db_class: plain_userdb,这样用户输入习惯会以文本的形式保存在“用户文件夹”下的*.userdb.txt中,同步的时候把这个文件同步即可。
一、目的与意义
首先声明楼主的需求,没有这些需求的朋友就别浪费时间看本贴了。
楼主用的小狼毫+五笔输入法,目前的版本有个问题(反正对我来说是个问题):开启自动造词之后,候选词序会根据你的输入历史来自动调整,而不受词典文件中所指定词频的影响,也就是说重码的单字词也会被调整顺序,这是楼主不想看到的;但是对于自造词,楼主又希望能按输入次数排序。
也许有人会问了:用五笔为什么还要开启自动造词?嗯,我不知道别人的输入习惯怎样,反正前一段时间我写毕业论文的时候像“支持向量机”这种长词打了多少遍已经数不清了。。如果不开启自动造词怎么办?有办法,自己把这个词加到词典文件.dict.yaml里然后“重新部署”就可以了,但是每次都这么把自定义词组加进去太累了。也许五笔高手总喜欢拆开打:“支持+向量+机”,反正我不是高手,而且我的词库里原本连“向量”这个词组都没有 :)
综上所述,说不好自动造词对别的五笔用户有多大意义,反正对楼主来说意义重大,但是目前版本的小狼毫存在缺陷。
二、怎么解决?
上次的贴子中提到,经过观察,开启用户词典之后的词序不是按词频调整的,而是按wubi.userdb.txt中的d排序的,如下图所示:

按理来说,按上图这样设置,基本上就解决了“单字词序固定”这个问题了。刚开始这样用起来的确没问题,但是用过一段时间后发现会莫名其妙地出现乱序。经过长时间的观察思考,以及不得已去查看源代码,楼主终于搞清了原因。上图中的d是排序依据,t是输入时间,d和t存在如下的关系(这个公式对应源码“librime\include\rime\algo\dynamics.h”中的formula_d函数):

举个例子:现在使用小狼毫共上屏了2000次,在第1000次输入了“去”然后中间一直没再打过这个字,第2000次又打了一次,那么t_old=1000,t_new=2000。d_old假设是10000,那么按公式d_new就成了67.3862。。。本来设定好好的,让“去”(d=10000)排在“支”(d=7500)前面,但就因为长时间没打“去”这个字,就使得d_new变成60几,直接排在“支”和“云”之后了。我不知道这对其他输入法有什么意义,反正对五笔来说是很不合理的。就算要排序,按输入频率排不就很好吗?
于是乎,楼主就把这段代码改了,直接让每次上屏之后d+1:
d_new = d_old+1
编译、打包、安装、测试,终于实现了真正的按词频排序!为了长时间使用省心,楼主还把“librime\src\dict\user_db.cc”中为d设置的上限10000给取消了,万一以后词频会超过1W呢。
现在用着很好,解决了这个问题,小狼毫对我来说就是完美的输入工具了~ 而且新编译的rime.dll是1.2.9版本的,有朋友需要的话我会放网盘分享。BTW,我这里也有新世纪五笔单字固定词序的用户词典文件。
下面说下使用db_class: plain_userdb比默认的userdb有什么好处。老版本的小狼毫使用rime.dll 1.1.2版,默认的userdb会在“用户文件夹”下生成一个*.userdb.kct文件,这个文件在用户输入时会加锁,使得同步软件无法读取这个文件,自然也就无法上传到网盘中。如果使用plain_userdb,在rime进程结束后用户输入习惯会自动写入*.userdb.txt,这个文本大部分时间是不会被加锁的,因此不影响同步软件读取。


  • 多洛克逐星
  • 四年级
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
原来如此。那么C是组词时的字频吗?


2025-08-21 02:10:04
广告
不感兴趣
开通SVIP免广告
  • 寻找丁一二
  • 托儿所
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
网盘分享的链接有吗


  • NeuralNotwork
  • 学前班
    3
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
链接:http://pan.baidu.com/s/1c2lLuA8 密码:rogr


  • 乐山怡岳
  • 幼儿园
    2
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
下载试用中。
请问:新版能解决四码自动顶屏(首选字词),空码自动清屏(无需回车、打空格,更不“智能地”拿其它字来顶替)这个功能吗?
rime在自动顶屏、自动清屏功能上的不足,是我不得不仍然把多多输入法作为首选的原因。


  • 和你在一起香
  • 一年级
    4
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
大爱楼主啊 不知道手机怎么使用


  • hoyin
  • 二年级
    5
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
请教一下楼主,你这样修改后,达到的效果是不是码表(.dict.yaml)的条目不会被调序,而自造词仍可以跟据词频来调序?


  • 5882517
  • 一年级
    4
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
db_class: plain_userdb这个是写在哪个配置文件里


2025-08-21 02:04:04
广告
不感兴趣
开通SVIP免广告
  • zjacai
  • 托儿所
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
想学习下怎么打包的?我只想把五笔加入安装包


  • love孖墨
  • 四年级
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
楼主,能不能写给详细点,怎么打包的教程,每次更新后,可以自己动手打包了~


  • dengqb697
  • 托儿所
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
感谢分享啊


  • dengqb697
  • 托儿所
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
楼主改造好的输入法真是不错,谢谢分享


  • wunyunpeng
  • 三年级
    6
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
相当好,可是我没有看懂。呜呜。


  • 嗯哦好ok
  • 托儿所
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
谢谢大佬,大佬现在还玩贴吧吗,看你没发帖了


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 1 2 下一页 尾页
  • 25回复贴,共2页
  • ,跳到 页  
<<返回rime吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示