找回密码
 立即注册
搜索
热搜: 新人报到
查看: 129|回复: 2

[软件] 【FixText】随时随地进行读校——将阅读软件的批注自动转换成校对替换表

[复制链接]

用户组:童生

      UID
1796
      积分
146
      回帖
25
      主题
4
      发书数
0
      威望
131
      铜币
2237
      贡献
0
      阅读权限
20
      注册时间
2025-3-1
      在线时间
17 小时
      最后登录
2025-3-14
发表于 2025-3-12 20:27 | 显示全部楼层 |阅读模式
本帖最后由 edennow 于 2025-3-12 21:49 编辑

相信不少人在阅读网文之类的文本质量不算高(也许是因为文本“来路不正”,也许是因为作者的“丈育”值比较高)的书籍时,会碰到很想把书中的某些错别字给顺手改掉的情况。

但是,由于目前的阅读软件大部分都不支持就地编辑文件(特别是 epub mobi azw3 等格式的书籍),而自己又不想或不方便马上跑到电脑上,或者别的编辑软件里对书籍进行修改,
可能就会选择通过阅读软件自带的“标记/高亮/批注/笔记”(在我看来是同一回事)功能,将想改的内容进行标记,等到了方便的时候再去统一修改(这也许算读校吧)。

这时如果书籍中的校对批注很多,达到成百上千处的话,大概对着笔记都要翻半天,改起来的效率不会很高,过程也非常枯燥乏味。

因此个人分享下通过之前写的脚本:适用于网文校对的自动纠错校正脚本(在帖子中搜索 FixText.zip 下载附件,最好提前了解一下大概是怎么用的),
将阅读软件中的批注自动转换成临时校对表,再通过该脚本中的校正功能进行一键替换的思路和流程。

补充:
试用过的几款阅读软件中,有几款是可以直接编辑文本的,如果可以接受的话建议直接用这些软件操作,会轻松不少:

1. 阅读 Legado。这个不用多介绍了,可以导入书源,支持直接修改 txt 和 epub 文本。但是编辑的时候是弹出一个内容框,里面是整个当前章节的所有文本,要想从中查找并修改内容稍微有点麻烦,这个“编辑”和“阅读”的体验略显割裂,而且貌似每次修改只能局限在当前章节,不能全局替换。

此外,如果你阅读的是精排过的 epub 书籍,通过阅读 App 的这种方式来修改内容会破坏原有排版,被替换成阅读自己生成的样式。

编辑完成后,可以直接导出修改后的结果,不需要参考本帖写的通过批注来一键替换的操作。

2. Readingo。据说是原来 Anyview 作者的新作,目前仅支持修改 txt 文件。编辑的时候也是单独进入一个编辑的界面,和阅读界面是分开的,也有点割裂。不过比较好的是可以通过目录进行章节跳转,也可以支持正则替换(功能测试中)和全局替换。

修改完书籍之后,可以将文件导出(长按书籍封面->点击“选择”->点击“压缩”->分享文件):


3. QuickEdit 专业版。这个可以自己去搜索一下,严格来说不是阅读软件,是比较纯粹的移动端文本编辑器,支持编辑 txt,支持正则替换和全局替换。



当然,如果你想直接在多看、微信读书或者掌阅、静读天下之类的常见阅读 App 中直接对精排的 epub 书籍进行读校纠错,不妨参考一下下面的内容。

顺便一提,如果决定要进行人工读校,不管怎么操作,都是成本最高的一种方式。建议还是在读校前用软件把文本中常见的错别字之类的问题先处理一下,读校时可以不用面对这么多可以提前解决的问题。使用上面链接中脚本的自动校正功能,可以有效减少读校改错的操作数,建议也了解一下用法。

每一章文本改两三处程序无法识别的随机错误,和每一章都重复改多处经典常见的、能被软件提前抓出的错误,这两种操作方式相信可以很轻易地看出哪种更为合理。



1.如何进行校对批注

