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

[软件] 分享适用于网文校对的自动纠错校正脚本

[复制链接]

用户组:童生

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

【更新内容】
3 月 1 日更新,完善了 【双击运行】文件全局搜索.bat 的一些操作,具体可看下面的置顶楼层。
新增 【双击运行】15.查找文本中的重复段落.bat,对文本中可能存在的重复段落进行简单的检测(之前的软件一个文件最多只能检测 30000 多行也太无厘头了吧)
能够提前排查一些可能存在的重复章节内容,也能鉴赏一下某些作者是如何无节操复制粘贴水文的。




论坛里原先算是有了比较全的用于文本校对的工具,不过我自己使用体验下来,感觉操作流程还是有点机械重复了。
毕竟是十多年前到现在一直没有更新过的工具了,从以前论坛中经过软件校对发出来的文本内容来看,网文中很多常见的错别字也没有得到进一步修正。
因此另外写了一套自动修正的脚本,支持 epub 和 txt 两种格式的文件,支持自动嵌套递归批量修改书籍文件。

再也不想看到:

“半响”“嘎然而止”“诺大的”“按耐”“一颗树”“一柱香”
“臻首”(真想知道是哪位大才子最先开始这么写的,去和写“柔夷”那伙坐一桌)
“附骨之蛆”(应为“疽”,百思不得其解的一个错词,到底为什么能写成“蛆”-_-||)
“一滩水/血/泥”(应为“一摊水/血/泥”,不用怀疑,“滩”并没有量词的用法)


这些令人哭笑不得(按“网文通假字”的写法可能是“苦笑不得”)的错别字出现在文本里了。

php 环境
现在把 php 8.1 版本的可执行文件也同时打包进来了,不需要额外自己安装环境,一键运行即可(Windows 系统中)。
因为本身代码写得很简单,为了减小压缩包体积,去掉了一些 php 扩展文件,如果执行有问题可以提出。
如果有在 mac 或者其他系统使用的需要,也可以私信问一下我,脚本本身的代码是跨平台的,只是改变一下调用方式就可以了。

如有 vcruntime140.dll 缺失、命令行乱码等问题,请下载使用文档,查看“简易版”中的说明。

使用方法
把所有书籍放入 books 文件夹,执行 【双击运行】1.书籍校正.bat,这个命令会对 books 文件夹中的书籍进行备份(自动复制一份到 booksBak 中)和递归校正。

执行了 FixText 中的校正 bat 脚本,完成文本校正后,建议直接用 Beyond Compare 的 “文件夹对比” 功能对比【books 文件夹】中被修改的书籍 【booksBak 文件夹】中被预处理过的书籍备份原文件,手动进行对修改结果的确认和对误伤项的修复。

如果是 epub 的书籍,改动都应用到了 books 和 booksBak 文件夹中转换出来的带【EPUB合并文件】前缀的 txt 文件中,使用 BC 直接比较带有此前缀的 txt 文件,即可确认修改效果。
然后执行 6.EPUB 文本拆分还原(从 TXT 中拆分).bat 进行还原,会把带前缀的 txt 文件重新拆分成 epub,覆盖掉原有的文件。

脚本下载:
使用文档:
Beyond Compare 5.0.6,绿色版,免安装,64 位:
校对的工具和方式千变万化,一个简单易用的比对软件才是真正的基础。

Beyond Compare 4.4.7:

BC 5.0 以上的版本支持自动换行,但是实测发现,如果有在别的编辑器进行编辑,BC 自动重载时,定位会混乱。
需要自己手动调整滚动条才能回到之前的位置,而 4.x 版本则无此问题。
但 4.x 版本就是不支持自动换行了,可以按需选择。


新加了一个“简易版”的文档,仅包含脚本运行的必要条件和简单的使用流程,推荐可以直接先看这份。
另外带日期的那份是详细的功能说明文档,如果你有更改词库和对其他功能进一步了解的需要,可以抽时间慢慢看。



下附一些“的地得”和“严格模式”所做修改的相关信息,如有修改“的地得”的兴致或者需要,可进行一些参考:

【常见的比较纠结的“的地得”用法】https://pub.bnu.edu.cn/jzyg1/109799.html(最后一种个人不完全认同,更倾向于“看把你给美的”“看你这话说的”。)
【拟声词的后面用“的”还是“地”?】http://paper.people.com.cn/rmrbhwb/html/2015-06/20/content_1578843.htm
【年代久远的书籍是否应该强制区分“的地得”?】http://www.jiaodui.com/bbs/read.php?tid=11085
【“来自于”“涉及到”等表达,是赘余还是羡余?是改还是不改?】https://pub.bnu.edu.cn/jzyg1/80840.html

