Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

形码部署后无法根据单字生成词组的编码 #762

Closed
1 of 6 tasks
Marksusu opened this issue Nov 14, 2023 · 11 comments · Fixed by #768
Closed
1 of 6 tasks

形码部署后无法根据单字生成词组的编码 #762

Marksusu opened this issue Nov 14, 2023 · 11 comments · Fixed by #768
Labels

Comments

@Marksusu
Copy link

Describe the bug
在使用形码的时候,原本可以根据单字的编码算出词组的编码,但现在这个功能失灵了,部署之后生成的二进制文件大小几乎减半。
这样就只能打单字了。
ibus-rime 好久不更了,所以猜测可能是 librime 或者其它部分的问题。

Flavor(please complete the following information):
Select your flavor:

  • ibus-rime
  • fcitx-rime
  • fcitx5-rime
  • Squirrel
  • Trime
  • Weasel
@Marksusu Marksusu added the bug label Nov 14, 2023
@mokapsing
Copy link
Contributor

要看你是否配置了造词规则,不如把你的方案贴出来

@Marksusu
Copy link
Author

要看你是否配置了造词规则,不如把你的方案贴出来

造词规则什么的都验证过了,在旧版上是有效的。

我这几天在 linux mint 上试过了,mint 仓库里是 1.8.5 ,完全没问题;
garuda linux 的仓库里是 1.9.0 就不好用。

我是 github 新手,还不会贴输入方案……

@Marksusu
Copy link
Author

要看你是否配置了造词规则,不如把你的方案贴出来

rime/home#1409

这里有相对较详细的描述

@WhiredPlanck
Copy link
Contributor

@Marksusu 已经确定这是 librime 的 bug,引入自 #663

WhiredPlanck added a commit to WhiredPlanck/librime that referenced this issue Nov 25, 2023
WhiredPlanck added a commit to WhiredPlanck/librime that referenced this issue Nov 26, 2023
WhiredPlanck added a commit to WhiredPlanck/librime that referenced this issue Nov 26, 2023
follow the default split behavior of boost::split
@Marksusu
Copy link
Author

@Marksusu 已经确定这是 librime 的 bug,引入自 #663

谢谢你~

WhiredPlanck added a commit to WhiredPlanck/librime that referenced this issue Nov 26, 2023
follow the default split behavior of boost::split
@WhiredPlanck
Copy link
Contributor

@Marksusu 已经确定这是 librime 的 bug,引入自 #663

谢谢你~

另外在解决的过程中我意识到你的词典里每一行的不同列之间似乎使用了多个制表符来分割,修正代码后编译词典过程中也出现了很多警告(产物从大小来看应该是恢复正常了),不知道是不是设计上如此?问题出现的原因是,在之前性能优化时无意间将 librime 收集行内容并分割的行为改变了,以前是只会根据第一个出现的制表符来分割(其余视作正常的列内容),无意变成了将多个连续出现的分隔符视作一个来分割。

@Marksusu
Copy link
Author

@Marksusu 已经确定这是 librime 的 bug,引入自 #663

谢谢你~

另外在解决的过程中我意识到你的词典里每一行的不同列之间似乎使用了多个制表符来分割,修正代码后编译词典过程中也出现了很多警告(产物从大小来看应该是恢复正常了),不知道是不是设计上如此?问题出现的原因是,在之前性能优化时无意间将 librime 收集行内容并分割的行为改变了,以前是只会根据第一个出现的制表符来分割(其余视作正常的列内容),无意变成了将多个连续出现的分隔符视作一个来分割。

“一行中出现多个(实际只有两个)连续的制表符”是因为,我理解的分栏,是应该按照文件头中的“码表格式”的定义去做的,那么我的词典格式为──“词组\t输入码(期待机器帮我计算所以为空)\t词频”,这样,两个制表符相连就很合理了。
与之对应的 columns 里的内容应该如下表示(吧,我理解的):

columns:    # 本词典码表格式
  - text    # 文字
  - code    # 输入码
  - weight  # 权重

但有趣的是,这里的分栏我从前一直都写错,但奇怪的是竟然一直有效,所以我也是直到今天才发现:

columns:    # 本词典码表格式
  - text    # 文字
  - code    # 输入码
  - weight  # 权重
  - stem    # 全码