(1)需要保证同一处批注中包含“改前”和“改后”的对应内容:
比如在阅读软件中的划线句子为“原上韩山石径斜”,那就需要在这个划线上进行批注,
最好是通过“复制文本”(基本每个阅读软件都有的功能)的方式,将“原上韩山石径斜”复制为笔记/批注内容,
然后在批注的输入框里自己把这一句改成正确的“远上寒山石径斜”。

这时,这一处批注应该会变成:

划线内容:“原上韩山石径斜”
批注内容:“远上寒山石径斜”


这样就可以预见,在进行文本替换的时候,只要搜索“原上韩山石径斜”,替换为“远上寒山石径斜”,就完成了这一处的修改校正了。

只要你能按照这个模式进行批注(每次都要复制粘贴原文是挺麻烦的),那后续的脚本操作就支持把任意数量的批注,自动转换为校正表,实现一键通过校正脚本进行校对替换,就不用再到各种编辑器中一个个改了。

(2)支持的软件:
多看
calibre(pc 端)
文石 neoreader

掌阅
微信读书
阅读 Legado
静读天下


目前支持上述几种软件的批注格式,只要是用这几种软件做的划线批注,都应该会自动生成相应格式的笔记文本。
不管是来自 pc、手机、平板、墨水屏阅读器,都能进行转换和替换。

如果是 epub 或者 txt 书籍,可以直接支持替换,不需要转格式;
其他格式的书则需要自行转成 epub 或 txt 来进行替换(阅读和批注的过程中不用转,只在统一替换的时候进行转换即可)。

(3)注意事项和使用局限:
  • 做批注的过程中,要尽可能地让划线内容有辨识度(稍微长一点最好,如果能带上句子前后的句号逗号等,更是好中好,不要只是一两个字或几个没什么特色的词)。
  • 批注内容的开头部分不能是上面示例中的所有批注标记(不能以“注:”、“想法:”、“【批注】”、“>> ”、“————”、“content:”的字样作为开头),否则大概率会转换错乱。
  • 所有的批注/高亮/划线的地方最好有对应的笔记内容,目前应该可以支持含有单纯划线/高亮内容的转换,但为免混淆,最好还是“划线”和“笔记”按上述的格式“一对一”地进行对应。
  • 批注不支持换段,不支持换段,不支持换段,每一处批注都必须限制在同一段落内,目前各种软件五花八门的批注格式很多,想要识别换段的内容比较麻烦,如果一处批注换了段,会导致全体批注无法转换。

若是通过上述方式做了批注,就最好不要和你自己原来做的其他批注(比如很多换了段的高亮划线)混在一起导出来,否则也有可能转换出错。



2.如何将批注转成替换表并一键替换

(1)从软件中导出批注并转换成临时替换表:
上面列出的几种软件都支持批注导出,把导出来的批注文件(一般都是 txt 吧,其他格式也都支持),放置到脚本的 logs 文件夹中(将 FixText.zip 附件解压后可见);
然后执行【双击运行】9.从批注中生成校对表.bat;
脚本执行完成后,会在 src/maps 文件夹中生成对应的结果文件:5.临时校对表.php

在执行替换前,最好先打开 5.临时校对表.php 检查下里面的替换词条是否有缺漏和错误,避免执行出错。

文件示例内容如下:

临时替换表:
$tempMap = [
    ['before' => "原上韩山石径斜", 'after' => "远上寒山石径斜"],
    ['before' => "第额处修改", 'after' => "第二处修改"],
];


额外信息:
[
    {
        "before": "三英战吕部",
        "after": "!这本书里所有的“吕布”都错写成了“吕部”,后续统一修改。"
    }
]


其中,“$tempMap”的内容就是后续脚本中用来进行一对一替换的临时替换表,里面可以有非常多的批注词条。

再另外说明一下【额外信息】的含义:
在做批注的过程中,除了可以有“划线”“批注”一对一的内容之外,也可以在批注的开头第一个字符位置输入中文感叹号【!】,用来记录一些额外的校对提醒信息。
脚本转换批注的过程中,只要碰到开头是!的批注内容,就不会让这一处批注进入临时替换表,而是单独放到【额外信息】里显示出来,供校对使用。