校对表内容会有不定时更新,可以留意本帖最后编辑时间及最新附件上传时间。

本帖子中包含更多资源

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

×

评分

参与人数 4威望 +12 铜币 +35 收起 理由
txt + 2 + 5 赞一个!
baizhai1704 + 2 + 10 论坛有您更精彩!
lsk1700 + 6 + 15 论坛有您更精彩!
杨超越 + 2 + 5 论坛有您更精彩!

查看全部评分

回复

使用道具 举报

用户组:童生

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

文件全局搜索

将之前 txtFormat 中个人认为比较实用的部分正则进行抽取,提供一个全局检索和修改的视图,查改叠字叠词、错乱标点之类的体验应该有明显的提升。
另外加上了一些标点规范的修正和排版标记快捷添加的功能。

将需要处理的书籍放到脚本的 books 文件夹后,双击 文件全局搜索.bat 执行,仅支持 utf-8 编码的文件

需要本地有安装 python 才可执行(需要是 python 3 以上的版本,如果是 python 2 的话也无法运行),安装方式请自行百度,或者下载上面的使用文档,查看其中“简易版”的说明,只是点两下鼠标的事情。

现在改成了第一次进入这个界面前,先在本地创建虚拟环境,涉及通过网络安装所需的模块。
因此每次版本更新后第一次打开这个界面会要等待一段时间,是正常的,等环境自动创建完成后才可进入,后面有了环境和缓存就不会这么慢了。

1.选择文件、规则:
如需修改或增删规则,可以直接改 src/tools/file_global_search_pyqt/config.py 文件,
开头有写每条规则的字段说明,改完保存之后需要重新打开窗口才能生效。
如果想改字体,可以更改同文件夹内的 ui.ui 文件,搜索一下黑体,把那几处都替换成你想要的字体即可。
背景色之类的也可以自己问 ai 改一下 ui.ui,后面等有兴致了再做这些涉及配置的功能。


2.可根据需要调整上下文行数,默认为 1 行:


3.快捷键进行替换和撤销:
使用 Alt+F 和 Alt+D 快捷键可以在前后的匹配项进行跳转。


4.使用“替换全部”时,可以通过标记 x 来排除掉一些不用修改的项:


5.寻找一些或可标记的内容,进行便捷的标记操作:
建议熟悉后直接使用快捷键进行操作,会方便不少。
如果内容比较长被截断了,可以调整上下文行数重新搜索。
可以用左边的上下按钮或者 Alt+F Alt+D 快捷跳转。


另外 Ctrl+F 是打开搜索编辑框,Ctrl+G 是跳到对应行。
在这个界面修改完成之后,需要按  Ctrl+S 或点击保存按钮才能将内容保存到实际的文件。

建议随时使用 BC 比较 books 和 booksBak 的文件,确认每一步的修改结果。



本帖子中包含更多资源

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

×

评分

参与人数 1威望 +2 铜币 +10 收起 理由
baizhai1704 + 2 + 10 论坛有您更精彩!

查看全部评分

回复

使用道具 举报

用户组:童生

      UID
1796
      积分
146
      回帖
25
      主题
4
      发书数
0
      威望
131
      铜币
2237
      贡献
0
      阅读权限
20
      注册时间
2025-3-1
      在线时间
17 小时
      最后登录
2025-3-14
 楼主| 发表于 2025-3-14 10:13 | 显示全部楼层
9981 发表于 2025-3-14 10:02
附件下载了,出错,打不开,奇了怪了

没下完整吧,我自己来下都能顺利解压的。
回复

使用道具 举报

用户组:白丁

      UID
5014
      积分
8
      回帖
2
      主题
0
      发书数
0
      威望
7
      铜币
112
      贡献
0
      阅读权限
5
      注册时间
2025-3-3
      在线时间
3 小时
      最后登录
2025-3-14
发表于 2025-3-14 10:02 | 显示全部楼层
附件下载了,出错,打不开,奇了怪了
回复

使用道具 举报

用户组:秀才

      UID
861
      积分
558
      回帖
33
      主题
57
      发书数
54
      威望
459
      铜币
2855
      贡献
0
      阅读权限
40
      注册时间
2025-3-1
      在线时间
20 小时
      最后登录