这是为什么呢?
如上“一直写错的分栏定义”是无效的吗?
我是歪打正着获得了我想要的效果[笑哭]

再次感谢你~

@Marksusu
Copy link
Author

Marksusu commented Nov 26, 2023

@Marksusu 已经确定这是 librime 的 bug,引入自 #663

谢谢你~

另外在解决的过程中我意识到你的词典里每一行的不同列之间似乎使用了多个制表符来分割,修正代码后编译词典过程中也出现了很多警告(产物从大小来看应该是恢复正常了),不知道是不是设计上如此?问题出现的原因是,在之前性能优化时无意间将 librime 收集行内容并分割的行为改变了,以前是只会根据第一个出现的制表符来分割(其余视作正常的列内容),无意变成了将多个连续出现的分隔符视作一个来分割。

“一行中出现多个(实际只有两个)连续的制表符”是因为,我理解的分栏,是应该按照文件头中的“码表格式”的定义去做的,那么我的词典格式为──“词组\t输入码(期待机器帮我计算所以为空)\t词频”,这样,两个制表符相连就很合理了。 与之对应的 columns 里的内容应该如下表示(吧,我理解的):

columns:    # 本词典码表格式
  - text    # 文字
  - code    # 输入码
  - weight  # 权重

但有趣的是,这里的分栏我从前一直都写错,但奇怪的是竟然一直有效,所以我也是直到今天才发现:

columns:    # 本词典码表格式
  - text    # 文字
  - code    # 输入码
  - weight  # 权重
  - stem    # 全码

这是为什么呢? 如上“一直写错的分栏定义”是无效的吗? 我是歪打正着获得了我想要的效果[笑哭]

再次感谢你~

哦,我没写错,我想起来了!
原来定义成四栏是对的,我的词典只是省去了“第四栏”

很久以前试验过──这里的词典可以做多个分栏,只要前四个分栏的内容与定义一致,后面的“第五、第六……栏”可以加入更多内容,只是不会被处理罢了。

@Marksusu Marksusu closed this as not planned Won't fix, can't repro, duplicate, stale Nov 26, 2023
lotem pushed a commit that referenced this issue Nov 26, 2023
…768)

follow the default split behavior of boost::split
@WhiredPlanck
Copy link
Contributor

@Marksusu 那就说明是你的词典是设计上就那样,那还是代码处理的问题,已经解决了。感谢反馈~

groverlynn pushed a commit to groverlynn/librime that referenced this issue Dec 8, 2023
… (rime#768)

follow the default split behavior of boost::split
@Marksusu
Copy link
Author

@Marksusu 那就说明是你的词典是设计上就那样,那还是代码处理的问题,已经解决了。感谢反馈~

谢谢你的维护~
最近在 AUR 上有个更新〔更新日期为2023-12-20 〕,其中似乎并没包含这个 bug 的修改,地址如下:

https://archlinux.org/packages/extra/x86_64/librime/

我怎样才能用上你改好的这个功能呢?
librime 页面上的这个安装说明太简洁了,能给些指点吗?
再次感谢你~

https://github.com/rime/librime#build-and-install-librime-on-linux

@mokapsing
Copy link
Contributor

@Marksusu 那就说明是你的词典是设计上就那样,那还是代码处理的问题,已经解决了。感谢反馈~

谢谢你的维护~ 最近在 AUR 上有个更新〔更新日期为2023-12-20 〕,其中似乎并没包含这个 bug 的修改,地址如下:

https://archlinux.org/packages/extra/x86_64/librime/

我怎样才能用上你改好的这个功能呢? librime 页面上的这个安装说明太简洁了,能给些指点吗? 再次感谢你~

https://github.com/rime/librime#build-and-install-librime-on-linux

make
sudo make install

其实就这两步,make提示缺什么依赖就找对应的包安装,再执行make,最后不提示缺依赖了就会成功,然后sudo make install

fxliang pushed a commit to fxliang/librime that referenced this issue Feb 2, 2024
… (rime#768)

follow the default split behavior of boost::split
graphemecluster pushed a commit to TypeDuck-HK/librime that referenced this issue Mar 18, 2024
… (rime#768)

follow the default split behavior of boost::split
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants