code: def categorical_simplicial_set_intersection(
      simplicial_set, target, unknown_dist=1.0, far_dist=5.0
  ):
      
      simplicial_set = simplicial_set.tocoo()
  
      fast_intersection(
          simplicial_set.row,
          simplicial_set.col,
          simplicial_set.data,
          target,
          unknown_dist,
          far_dist,
      )
  
      simplicial_set.eliminate_zeros()
  
      return reset_local_connectivity(simplicial_set)
docs: Combine a fuzzy simplicial set with another fuzzy simplicial set
      generated from categorical data using categorical distances. The target
      data is assumed to be categorical label data (a vector of labels),
      and this will update the fuzzy simplicial set to respect that label data.
  
      TODO: optional category cardinality based weighting of distance
  
      Parameters
      ----------
      simplicial_set: sparse matrix
          The input fuzzy simplicial set.
  
      target: array of shape (n_samples)
          The categorical labels to use in the intersection.
  
      unknown_dist: float (optional, default 1.0)
          The distance an unknown label (-1) is assumed to be from any point.
  
      far_dist float (optional, default 5.0)
          The distance between unmatched labels.
  
      Returns
      -------
      simplicial_set: sparse matrix
          The resulting intersected fuzzy simplicial set.