class_docstr: A wrapper class to apply sklearn clustering models on DocumentEmbeddings.
class_docstr_tok: ["A","wrapper","class","to","apply","sklearn","clustering","models","on","DocumentEmbeddings","."]
docstr: Saves current model.
  
  Args:
      model_file: path where to save the model.
docstr_tok: ["Saves","current","model",".","Args",":","model_file",":","path","where","to","save","the","model","."]
code: def save(self, model_file: Union[str, Path]):
      """Saves current model.
  
      Args:
          model_file: path where to save the model.
      """
      joblib.dump(pickle.dumps(self), str(model_file))
  
      log.info("Saved the model to: " + str(model_file))
  
imports: import logging
  import pickle
  from collections import OrderedDict
  from pathlib import Path
  from typing import Optional, Union
  import joblib
  from sklearn.base import BaseEstimator, ClusterMixin
  from sklearn.metrics import normalized_mutual_info_score
  from tqdm import tqdm
  from flair.data import Corpus, _iter_dataset
  from flair.datasets import DataLoader
  from flair.embeddings import DocumentEmbeddings
label_desc: Use image node_id 4 for calling the ClusteringModel obj's underlying member method code with example usage: obj.save(model_file) without return types