Typo 是一个相当烦人的东西(实际上只是自己懒得多次检查 Typo,有的时候就算发现了也会懒得改。)。所以打算自己找一个可以自动检查 Typo 的脚本。我本来以为这是一个技术上成熟的东西,然而并没有。勉勉强强在 GitHub 里找到了一个对付 Typo 的 Repo:PyCorrector。这个工具是为了中文设计的,是否能对英文使用暂时存疑。

我这里暂时不打算多费口舌讨论它的原理,以及是否有更好的竞品之类的问题。(我相信现在的中文 NLP 水平肯定不止如此。)若希望寻求技术细节,请进入上述的链接。直接进入使用环节。

工具配置

这个工具首先需要通过 Pip 安装下述 Package:

1
2
pip install https://github.com/kpu/kenlm/archive/master.zip
pip install pycorrector

注意:上述两个步骤请不要颠倒,否则可能会出现依赖问题。

这样就完成了安装。这里粘贴该包的使用的 Demo:

1
2
3
import pycorrector
corrected_sent, detail = pycorrector.correct('少先队员因该为老人让坐')
print(corrected_sent, detail)

它会返回纠正过的句子以及哪些部分是需要纠正的。但是它这个工具的准确率实在不行,这个纠正句子基本是不能信的。

如何使用

但是上面只是获得了环境,为了更好地使用,不得不写了一个新的脚本。由于这个工具的准确率实在不行,而且速度也并不快,所以为了避免每一次对所有文件的搜索,系统维持了一个名为checked.json的文件,里面存有已经检查过的所有文件。如果你希望重新检查该文件,则从该文件中移除对应的名字即可。此外,每一次检查回将错误信息记录在一个名为log.txt的文件中。这两个文件都会储存在 Hexo 最外层的文件夹中。

每一次运行该程序都会覆盖log.txt,并且将每一次检查过的新文件加入checked.json文件。具体代码附在该链接中:Link,请自行下载。该文件中的地址可能需要微调。我将其放在 Hexo 根目录的名为update的子文件夹中。

最后可以将其加入 update 脚本中,这样每一次更新可以获得新的 log 文件查看是否有 Typo。最后再吐槽一句,它的准确率不行(它甚至使用的还是结巴分词……)。如果各位发现了更好的工具,敬请告知。

最后三点注意:

  1. 第一次由于所有文件都没有检查过,所以会非常缓慢。请耐心等待。
  2. 该脚本刚开始运行时,会导致系统一点小卡顿,这是加载大型语言模型产生的正常情况,不用慌张。
  3. 如果在写作某篇文章时不希望加上自动 Typo 修正的功能,可以在该篇文章最开始的设定中添加一行:typo: false。该功能我写了,但是没有单独测试。若有问题我之后再改吧。