code: def _get_bns_score_for_category_index(self, cat_i, not_cat_is, X, y):
      cat_mask = y == cat_i
      not_cat_mask = np.logical_or.reduce([y == i for i in not_cat_is])
      tp = X[cat_mask].sum(axis=0).A1
      fp = X[not_cat_mask].sum(axis=0).A1
      pos = np.sum(cat_mask)
      neg = np.sum(not_cat_mask)
      tpr = tp / pos
      fpr = fp / neg
      invn_tpr = self._invnorm(tpr)
      invn_fpr = self._invnorm(fpr)
      return tp, fp, pos, neg, tpr, fpr, invn_tpr, invn_fpr
  
file_path: scattertext/scattertext/termscoring/BNSScorer.py
imports: import pandas
  import numpy
  from scipy.stats import norm
  from scattertext.termscoring.CorpusBasedTermScorer import CorpusBasedTermScorer
label_desc: Use image node_id 3 for calling the BNSScorer obj's underlying member method code with example usage: obj._get_bns_score_for_category_index(cat_i, not_cat_is, X, y) and returns: tp,  fp,  pos,  neg,  tpr,  fpr,  invn_tpr,  invn_fpr