令人惊讶的是,我一直找不到其他人真正做到这一点,但肯定有人做到了。我目前正在研究一个涉及拼写检查约 16000 个单词的 python 项目。不幸的是,这个词的数量只会增加。现在我正在从 Mongo 中提取单词,遍历它们,然后用 pyenchant 对它们进行拼写检查。通过首先从那里抓取我的所有物品,我已经消除了 mongo 作为潜在瓶颈。这让我有大约 20 分钟的时间来处理 16k 个单词,这显然比我想要花费的时间要长。这给我留下了几个想法/问题:
显然,我可以利用线程或某种形式的并行性。即使我把它切成 4 块,假设性能达到峰值,我仍然在看大约 5 分钟。
有没有办法知道 Enchant 在 pyenchant 下使用的是什么拼写库?Enchant 的网站似乎暗示它将在拼写检查时使用所有可用的拼写库/字典。如果是这样,那么我可能会通过三四个拼写字典来运行每个单词。这可能是我的问题,但我很难证明是这样。即使是这样,我真的可以选择卸载其他库吗?听起来很不幸。
那么,关于如何从中挤出至少一点性能的任何想法?我可以将它分成并行任务,但我仍然希望在我做之前让它的核心部分更快一点。
编辑:抱歉,在早上喝咖啡之前发帖……如果单词拼写错误,Enchant 会为我生成一个建议列表。这似乎是我在这个处理部分花费大部分时间的地方。