code: def feature_drop_weights(x, node_c):
      """Returns the weights of dropping each feature. Meant to be used for sparse one-hot features only.
      Args:
          x (torch.Tensor): Tensor of shape [n_nodes, n_features] representing node features
          node_c (torch.Tensor): Tensor of shape [n_nodes] represnting node centralities
      Returns:
          A Tensor of shape [n_features] representing the weights for dropping each feature
      """
      x = x.to(torch.bool).to(torch.float32)
      w = x.t() @ node_c
      w = w.log()
      s = (w.max() - w) / (w.max() - w.mean())
  
      return s
  
file_path: DIG/dig/sslgraph/utils/adaptive.py
imports: import torch
  from torch.utils.data import random_split
  from torch_geometric.utils import degree, remove_self_loops, get_laplacian, to_undirected, to_dense_adj, to_networkx, degree, to_undirected
  from torch_scatter import scatter
  import networkx
label_desc: Use image node_id 4 for calling a global function with example usage: feature_drop_weights(x, node_c) and returns: s