为什么 AZW3 电子书查字典取词时会选中一整句
Kindle 最有用的功能之一就是字典查询,阅读时遇到陌生的字词,只需要点选一下就能即时调用字典查询含义。最近有小伙伴反应,使用 Calibre 把一本中文电子书转换成 AZW3 格式并拷贝到 Kindle 中,查询字典时想要选取某个字词,却只能选中一整行。这是怎么回事儿?下面咱们来研究分析一下。
一、实验测试
发现问题最有效的方法就是把正常的和不正常的放在一起对比分析。所以,我准备了以下从不同渠道获得的 AZW3 格式电子书,然后把它们直接拷贝到 Kindle 中做比较。
- 使用 Calibre 转换得到的 AZW3 格式电子书
- 在亚马逊 Kindle 商店购买的 AZW3 格式电子书
- 使用 KindleGen 转换成 MOBI 格式再推送到云端得到的 AZW3 格式电子书
通过对比发现:使用 Calibre 转换的 AZW3 格式电子书只能选中一整句,而不能选择字词。而从亚马逊 Kindle 商店购买的 AZW3 格式电子书能正常选择字词。使用 KindleGen 转换成 MOBI 格式再推送到云端得到的 AZW3 格式电子书能正常选择字词。接着,我又将 KindleGen 生成的 MOBI 格式电子书直接拷贝到 Kindle,发现和 Calibre 转换的 AZW3 一样只能选中一整句,也不能选择字词。
二、问题分析
从上面的测试可以看出,凡是经过亚马逊服务器处理过的 AZW3,Kindle 就可以选择字词,否则就只会选择一整句。这样就可以得出一个比较合理的结论了。
不论是使用亚马逊官方最新版本的 KindleGen 转换的 MOBI 格式,还是用 Calibre 转换的 AZW3 格式,其实都属于亚马逊 KF8 标准的电子书,我们从 Kindle 商店购买的电子书也都属于此标准。通过 KindleGen 生成的 MOBI 格式跟 AZW3 格式在版式上没有什么差别,将其推送到云端也会被亚马逊服务器转换成 AZW3 格式。本地转换的 AZW3 无法正确取词,被亚马逊服务器转换后却能正确取词了,猜测这可能是亚马逊服务器端对 AZW3 格式进行了如分词之类的特殊处理。但奇怪的是,通过比较用 KindleUnpack 分解两种 AZW3 格式电子书得到的文件,并没有找到什么不同的地方。
另外,如果仔细观察你会发现,不论是从 Kindle 商店购买还是通过亚马逊服务器转换后的 AZW3 格式中文电子书,即便是某些字组合在一起并不是一个词,但查询字典时仍只能两、三个词同时选中,而大多不能自由点选单个字。这很可能是因为分词技术还不成熟,毕竟中文不像英文单词那样,由于词与词之间有空格,很好区分,和搜索引擎的中文分词技术一个道理。当然,这也只是从表象产生的猜测,纯属个人之见,毕竟 AZW3 是亚马逊私有格式,并不开源,具体是什么原因外人无从得知。
三、解决方法
解决方法很简单,但都不完美,请自行取舍。对于一本电子书,如果你很在意自由点选字词,不怎么在意版式,可以放弃使用 KF8 标准,在 Calibre 中使用 old 模式把电子书转换 MOBI 格式,而不要使用 new 或 both 模式,也不要转换成 AZW3 格式。如果非常在意排版的话,建议使用最新版的 KindleGen 将电子书转换成 MOBI 格式后,再推送到亚马逊云端,只是这种方法在 Kindle 中会不显示封面。
还有一个解决思路。既然分词只是针对中文电子书而处理的,那我们可以把电子书的语言更改为英文,以避免 Kindle 的“特殊处理”。具体方法就是在使用 Calibre 把电子书转换成 AZW3 格式之前,先“编辑原数据”,更改电子书的“语言”为“英文”,这样也能解决选择一整句的问题。不过这种方法也有一个缺点,那就是,在取词时字典会调用英文字典,需要手动切换一下。(感谢 airmarx 提供的此解决方法)
© 「书伴」原创文章,转载请注明出处及原文链接:https://bookfere.com/post/215.html
延伸阅读
- 第二代 Kindle Paperwhite 固件升级到 5.4.5
- 中国亚马逊推出 Kindle Unlimited 包月服务
- [三星特惠] 2016.12 三星版 Kindle 特享优惠推荐
- 贝佐斯:新款 Kindle 即将发布,下周公布细节
- Calibre 使用教程之抓取网站页面制成电子书
- [2018.11.09] Kindle Paperwhite 4 固件升级至 5.10.1.2
- 亚马逊是否真的会推出带彩色屏幕的 Kindle 电子书阅读器
- [2018.06.06] Kindle 阅读器固件升级至 5.9.6
- 亚马逊已支持在云端批量管理 Kindle 收藏夹
- [每周一书]《写在历史的边上》轻松获取文史知识
- [2016.02.13] Kindle 固件升级至修订版本 5.7.2.1
- Readability:定时或立即把长文推送到 Kindle
- 与书打交道:听从自己的感觉和内心需要
- [每周一书]《倦怠社会》数字时代的精神状况
- [每周一书] 心理学童话《蛤蟆先生去看心理医生》
其实中文应以单字为选取单位,用户划选一个或几个字后才成为一个选取单词,根本不需要什么算法来决定如何分词。亚马逊弄得这么复杂,不知要解决什么问题?还是我的想法太简单了?
更新了5.9.6,使用kindlegen从epub生成的mobi文件直接放入kindle也可以正常选字了。
不知搜索方面是否也同样可以实现了?
是可以的,搜索和查词弹出的是同一个菜单。
测试了提到的各种方法:
方法一:在 Calibre 中使用 old 模式把电子书转换 MOBI 格式
* send to kindle 或者 usb 传输效果一致
* 轻触屏幕只能选择字
* 可以手动选择词或者句来搜索
* 输入词句搜索的话得要用空格把所有字分隔开才行
方法二:用 Calibre 把电子书设置成英文然后转换成 AZW3
* 轻触屏幕能选词
* 只能搜索被标点或空格分开的整句
* 只有英文字体选择,但实际不影响效果
* 默认是英文字典,但可改成中文
方法三: KindleGen 将电子书转换成 MOBI 格式,然后 send to kindle
* 轻触屏幕能选词
* 能够搜索词句,kindle会把搜索的输入断词(segmentation)
* 断词不完美,但大体好用
对我来讲能搜索是很重要的,所以方法三是比较完美的解决。但有趣的是我试了几个命令行参数,发现 -c2 生成的书是不能send to kindle的。成功的命令行 (kindlegen windows v2.9):
> kindlegen d.epub -c1 -verbose -locale en -dont_append_source -o d.mobi
另外,让我惊讶的是用方法二的时候我在kindle上面是可以正常选词的(然而只能搜索句子)。这真的让我觉得是amazon在故意恶心人,而不是技术原因 :(
我使用貴站的方法,但都出現問題:
(1)在 Calibre 中使用 old 模式把电子书转换 MOBI 格式,而不要使用 new 或 both 模式,也不要转换成 AZW3 格式。
問題:翻頁時有時無法翻回前頁,但可選單一字查字典或可用書內搜索功能。
(2)使用最新版的 KindleGen 将电子书转换成 MOBI 格式后,再推送到亚马逊云端。
問題:我將MOBI格式寄到Amazon指定kindle郵箱做轉換,轉換後回傳的格式是MOBI檔。但此MOBI檔翻頁時有時無法翻回前頁,但可選單一字查字典或可用書內搜索功能。
(3)使用 Calibre 把电子书转换成 AZW3 格式之前,先“编辑原数据”,更改电子书的“语言”为“英文”,这样也能解决选择一整句的问题。不过这种方法也有一个缺点,那就是,在取词时字典会调用英文字典,需要手动切换一下.
問題:可選單一字,但因為書本語言已改成英文,因此無法使用中文字典,也無法手動選擇中文字典。無法使用書內搜索功能。
請教是否能解決,謝謝!
Chinwe提到的方法确实有效,具体步骤:
1. 用kindlegen转换原epub文件为mobi文件;
2. 将mobi文件通过邮箱推送;
3. kindle联网,同步推送的文件(此时图书无封面);
4. kindle连电脑,将同步后下载到kindle本体的azw3文件导入calibre;
5. 在calibre里勾选好导入的图书,再用quality check插件里的fix asin选项处理;
6. 直接在calibre里选择“发送到设备”(不要保存再拷入kindle,要不然还是没封面);
7. 把之前从云端同步的书从本机删掉(不然就有两本同样的书了);
8. 等待kindle建立索引。
所有步骤结束后,你就有了一本排版完善,既能搜索字词,又有封面,取词时还不用切换词典,可以选择中文字体的本地图书了(云端上还有一个没封面的相同的书)。
总之还是相当繁琐,最好一次多弄几本。以后希望有插件能一步搞定。
成功,谢谢!也不是显示DOC了,有封面可选词。唯一遗憾的是变成本地图书了,要是云端的就更完美了,这样还可以同步笔记。
到现在都没有良好的解决方法,难道是亚马逊故意为之吗?
calibre有个插件叫Quality Check,选中“使用最新版的 KindleGen 将电子书转换成 MOBI 格式后,再推送到亚马逊云端” 得到的azw3,fix asin就可以去掉个人文档并显示封面了。这种方法和lSHANG的评论是一样的原理,感觉更方便些。
博主对这个问题深入研究了啊,我都是转成Mobi之后再从云端下载Azw3回来,然后改DOC标签,再用Calibre推到设备里,这样就比较完美了。
请问改DOC标签是指改pdoc/ebok吗?应该怎么改呢?
Calibre 转AZW3 时, 编辑元数据,语言选项选择英语,制做好的电子书就可以选取某个字词了。
airmarx 您好。感谢您提供的解决思路,已将其更新至本文。
转成mobi格式,目录又没了
HUNTER927 您好。Calibre 和 KindleGen 转换的 mobi 格式按说是不会影响电子书原有目录的。能具体描述下您遇到的问题吗?
实际上我发现,正版的azw3和经过推送的非正版的mobi,在calibre的编辑书籍功能里打开后,在文件列表里有三个左右的后缀为unkonw的未知文件。我估计这是取词的关键所在。