mammothb/symspellpy

Python port of SymSpell: 1 million times faster spelling correction & fuzzy search through Symmetric Delete spelling correction algorithm

それは何か
symspellpy は SymSpell プロジェクト(バージョン 6.7.2)の Python 移植版です。README には、SymSpell 自体が代替手段と比較して「はるかに高速で、メモリ消費が少ない」と記載されていますが、アルゴリズムが実際に何を行うかは指定されていません。この移植版は SymSpell を Python で再実装し、元のプロジェクトからコピーされた単体テストを含めて、動作が参照実装と完全に一致することを確認しています。

パフォーマンスに関する注意
README は、この移植版が速度に対して最適化されていないことを明示しています。つまり、Python 版は元のバージョンのようにパフォーマンスが調整されていません。ただし、バージョン 6.7.2 以降、プロジェクトは editdistpy ライブラリ(同じ作者による別プロジェクト)に基づく「高速距離比較器」を追加しました。デフォルト設定での一般的な使用では、この変更により以前の方法と比較して約 2 倍 の高速化が得られます。ベンチマーク結果はプロジェクトの tests/benchmarks.ipynb ノートブックにあります。

重要な詳細

  • 正確性の保証: 元の SymSpell プロジェクトの単体テストが移植され、Python 版の正確性を検証するために使用されています。
  • ドキュメントとインストール: インストール手順は INSTALL.rst ファイルまたはオンラインドキュメントにあり、使用例もドキュメントに記載されています。
  • v6.7.2 の注目すべき変更: 距離計算モジュールを editdistpy に切り替え、上記の速度向上を実現しました。

記載されていないこと
README は SymSpell が実際に何を行うか(例:スペル修正、あいまい検索など)を一切述べていません。移植版とそのエンジニアリングの詳細のみを説明しているため、この解説は明示的に文書化された内容にのみ焦点を当てています。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト