docs: def normalize_columns(features):
      """
      This performs column normalization of community embedding features.
  
      Input:  - X in R^(nxC_n): The community indicator matrix.
  
      Output: - X_norm in R^(nxC_n): The tf-idf + row normalized community indicator matrix.
      """
      # Calculate inverse document frequency.
      features = features.tocsc()
      for j in range(features.shape[1]):
          document_frequency = features.getcol(j).data.size
          if document_frequency > 1:
              features.data[features.indptr[j]: features.indptr[j + 1]] =\
                  features.data[features.indptr[j]: features.indptr[j + 1]]/np.sqrt(np.log(document_frequency))
  
      features = features.tocsr()
  
      return features