驚いたことに、これを実際に行っている人を見つけることができませんでしたが、確かに誰かがそうしています。私は現在、約16,000語のスペルチェックを含むPythonプロジェクトに取り組んでいます。その単語数は残念ながら増えるだけです。現在、Mongoから単語を取得し、それらを繰り返し処理してから、pyenchantでスペルチェックを行っています。最初にすべてのアイテムをそこから取得することで、潜在的なボトルネックとしてのmongoを削除しました。そのため、16k語を処理するのに約20分かかります。これは、明らかに私が費やしたい時間よりも長くなります。これは私にいくつかのアイデア/質問を残します:
明らかに、スレッド化または何らかの形式の並列処理を活用できます。これを4つに切り刻んでも、最高のパフォーマンスを想定して約5分を見ています。
Enchantがpyenchantの下で使用しているスペルライブラリを確認する方法はありますか?エンチャントのウェブサイトは、スペルチェック時に利用可能なすべてのスペルライブラリ/辞書を使用することを示唆しているようです。もしそうなら、私は潜在的に各単語を3〜4つのスペルの口述で実行しています。これはここでの私の問題かもしれませんが、それを証明するのに苦労しています。たとえそうだとしても、私のオプションは本当に他のライブラリをアンインストールするのですか?残念に聞こえます。
それで、これから少なくとももう少しパフォーマンスを引き出す方法についてのアイデアはありますか?これを並列タスクに分割することは問題ありませんが、それでも、実行する前に、コア部分を少し速くしたいと思います。
編集:申し訳ありませんが、朝のコーヒーの前に投稿しています...単語のスペルが間違っている場合、エンチャントは私に提案のリストを生成します。それは私がこの処理部分で私の時間のほとんどを費やす場所であるように思われます。