edennow 发表于 2023-11-15 21:54

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

本帖最后由 edennow 于 2023-12-17 00:06 编辑

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

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

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

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

最近重新翻了下赤霓大佬写的《ePub 指南——从入门到放弃》,原来里面也有写通过多看批注来读校的内容,和本帖的思路基本一致,之前没细看,都忽略了哈哈。

补充:
试用过的几款软件中,貌似只有“开源阅读 Legado” 支持随时编辑文本内容,但是编辑的时候是弹出一个内容框,里面是整个当前章节的所有文本,要想从中查找并修改内容稍微有点麻烦,这个“编辑”和“阅读”的体验略显割裂,而且貌似每次修改只能局限在当前章节,不能全局替换。

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

编辑完成后,可以直接导出修改后的结果,不需要参考本帖写的通过批注来一键替换的操作,如果是开源阅读的用户(且不看精排版的 epub)基本可以不用看本帖内容。

static/image/hrline/4.gif

1.如何进行校对批注

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

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

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

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

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

(2)支持的软件及相应的笔记格式示例:
多看:
1
2000-01-01
原上韩山石径斜
注: 远上寒山石径斜

calibre(pc 端):
原上韩山石径斜
2000-01-01 00:00

远上寒山石径斜

───

文石 neoreader:
第1章 我是第一章
2000-01-01 00:00|页码:111
原上韩山石径斜
【批注】远上寒山石径斜

掌阅:
2000-01-01
原文:原上韩山石径斜
想法:远上寒山石径斜

微信读书(微信读书的笔记内容在第一行,和别的软件是反着来的):
1
2000-01-01
远上寒山石径斜
>> 原上韩山石径斜

阅读 Legado(json 格式):
[
{
    "bookAuthor": "作者",
    "bookName": "书名",
    "bookText": "原上韩山石径斜",
    "chapterIndex": 1111111,
    "chapterName": "章节",
    "chapterPos": 1111111,
    "content": "远上寒山石径斜",
    "time": 2000-01-01
}
]

静读天下:
书名 (高亮: 0; 标注: 1)

───────────────

◆ 第一章

▪ 原上韩山石径斜 (远上寒山石径斜)

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

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

(3)注意事项和使用局限:

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

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

static/image/hrline/4.gif

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 中的文件,进行替换结果的确认,只要你的批注内容辨识度比较高,是基本不可能出现误伤的。

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

static/image/hrline/4.gif

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

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

static/image/hrline/4.gif

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

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

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

cumt313 发表于 2023-11-16 16:55

楼主太强了,强烈支持有意愿校对的人都来学习一下,懂计算机知识确实可以成倍提高校对效率啊。

cumt313 发表于 2023-11-17 09:55

不得不为楼主点个赞,太强了,这个思路太先进了。有些制作得非常精美的epub,就可以采用这个方法,不会破坏原有样式,而且改动效率也高。我之前是想的用sigil来改,但这样操作效率就太低下了。因为意识到这个问题,所以我从来也没这样操作过。我现在看的基本都是自己校对,自己制作的epub电子书。

兵河之眼 发表于 2023-11-23 11:46

电子书论坛界技术大牛!!造福书友的大虾!!!

兵河之眼 发表于 2023-11-23 11:47

经典书籍,确实有必要校对正确!!一般太水的网文,就随意了!

兵河之眼 发表于 2023-11-23 11:49

这不就是校对的人工智能嘛!!!文字校对界的AI

edennow 发表于 2023-11-23 14:12

没有 ai 哈,都是机械重复的操作来的{:1_204:}

kll85757 发表于 2023-12-21 23:56

edennow 发表于 2023-12-22 06:25

本帖最后由 edennow 于 2023-12-22 06:58 编辑

kll85757 发表于 2023-12-21 23:56
楼主,请问有没有便捷的方法可以批量处理注释,意思是将原本底稿中的注释快速转成多看的样式
这个强烈推荐用 sigil 的注释处理插件完成:https://tieba.baidu.com/p/7703714395

一般的双向链接直接用自动模式就可以了,如果是正文内的(注:xxxz)这种,需要改成手动模式,用正则匹配。

可以详细看一下这个说明文档,基本各种格式的注释都有案例,设置好之后基本就是一键处理。

如果没有下载 sigil,建议用吧主自己魔改的版本,效率提高了很多:https://tieba.baidu.com/p/8214000376

下载地址在这里:https://gitee.com/ichigo250/sigil-modified/releases/tag/2.0.1.X1A,part1 和 part2 要同时下载完再解压。

独饮忘川 发表于 2023-12-22 09:25

感谢分享,大大提升了校对的效率
页: [1] 2
查看完整版本: 随时随地进行校对——将阅读软件的批注自动转换成校对替换表