首先 fcitx-libpinyin 从一开始就提供了许多 ibus-libpinyin 所没有的功能(多词库,导入sogou细胞词库,云拼音输入),还有 fcitx 自身其他模块辅助之后同样支持的(笔画输入,以词定字),fcitx 的高度模块化使得即使不修改引擎相关的代码也可以享受其他模块提供的很多功能。和 ibus 必须修改引擎增加新功能本来就是不同的。
有些功能后来 ibus-libpinyin 加入了(如 lua 脚本,而对比 fcitx 的 lua 本来就是单独的模块),有些功能至今也没有(如多词库管理)。
其次,libpinyin 的数据质量是我一直很不满意的地方,在早期版本数据本身就一堆错字错词,怎么可能提供好的输入体验?近期数据问题才有所改善了。其他对于开发者本身不友好的地方例如早期根本就不管 abi api ,随意改动,给打包工作和 API 支持等都造成了一些麻烦。
fcitx5 开发的时候出于对现有所有拼音引擎的不满(例如原生上就不支持多词库,sunpinyin 是根本没法支持这个功能,fcitx-libpinyin 的多词库是靠完全重新导入原始词库文件来实现的),自己实现了新的
https://github.com/fcitx/libime ,对于输入体验上我有十足的信心。
具体细节上对比来说
1、数据和 sunpinyin 相同,预测结果 sunpinyin 一样的
2、算法和 sunpinyin 一样都是 trigram 的,libpinyin 是 bigram。能够对整句有更好的预测
3、相比 sunpinyin 更小的内存占用,提供更多对于输入法更方便的功能(例如多词库)
4、其他例如 fcitx4 的自带 pinyin,rime,googlepinyin 这些都是没有根据上下文计算概率的功能,就更不用说了。
因此完全不打算在 fcitx 5 支持 libpinyin(但是有基于 libpinyin 的注音 fcitx5-zhuyin,因为 libpinyin 的数据来说有声调,而注音输入法需要声调)。