(2)利用临时替换表对书籍进行一键校正:
①将需要校对的书籍放置到 books 文件夹;
执行【双击运行】10.通过批注校对表进行替换.bat;

即可利用上面的临时替换表,完成文本校正(支持 txt 和 epub 格式的书籍)。

然后也可以通过 beyond compare 比较 books 和 booksBak 中的文件,进行替换结果的确认,只要你的批注内容辨识度比较高,是基本不可能出现误伤的。

如果是 epub 的书籍,改动都应用到了 books 和 booksBak 文件夹中转换出来的带【EPUB合并文件】前缀的 txt 文件中,使用 BC 直接比较带有此前缀的 txt 文件,即可确认修改效果。

然后执行 6.EPUB 文本拆分还原(从 TXT 中拆分).bat 进行还原,会把带前缀的 txt 文件重新拆分成 epub,覆盖掉原有的文件。

②完成校正后,执行【双击运行】7.书籍清理(全部删除,包括备份).bat;
会自动将所有批注文件、临时校对表、原书籍文件删除,清理数据。



如果能理解并按照上面的流程进行“批注+一键替换”,同一本书可以在支持的任意软件中阅读任意的篇章并进行批注
比如,前半本书是在微信读书里读的,做了 40 条批注;
后半本是在 pc 端的 calibre 读的,做了 50 条批注。

那等到要进行统一替换的时候,只要分别在这两个软件导出两个批注文件,统一放到 logs 文件夹中,然后执行批注转换,
会把这 40+50 条批注统一合并成一个替换表,后续也是一键进行替换即可。



PS:这个“将批注转换为替换表,并一键替换”的逻辑其实很简单,代码也是随便写一下就能实现。

当然,要使用一个工具的时候,肯定是希望这个工具能低成本地提升一些操作效率。
如果你觉得上面提到的思路和流程的理解成本比较高,或者不认同这样的操作流程(特别是要复制粘贴原文进行批注,我也觉得很无语),
也感受不到这样的批量替换能带来的效率提升,当然可以继续按照自己的方式去做校对批注^_^(因为这个思路我也是突发奇想瞎鼓捣的,仅供参考仅供参考,若有更好的想法也欢迎交流)。

最简单的做法当然是完全不去改错别字,毕竟脑补也能解决问题,网文本身也不存在什么实在价值。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×

评分

参与人数 1威望 +2 铜币 +5 收起 理由
杨超越 + 2 + 5 感谢您为论坛发书,致敬!

查看全部评分

[发帖际遇]: edennow 帮路人搬东西,为补偿体力,消耗了 2 铜币. 幸运榜 / 衰神榜
回复

使用道具 举报

用户组:童生

      UID
2535
      积分
168
      回帖
32
      主题
2
      发书数
1
      威望
150
      铜币
2569
      贡献
0
      阅读权限
20
      注册时间
2025-3-2
      在线时间
38 小时
      最后登录
2025-3-15
发表于 2025-3-12 22:27 | 显示全部楼层
我都是标注后再找个时间修改txt,主要还是习惯用的软件不支持导出批注,不然脚本处理能省挺多事的。
[发帖际遇]: Llinx 乱扔果皮,被红袖标大妈罚款 2 铜币. 幸运榜 / 衰神榜
回复

使用道具 举报

用户组:童生

      UID
1796
      积分
146
      回帖
25
      主题
4
      发书数
0
      威望
131
      铜币
2237
      贡献
0
      阅读权限
20
      注册时间
2025-3-1
      在线时间
17 小时
      最后登录
2025-3-14
 楼主| 发表于 2025-3-12 23:06 | 显示全部楼层
Llinx 发表于 2025-3-12 22:27
我都是标注后再找个时间修改txt,主要还是习惯用的软件不支持导出批注,不然脚本处理能省挺多事的。 ...

有些软件连复制粘贴的功能都没有哈哈,有时候标记得多了改起来确实挺心累的。
[发帖际遇]: “宝宝不开心”,edennow 获得奖励棒棒糖一根,价值 3 铜币. 幸运榜 / 衰神榜
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|阡陌居

GMT+8, 2025-3-15 01:24 , Processed in 0.100970 second(s), 24 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表