2025-3-15
发表于 2025-3-5 17:08 | 显示全部楼层
感谢各位大佬的分享 正头疼如何校正文本
回复

使用道具 举报

用户组:童生

      UID
1796
      积分
146
      回帖
25
      主题
4
      发书数
0
      威望
131
      铜币
2237
      贡献
0
      阅读权限
20
      注册时间
2025-3-1
      在线时间
17 小时
      最后登录
2025-3-14
 楼主| 发表于 2025-3-5 15:01 | 显示全部楼层
Llinx 发表于 2025-3-5 14:26
其实修改一下批处理脚本就行,以其中一个举例

哦哦,好的,我到时试试,之前是看到 sigil 吧的一些插件是用异常来处理 import 的,就直接复制粘贴了。
回复

使用道具 举报

用户组:童生

      UID
2535
      积分
168
      回帖
32
      主题
2
      发书数
1
      威望
150
      铜币
2569
      贡献
0
      阅读权限
20
      注册时间
2025-3-2
      在线时间
38 小时
      最后登录
2025-3-15
发表于 2025-3-5 14:26 | 显示全部楼层
本帖最后由 Llinx 于 2025-3-5 14:50 编辑
edennow 发表于 2025-3-5 13:21
在本地倒是有用虚拟环境,不过之前没弄过 py,后面有空看看是不是打包成 exe 方便点 ...

其实修改一下批处理脚本就行,以其中一个举例

  1. @echo off
  2. Pushd "%~dp0"

  3. if not exist "src\tools\venv\Scripts\activate.bat" (
  4.     python -m venv src\tools\venv
  5.     call src\tools\venv\Scripts\activate.bat
  6.     pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ pyqt5 ansi2html
  7. ) else (
  8.     call src\tools\venv\Scripts\activate.bat
  9. )

  10. python src\tools\quotation_checker_pyqt\quotation_checker_pyqt.py
复制代码


然后python里面导入qt库的异常处理也可以修改下,再加上这段代码
  1. import os
  2. import PyQt5

  3. dirname = os.path.dirname(PyQt5.__file__)
  4. qt_dir = os.path.join(dirname, 'Qt5', 'plugins', 'platforms')
  5. os.environ['QT_QPA_PLATFORM_PLUGIN_PATH'] = qt_dir
复制代码


回复

使用道具 举报

用户组:童生

      UID
1796
      积分
146
      回帖
25
      主题
4
      发书数
0
      威望
131
      铜币
2237
      贡献
0
      阅读权限
20
      注册时间
2025-3-1
      在线时间
17 小时
      最后登录
2025-3-14
 楼主| 发表于 2025-3-5 13:21 | 显示全部楼层
Llinx 发表于 2025-3-5 11:46
提个小建议,可以在py脚本目录创建虚拟环境然后在虚拟环境下运行相关脚本 ...

在本地倒是有用虚拟环境,不过之前没弄过 py,后面有空看看是不是打包成 exe 方便点
回复

使用道具 举报

用户组:童生

      UID
2535
      积分
168
      回帖
32
      主题
2
      发书数
1
      威望
150
      铜币
2569
      贡献
0
      阅读权限
20
      注册时间
2025-3-2
      在线时间
38 小时
      最后登录
2025-3-15
发表于 2025-3-5 11:46 | 显示全部楼层
提个小建议,可以在py脚本目录创建虚拟环境然后在虚拟环境下运行相关脚本
回复

使用道具 举报

用户组:童生

      UID
6613
      积分
108
      回帖
3
      主题
1
      发书数
0
      威望
106
      铜币
2071
      贡献
0
      阅读权限
20
      注册时间
2025-3-4
      在线时间
1 小时
      最后登录
2025-3-14
发表于 2025-3-4 09:44 | 显示全部楼层
元数据清零了。。
回复

使用道具 举报

用户组:童生

      UID
1796
      积分
146
      回帖
25
      主题
4
      发书数
0
      威望
131
      铜币
2237
      贡献
0
      阅读权限
20
      注册时间
2025-3-1
      在线时间
17 小时
      最后登录
2025-3-14
 楼主| 发表于 2025-3-3 16:50 | 显示全部楼层
本帖最后由 edennow 于 2025-3-3 17:16 编辑
夜凛 发表于 2025-3-3 16:40
就是这种,可以看见吗
如果安装的是 python2.x 版本的话,可以把它卸载掉,重新找个 3.x 版本的来安装,应该是要装 python3 才能运行了。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-3-15 01:16 , Processed in 0.085849 second(s), 27 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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