TF-IDF マトリックスを保存したいので、常に再計算する必要はありません。scikit-learn を使用していTfIdfVectorizer
ます。それをピクルするか、データベースに保存する方が効率的ですか?
いくつかのコンテキスト: ドキュメントの推奨事項を提供するために k-means クラスタリングを使用しています。新しいドキュメントが頻繁に追加されるため、ドキュメントの TF-IDF 値を保存して、クラスターを再計算できるようにしたいと考えています。
TF-IDF マトリックスを保存したいので、常に再計算する必要はありません。scikit-learn を使用していTfIdfVectorizer
ます。それをピクルするか、データベースに保存する方が効率的ですか?
いくつかのコンテキスト: ドキュメントの推奨事項を提供するために k-means クラスタリングを使用しています。新しいドキュメントが頻繁に追加されるため、ドキュメントの TF-IDF 値を保存して、クラスターを再計算できるようにしたいと考えています。
Pickling (特にjoblib.dumpを使用)は、短期間のストレージに適しています。たとえば、インタラクティブセッションで結果の一部を保存したり、開発サーバーから本番サーバーにモデルを出荷したりできます。
ただし、ピクルスの形式は、scikit-learnのバージョンごとに変わる可能性のあるモデルのクラス定義に依存します。
モデルを長期間保持し、将来のバージョンのscikit-learnでロードできるようにする場合は、実装に依存しない独自の永続性モデルを作成することをお勧めします。
また、HDF5ファイル形式(たとえば、PyTablesで使用される)または数値配列を効率的に格納するための何らかのサポートがある他のデータベースシステムを使用することをお勧めします。
また、scipy.sparseのスパース行列表現の内部CSRおよびCOOデータ構造を調べて、それらをデータベースに格納する効率的な方法を考え出します。