docs: def tfidf_weight(X):
      """ Weights a Sparse Matrix by TF-IDF Weighted """
      X = coo_matrix(X)
  
      # calculate IDF
      N = float(X.shape[0])
      idf = log(N) - log1p(bincount(X.col))
  
      # apply TF-IDF adjustment
      X.data = sqrt(X.data) * idf[X.col]
      return X